diff --git a/website/.DS_Store b/website/.DS_Store
deleted file mode 100644
index 00755556..00000000
Binary files a/website/.DS_Store and /dev/null differ
diff --git a/website/.hugo_build.lock b/website/.hugo_build.lock
deleted file mode 100644
index e69de29b..00000000
diff --git a/website/LICENSE b/website/LICENSE
deleted file mode 100644
index 30343a11..00000000
--- a/website/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2023 - Present, Zeon Studio
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/Montserrat-SemiBold.woff2 b/website/Montserrat-SemiBold.woff2
deleted file mode 100644
index 853bd7f8..00000000
Binary files a/website/Montserrat-SemiBold.woff2 and /dev/null differ
diff --git a/website/amplify.yml b/website/amplify.yml
deleted file mode 100644
index 76d375a6..00000000
--- a/website/amplify.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: 1
-frontend:
- phases:
- preBuild:
- commands:
- - yum install -y curl
- - curl -LO "https://github.com/gohugoio/hugo/releases/download/v0.121.2/hugo_extended_0.121.2_Linux-64bit.tar.gz"
- - tar -xvf hugo_extended_0.121.2_Linux-64bit.tar.gz
- - mv hugo /usr/local/bin/
- - rm hugo_extended_0.121.2_Linux-64bit.tar.gz
- - echo "HUGO 0.121.2 INSTALLED"
- - curl -LO "https://dl.google.com/go/go1.20.5.linux-amd64.tar.gz"
- - tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
- - export PATH=$PATH:/usr/local/go/bin
- - rm go1.20.5.linux-amd64.tar.gz
- - echo "GO 1.20.5 INSTALLED"
- - npm install
- build:
- commands:
- - npm run project-setup
- - npm run build
- artifacts:
- # IMPORTANT - Please verify your build output directory
- baseDirectory: /public
- files:
- - "**/*"
- cache:
- paths:
- - node_modules/**/*
diff --git a/website/assets/.DS_Store b/website/assets/.DS_Store
deleted file mode 100644
index ec687984..00000000
Binary files a/website/assets/.DS_Store and /dev/null differ
diff --git a/website/assets/plugins/.DS_Store b/website/assets/plugins/.DS_Store
deleted file mode 100644
index e1a3d398..00000000
Binary files a/website/assets/plugins/.DS_Store and /dev/null differ
diff --git a/website/config/_default/languages.toml b/website/config/_default/languages.toml
deleted file mode 100755
index fc8d07fe..00000000
--- a/website/config/_default/languages.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-################ English language ##################
-[en]
-languageName = "En"
-languageCode = "en-us"
-contentDir = "content/english"
-weight = 1
diff --git a/website/config/_default/menus.en.toml b/website/config/_default/menus.en.toml
deleted file mode 100755
index 09996b7b..00000000
--- a/website/config/_default/menus.en.toml
+++ /dev/null
@@ -1,81 +0,0 @@
-############# English navigation ##############
-
-# main menu
-[[main]]
-name = "For You"
-weight = 1
-hasChildren = true
-
-[[main]]
-parent = "For You"
-name = "Individuals"
-pageRef = "/Individuals"
-
-[[main]]
-parent = "For You"
-name = "Developers"
-pageRef = "/Developers"
-
-[[main]]
-parent = "For You"
-name = "European Commission"
-pageRef = "/EC"
-
-[[main]]
-weight = 2
-name = "Consortium"
-hasChildren = true
-
-[[main]]
-parent = "Consortium"
-name = "Open Internet Discourse"
-pageRef = "/OID"
-
-[[main]]
-parent = "Consortium"
-name = "NLnet"
-pageRef = "/NLnet"
-
-[[main]]
-parent = "Consortium"
-name = "Tweag"
-pageRef = "/Tweag"
-
-[[main]]
-parent = "Consortium"
-name = "NORDUnet"
-pageRef = "/NORDUnet"
-
-[[main]]
-weight = 3
-name = "Fediversity"
-pageRef = "Fediversity"
-
-[[main]]
-weight = 4
-name = "Grants"
-pageRef = "Grants"
-
-[[main]]
-weight = 5
-name = "Events"
-pageRef = "Events"
-
-[[main]]
-weight = 6
-name = "News"
-pageRef = "Blog"
-
-
-
-
-# footer menu
-[[footer]]
-name = "About"
-pageRef = "fediversity"
-weight = 1
-
-[[footer]]
-name = "Privacy Policy"
-pageRef = "/privacy-policy"
-weight = 3
diff --git a/website/config/_default/module.toml b/website/config/_default/module.toml
deleted file mode 100644
index 3b84cf21..00000000
--- a/website/config/_default/module.toml
+++ /dev/null
@@ -1,93 +0,0 @@
-[hugoVersion]
-extended = true
-min = "0.115.2"
-
-# [[imports]]
-# path = "github.com/zeon-studio/hugoplate"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/search"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/pwa"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/images"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/videos"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/icons/font-awesome"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/icons/themify-icons"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/gzip-caching"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/adsense"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/accordion"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/table-of-contents"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/tab"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/modal"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/gallery-slider"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/preloader"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/social-share"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/cookie-consent"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/custom-script"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/render-link"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/components/valine-comment"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/components/crisp-chat"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/shortcodes/button"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/shortcodes/notice"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics"
diff --git a/website/config/_default/params.toml b/website/config/_default/params.toml
deleted file mode 100755
index eb0b0a75..00000000
--- a/website/config/_default/params.toml
+++ /dev/null
@@ -1,101 +0,0 @@
-#################### default parameters ################################
-# favicon module: https://github.com/gethugothemes/hugo-modules/tree/master/images#favicon-implementation
-favicon = "images/favicon.png"
-# logo module: https://github.com/gethugothemes/hugo-modules/tree/master/images#logo-implementation
-logo = "images/ngi_fedi_full.svg"
-logo_darkmode = "images/logo-darkmode.png"
-# use `px` or `x` with logo_width, example: "100px".
-# Note: logo_width is not work with .svg file
-logo_width = "160px"
-logo_height = "32px"
-# if logo_webp set false, will not generate WEBP version of logo | default is true
-logo_webp = true
-# logo text will only show when logo is missing.
-logo_text = "Hugoplate"
-# navbar fixed to top
-navbar_fixed = true
-# theme-mode
-theme_switcher = false
-theme_default = "system" # available options [light/dark/system]
-# Main Sections
-mainSections = ["blog"]
-# contact form action
-contact_form_action = "#" # contact form works with [https://airform.io/] or [https://formspree.io]
-# google tag manager, see https://developers.google.com/tag-manager/
-google_tag_manager = "" # example: G-XXXXXXXXXX
-google_adsense = "" # example: ca-pub-xxxxxxxxxxxxxxxx
-# custom script on header, example: custom_script= ""
-custom_script = ""
-# copyright
-# copyright = "Designed & Developed by [Zeon Studio](https://zeon.studio)"
-
-# Preloader
-# preloader module: https://github.com/gethugothemes/hugo-modules/tree/master/components/preloader
-[preloader]
-enable = false
-preloader = "" # use jpg, png, svg or gif format.
-
-# Navigation button
-[navigation_button]
-enable = true
-label = "Contact"
-link = "contact"
-
-# search
-# search module: https://github.com/gethugothemes/hugo-modules/tree/master/search
-[search]
-enable = false
-primary_color = "#121212"
-include_sections = ["blog"]
-show_image = true
-show_description = true
-show_tags = true
-show_categories = true
-
-
-# seo meta data for OpenGraph / Twitter Card
-# seo module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/basic-seo
-[metadata]
-keywords = ["fediverse", "nixos", "open source"]
-description = "Fediversity Project"
-author = "NGI Fediversity"
-image = "images/logo.png"
-
-
-# site verifications
-# verification module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/site-verifications
-[site_verification]
-google = "" # Your verification code
-bing = "" # Your verification code
-baidu = "" # Your verification code
-facebook = "" # Your verification code
-mastodon = "" # Your verification code
-
-# cookies
-# cookies module: https://github.com/gethugothemes/hugo-modules/tree/master/components/cookie-consent
-[cookies]
-enable = false
-expire_days = 60
-content = "This site uses cookies. By continuing to use this website, you agree to their use."
-button = "I Accept"
-
-######################## sidebar widgets #########################
-[widgets]
-sidebar = ["categories", "tags"]
-
-
-# google map
-[google_map]
-enable = false
-map_api_key = "AIzaSyCcABaamniA6OL5YvYSpB3pFMNrXwXnLwU"
-map_latitude = "51.5223477"
-map_longitude = "-0.1622023"
-map_marker = "images/marker.png"
-
-
-# Subscription
-[subscription]
-enable = false
-# mailchimp subsciption
-mailchimp_form_action = "https://gmail.us4.list-manage.com/subscribe/post?u=463ee871f45d2d93748e77cad&id=a0a2c6d074" # replace this url with yours
-mailchimp_form_name = "b_463ee871f45d2d93748e77cad_a0a2c6d074"
diff --git a/website/data/social.json b/website/data/social.json
deleted file mode 100644
index 6ac44ed3..00000000
--- a/website/data/social.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "main": [
-
- {
- "name": "mastodon",
- "icon": "fab fa-mastodon",
- "link": "https://mastodon.fediversity.eu/@fediversity"
- },
- {
- "name": "rss",
- "icon": "fab fa-rss",
- "link": "https://fediversity.eu/rss"
- }
- ]
-}
diff --git a/website/data/theme.json b/website/data/theme.json
deleted file mode 100644
index 9053a41c..00000000
--- a/website/data/theme.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "colors": {
- "default": {
- "theme_color": {
- "primary": "#FF6E00",
- "body": "#fff",
- "border": "#eaeaea",
- "theme_light": "#f6f6f6",
- "theme_dark": ""
- },
- "text_color": {
- "default": "#444444",
- "dark": "#040404",
- "light": "#FF6E00"
- }
- },
- "darkmode": {
- "theme_color": {
- "primary": "#fff",
- "body": "#1c1c1c",
- "border": "#3E3E3E",
- "theme_light": "#222222",
- "theme_dark": ""
- },
- "text_color": {
- "default": "#B4AFB6",
- "dark": "#fff",
- "light": "#B4AFB6"
- }
- }
- },
- "fonts": {
- "font_family": {
- "primary": "Heebo:wght@400;600",
- "primary_type": "sans-serif",
- "secondary": "Signika:wght@500;700",
- "secondary_type": "sans-serif"
- },
- "font_size": {
- "base": "16",
- "scale": "1.2"
- }
- }
-}
diff --git a/website/exampleSite/assets/.DS_Store b/website/exampleSite/assets/.DS_Store
deleted file mode 100644
index c3353d6b..00000000
Binary files a/website/exampleSite/assets/.DS_Store and /dev/null differ
diff --git a/website/exampleSite/assets/images/.DS_Store b/website/exampleSite/assets/images/.DS_Store
deleted file mode 100644
index 4d384b13..00000000
Binary files a/website/exampleSite/assets/images/.DS_Store and /dev/null differ
diff --git a/website/exampleSite/assets/images/avatar-sm.png b/website/exampleSite/assets/images/avatar-sm.png
deleted file mode 100644
index e1699dc1..00000000
Binary files a/website/exampleSite/assets/images/avatar-sm.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/avatar.png b/website/exampleSite/assets/images/avatar.png
deleted file mode 100755
index 387b035c..00000000
Binary files a/website/exampleSite/assets/images/avatar.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/banner.png b/website/exampleSite/assets/images/banner.png
deleted file mode 100644
index 5f8a9e81..00000000
Binary files a/website/exampleSite/assets/images/banner.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/call-to-action.png b/website/exampleSite/assets/images/call-to-action.png
deleted file mode 100755
index ec2d625c..00000000
Binary files a/website/exampleSite/assets/images/call-to-action.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/favicon-archive.png b/website/exampleSite/assets/images/favicon-archive.png
deleted file mode 100644
index 13f24a31..00000000
Binary files a/website/exampleSite/assets/images/favicon-archive.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/favicon.ico b/website/exampleSite/assets/images/favicon.ico
deleted file mode 100644
index 5cedf7f5..00000000
Binary files a/website/exampleSite/assets/images/favicon.ico and /dev/null differ
diff --git a/website/exampleSite/assets/images/gallery/01.jpg b/website/exampleSite/assets/images/gallery/01.jpg
deleted file mode 100644
index 662fc1dc..00000000
Binary files a/website/exampleSite/assets/images/gallery/01.jpg and /dev/null differ
diff --git a/website/exampleSite/assets/images/gallery/02.jpg b/website/exampleSite/assets/images/gallery/02.jpg
deleted file mode 100644
index 22fb37f8..00000000
Binary files a/website/exampleSite/assets/images/gallery/02.jpg and /dev/null differ
diff --git a/website/exampleSite/assets/images/gallery/03.jpg b/website/exampleSite/assets/images/gallery/03.jpg
deleted file mode 100644
index cea735f6..00000000
Binary files a/website/exampleSite/assets/images/gallery/03.jpg and /dev/null differ
diff --git a/website/exampleSite/assets/images/gallery/04.jpg b/website/exampleSite/assets/images/gallery/04.jpg
deleted file mode 100644
index 48d7c32b..00000000
Binary files a/website/exampleSite/assets/images/gallery/04.jpg and /dev/null differ
diff --git a/website/exampleSite/assets/images/gallery/05.jpg b/website/exampleSite/assets/images/gallery/05.jpg
deleted file mode 100644
index 09878097..00000000
Binary files a/website/exampleSite/assets/images/gallery/05.jpg and /dev/null differ
diff --git a/website/exampleSite/assets/images/gallery/06.jpg b/website/exampleSite/assets/images/gallery/06.jpg
deleted file mode 100644
index 662fc1dc..00000000
Binary files a/website/exampleSite/assets/images/gallery/06.jpg and /dev/null differ
diff --git a/website/exampleSite/assets/images/image-placeholder.png b/website/exampleSite/assets/images/image-placeholder.png
deleted file mode 100755
index a61a0c09..00000000
Binary files a/website/exampleSite/assets/images/image-placeholder.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/logo-darkmode.png b/website/exampleSite/assets/images/logo-darkmode.png
deleted file mode 100644
index c85cca95..00000000
Binary files a/website/exampleSite/assets/images/logo-darkmode.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/logo.png b/website/exampleSite/assets/images/logo.png
deleted file mode 100644
index afee1070..00000000
Binary files a/website/exampleSite/assets/images/logo.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/no-search-found.png b/website/exampleSite/assets/images/no-search-found.png
deleted file mode 100755
index 1e1e6e16..00000000
Binary files a/website/exampleSite/assets/images/no-search-found.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/og-image.png b/website/exampleSite/assets/images/og-image.png
deleted file mode 100644
index e31ac0e2..00000000
Binary files a/website/exampleSite/assets/images/og-image.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/service-1.png b/website/exampleSite/assets/images/service-1.png
deleted file mode 100755
index 5842791a..00000000
Binary files a/website/exampleSite/assets/images/service-1.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/service-2.png b/website/exampleSite/assets/images/service-2.png
deleted file mode 100755
index 2cc116a3..00000000
Binary files a/website/exampleSite/assets/images/service-2.png and /dev/null differ
diff --git a/website/exampleSite/assets/images/service-3.png b/website/exampleSite/assets/images/service-3.png
deleted file mode 100755
index cf690b7a..00000000
Binary files a/website/exampleSite/assets/images/service-3.png and /dev/null differ
diff --git a/website/exampleSite/assets/scss/custom.scss b/website/exampleSite/assets/scss/custom.scss
deleted file mode 100755
index 96859046..00000000
--- a/website/exampleSite/assets/scss/custom.scss
+++ /dev/null
@@ -1 +0,0 @@
-// Add your own custom styles here
diff --git a/website/exampleSite/config/_default/languages.toml b/website/exampleSite/config/_default/languages.toml
deleted file mode 100755
index fc8d07fe..00000000
--- a/website/exampleSite/config/_default/languages.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-################ English language ##################
-[en]
-languageName = "En"
-languageCode = "en-us"
-contentDir = "content/english"
-weight = 1
diff --git a/website/exampleSite/config/_default/menus.en.toml b/website/exampleSite/config/_default/menus.en.toml
deleted file mode 100755
index 79f4e049..00000000
--- a/website/exampleSite/config/_default/menus.en.toml
+++ /dev/null
@@ -1,85 +0,0 @@
-############# English navigation ##############
-
-# main menu
-[[main]]
-name = "For You"
-weight = 1
-hasChildren = true
-
-[[main]]
-parent = "For You"
-name = "Individuals"
-pageRef = "/Individuals"
-
-[[main]]
-parent = "For You"
-name = "Developers"
-pageRef = "/Developers"
-
-[[main]]
-parent = "For You"
-name = "European Commission"
-pageRef = "/EC"
-
-[[main]]
-weight = 2
-name = "Consortium"
-hasChildren = true
-
-[[main]]
-parent = "Consortium"
-name = "Open Internet Discourse"
-pageRef = "/OID"
-
-[[main]]
-parent = "Consortium"
-name = "NLnet"
-pageRef = "/NLnet"
-
-[[main]]
-parent = "Consortium"
-name = "Tweag"
-pageRef = "/Tweag"
-
-[[main]]
-parent = "Consortium"
-name = "NORDUnet"
-pageRef = "/NORDUnet"
-
-[[main]]
-weight = 3
-name = "Fediversity"
-pageRef = "Fediversity"
-
-[[main]]
-weight = 4
-name = "Grants"
-pageRef = "Grants"
-
-[[main]]
-weight = 5
-name = "Events"
-pageRef = "Events"
-
-[[main]]
-weight = 6
-name = "News"
-pageRef = "News"
-
-
-
-# footer menu
-[[footer]]
-name = "About"
-pageRef = "/about"
-weight = 1
-
-[[footer]]
-name = "Elements"
-pageRef = "/elements"
-weight = 2
-
-[[footer]]
-name = "Privacy Policy"
-pageRef = "/privacy-policy"
-weight = 3
diff --git a/website/exampleSite/config/_default/module.toml b/website/exampleSite/config/_default/module.toml
deleted file mode 100644
index fc960d7a..00000000
--- a/website/exampleSite/config/_default/module.toml
+++ /dev/null
@@ -1,93 +0,0 @@
-[hugoVersion]
-extended = true
-min = "0.115.2"
-
-[[imports]]
-path = "github.com/zeon-studio/hugoplate"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/search"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/pwa"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/images"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/videos"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/icons/font-awesome"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/icons/themify-icons"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/gzip-caching"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/adsense"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/accordion"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/table-of-contents"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/tab"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/modal"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/gallery-slider"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/preloader"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/social-share"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/cookie-consent"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/custom-script"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/components/render-link"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/components/valine-comment"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/components/crisp-chat"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/shortcodes/button"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/shortcodes/notice"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications"
-
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics"
-
-# [[imports]]
-# path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics"
diff --git a/website/exampleSite/config/_default/params.toml b/website/exampleSite/config/_default/params.toml
deleted file mode 100755
index 4d60c9a2..00000000
--- a/website/exampleSite/config/_default/params.toml
+++ /dev/null
@@ -1,101 +0,0 @@
-#################### default parameters ################################
-# favicon module: https://github.com/gethugothemes/hugo-modules/tree/master/images#favicon-implementation
-favicon = "images/favicon.png"
-# logo module: https://github.com/gethugothemes/hugo-modules/tree/master/images#logo-implementation
-logo = "images/logo.png"
-logo_darkmode = "images/logo-darkmode.png"
-# use `px` or `x` with logo_width, example: "100px".
-# Note: logo_width is not work with .svg file
-logo_width = "160px"
-logo_height = "32px"
-# if logo_webp set false, will not generate WEBP version of logo | default is true
-logo_webp = true
-# logo text will only show when logo is missing.
-logo_text = "Hugoplate"
-# navbar fixed to top
-navbar_fixed = true
-# theme-mode
-# theme_switcher = false
-# theme_default = "system" # available options [light/dark/system]
-# Main Sections
-mainSections = ["blog"]
-# contact form action
-contact_form_action = "#" # contact form works with [https://airform.io/] or [https://formspree.io]
-# google tag manager, see https://developers.google.com/tag-manager/
-google_tag_manager = "" # example: G-XXXXXXXXXX
-google_adsense = "" # example: ca-pub-xxxxxxxxxxxxxxxx
-# custom script on header, example: custom_script= ""
-custom_script = ""
-# copyright
-# copyright = "Designed & Developed by [Zeon Studio](https://zeon.studio)"
-
-# Preloader
-# preloader module: https://github.com/gethugothemes/hugo-modules/tree/master/components/preloader
-[preloader]
-enable = false
-preloader = "" # use jpg, png, svg or gif format.
-
-# Navigation button
-[navigation_button]
-enable = true
-label = "Contact"
-link = "contact"
-
-# search
-# search module: https://github.com/gethugothemes/hugo-modules/tree/master/search
-[search]
-enable = false
-primary_color = "#121212"
-include_sections = ["blog"]
-show_image = false
-show_description = false
-show_tags = true
-show_categories = true
-
-
-# seo meta data for OpenGraph / Twitter Card
-# seo module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/basic-seo
-[metadata]
-keywords = ["Boilerplate", "Hugo"]
-description = "Hugo & Tailwindcss Starter"
-author = "zeon.studio"
-image = "images/og-image.png"
-
-
-# site verifications
-# verification module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/site-verifications
-[site_verification]
-google = "" # Your verification code
-bing = "" # Your verification code
-baidu = "" # Your verification code
-facebook = "" # Your verification code
-mastodon = "" # Your verification code
-
-# cookies
-# cookies module: https://github.com/gethugothemes/hugo-modules/tree/master/components/cookie-consent
-[cookies]
-enable = false
-expire_days = 60
-content = "This site uses cookies. By continuing to use this website, you agree to their use."
-button = "I Accept"
-
-######################## sidebar widgets #########################
-[widgets]
-sidebar = ["categories", "tags"]
-
-
-# google map
-[google_map]
-enable = false
-map_api_key = "AIzaSyCcABaamniA6OL5YvYSpB3pFMNrXwXnLwU"
-map_latitude = "51.5223477"
-map_longitude = "-0.1622023"
-map_marker = "images/marker.png"
-
-
-# Subscription
-[subscription]
-enable = false
-# mailchimp subsciption
-mailchimp_form_action = "https://gmail.us4.list-manage.com/subscribe/post?u=463ee871f45d2d93748e77cad&id=a0a2c6d074" # replace this url with yours
-mailchimp_form_name = "b_463ee871f45d2d93748e77cad_a0a2c6d074"
diff --git a/website/exampleSite/content/english/_index.md b/website/exampleSite/content/english/_index.md
deleted file mode 100755
index 142c61a3..00000000
--- a/website/exampleSite/content/english/_index.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-# Banner
-banner:
- title: "The Ultimate Starter Template You Need To Start Your Hugo Project"
- content: "Hugoplate is a free starter template built with Hugo and TailwindCSS, providing everything you need to jumpstart your Hugo project and save valuable time."
- image: "/images/banner.png"
- button:
- enable: true
- label: "Get Started For Free"
- link: "https://github.com/zeon-studio/hugoplate"
-
-# Features
-features:
- - title: "What's Included in Hugoplate"
- image: "/images/service-1.png"
- content: "Hugoplate is a comprehensive starter template that includes everything you need to get started with your Hugo project. What's Included in Hugoplate"
- bulletpoints:
- - "10+ Pre-build pages"
- - "95+ Google Pagespeed Score"
- - "Build with Hugo and TailwindCSS for easy and customizable styling"
- - "Fully responsive on all devices"
- - "SEO-optimized for better search engine rankings"
- - "**Open-source and free** for personal and commercial use"
- button:
- enable: false
- label: "Get Started Now"
- link: "#"
-
- - title: "Discover the Key Features Of Hugo"
- image: "/images/service-2.png"
- content: "Hugo is an all-in-one web framework for building fast, content-focused websites. It offers a range of exciting features for developers and website creators. Some of the key features are:"
- bulletpoints:
- - "Zero JS, by default: No JavaScript runtime overhead to slow you down."
- - "Customizable: Tailwind, MDX, and 100+ other integrations to choose from."
- - "UI-agnostic: Supports React, Preact, Svelte, Vue, Solid, Lit and more."
- button:
- enable: true
- label: "Get Started Now"
- link: "https://github.com/zeon-studio/hugoplate"
-
- - title: "The Top Reasons to Choose Hugo for Your Hugo Project"
- image: "/images/service-3.png"
- content: "With Hugo, you can build modern and content-focused websites without sacrificing performance or ease of use."
- bulletpoints:
- - "Instantly load static sites for better user experience and SEO."
- - "Intuitive syntax and support for popular frameworks make learning and using Hugo a breeze."
- - "Use any front-end library or framework, or build custom components, for any project size."
- - "Built on cutting-edge technology to keep your projects up-to-date with the latest web standards."
- button:
- enable: false
- label: ""
- link: ""
----
diff --git a/website/exampleSite/content/english/about/_index.md b/website/exampleSite/content/english/about/_index.md
deleted file mode 100644
index 293a3be7..00000000
--- a/website/exampleSite/content/english/about/_index.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: "Hey, I am John Doe!"
-meta_title: "About"
-description: "this is meta description"
-image: "/images/avatar.png"
-draft: false
----
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis illum nesciunt commodi vel nisi ut alias excepturi ipsum, totam, labore tempora, odit ex iste tempore sed. Fugit voluptatibus perspiciatis assumenda nulla ad nihil, omnis vel, doloremque sit quam autem optio maiores, illum eius facilis et quo consectetur provident dolor similique! Enim voluptatem dicta expedita veritatis repellat dolorum impedit, provident quasi at.
diff --git a/website/exampleSite/content/english/authors/_index.md b/website/exampleSite/content/english/authors/_index.md
deleted file mode 100644
index 62eae442..00000000
--- a/website/exampleSite/content/english/authors/_index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: "Authors"
----
diff --git a/website/exampleSite/content/english/authors/john-doe.md b/website/exampleSite/content/english/authors/john-doe.md
deleted file mode 100644
index ab98ec79..00000000
--- a/website/exampleSite/content/english/authors/john-doe.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Laurens Hof
-email: laurens@procolix.com
-image: "/images/avatar.png"
-description: storyteller
-social:
- - name: github
- icon: fa-brands fa-github
- link: https://github.com
----
-
-Story teller for the Fediversity Project.
diff --git a/website/exampleSite/content/english/blog/_index.md b/website/exampleSite/content/english/blog/_index.md
deleted file mode 100755
index 1057cf82..00000000
--- a/website/exampleSite/content/english/blog/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: "Blog Posts"
-meta_title: ""
-description: "News about Fediversity"
----
diff --git a/website/exampleSite/content/english/blog/post-1.md b/website/exampleSite/content/english/blog/post-1.md
deleted file mode 100755
index 68280a66..00000000
--- a/website/exampleSite/content/english/blog/post-1.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "How to build an Application with modern Technology"
-meta_title: ""
-description: "this is meta description"
-date: 2022-04-04T05:00:00Z
-image: "/images/image-placeholder.png"
-categories: ["Application", "Data"]
-author: "John Doe"
-tags: ["nextjs", "tailwind"]
-draft: false
----
-
-Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-## Creative Design
-
-Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
diff --git a/website/exampleSite/content/english/blog/post-2.md b/website/exampleSite/content/english/blog/post-2.md
deleted file mode 100755
index d0e6f1bb..00000000
--- a/website/exampleSite/content/english/blog/post-2.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "How to build an Application with modern Technology"
-meta_title: ""
-description: "this is meta description"
-date: 2022-04-04T05:00:00Z
-image: "/images/image-placeholder.png"
-categories: ["Technology", "Data"]
-author: "Sam Wilson"
-tags: ["technology", "tailwind"]
-draft: false
----
-
-Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-## Creative Design
-
-Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
diff --git a/website/exampleSite/content/english/blog/post-3.md b/website/exampleSite/content/english/blog/post-3.md
deleted file mode 100755
index ef70402c..00000000
--- a/website/exampleSite/content/english/blog/post-3.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "How to build an Application with modern Technology"
-meta_title: ""
-description: "this is meta description"
-date: 2022-04-04T05:00:00Z
-image: "/images/image-placeholder.png"
-categories: ["Software"]
-author: "John Doe"
-tags: ["software", "tailwind"]
-draft: false
----
-
-Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-## Creative Design
-
-Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
diff --git a/website/exampleSite/content/english/blog/post-4.md b/website/exampleSite/content/english/blog/post-4.md
deleted file mode 100755
index c9ff3722..00000000
--- a/website/exampleSite/content/english/blog/post-4.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: "How to build an Application with modern Technology"
-meta_title: ""
-description: "this is meta description"
-date: 2022-04-04T05:00:00Z
-image: "/images/image-placeholder.png"
-categories: ["Architecture"]
-author: "John Doe"
-tags: ["silicon", "technology"]
-draft: false
----
-
-Nemo vel ad consectetur namut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-## Creative Design
-
-Nam ut rutrum ex, venenatis sollicitudin urna. Aliquam erat volutpat. Integer eu ipsum sem. Ut bibendum lacus vestibulum maximus suscipit. Quisque vitae nibh iaculis neque blandit euismod.
-
-> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo vel ad consectetur ut aperiam. Itaque eligendi natus aperiam? Excepturi repellendus consequatur quibusdam optio expedita praesentium est adipisci dolorem ut eius!
diff --git a/website/exampleSite/content/english/contact/_index.md b/website/exampleSite/content/english/contact/_index.md
deleted file mode 100644
index bd6b9f6b..00000000
--- a/website/exampleSite/content/english/contact/_index.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: "Contact"
-meta_title: ""
-description: "this is meta description"
-draft: false
----
diff --git a/website/exampleSite/content/english/pages/Consortium.md b/website/exampleSite/content/english/pages/Consortium.md
deleted file mode 100755
index 63aa5acd..00000000
--- a/website/exampleSite/content/english/pages/Consortium.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: "Consortium"
-# meta title
-meta_title: "Consortium"
-# meta description
-description: "The organisations behind the Fediversity Project"
-# save as draft
-draft: false
----
-
-Information about the project. TODO.
diff --git a/website/exampleSite/content/english/pages/Developers.md b/website/exampleSite/content/english/pages/Developers.md
deleted file mode 100755
index fa5a0161..00000000
--- a/website/exampleSite/content/english/pages/Developers.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: "Developers"
-# meta title
-meta_title: "Developers"
-# meta description
-description: "Information for developers about the Fediversity Project."
-# save as draft
-draft: false
----
-
-The Fediversity Project enables easy hosting for a wide variety of fediverse platforms, all based on NixOS. At the start, the project will support Mastodon, PixelFed,PeerTube, Matrix and Nexcloud, and the project is actively working to expand this offering. Other services that are offered are email (based on Stalwart) and domain registry.
-
-As part of the NGI Funding, the Fediversity Project also offers grants to developers to expand the ecosystem. The NLNet website has more information on how you as a developer can apply to grants, ranging from 5.000 to 50.000 euro's.
-
-If you are a developer of fediverse software, and would like to get your platform also offered for easy hosting as part of the Fediversity Project, please reach out to us. You can contact us HERE.
-
-As the project is based upon NixOS, we are actively supporting making fediverse projects available as nix packages. If your project is on the fence about this, please reach out. Nix packages make updating and maintaining fediverse projects a breeze!
diff --git a/website/exampleSite/content/english/pages/EC.md b/website/exampleSite/content/english/pages/EC.md
deleted file mode 100755
index e106a81f..00000000
--- a/website/exampleSite/content/english/pages/EC.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "European Commission"
-# meta title
-meta_title: "European Commission"
-# meta description
-description: "Information about the Fediversity Project for the grant providers."
-# save as draft
-draft: false
----
-
-The Fediversity project implements the visions outlined by the Next Generation Internet (NGI) initiative for an open internet in several ways. Most importantly, it helps with decentralisation of the internet, a core principle of the NGI, by making it easier for people to participate in the Open Social Web on their own terms. NGI's goal of empowering individuals in the digital sphere is helped by making it easy for them to set up their own servers and platforms. While a variety of Fediverse software exist, there are still barriers of entry for people. In order for people to be truly empowered, joining the fediverse needs to be as weasy as possible. Additionally, the Fediverse emphasises interoperability and openness, which are key concerns addressed by the NGI.
-
-Part of the values of openness and transparency of is that the Fediversity project is that all the deliverables of the projects are have a 'Public' Dissemination level. On this page an overview of all deliverables of the Fediversity project can be found.
diff --git a/website/exampleSite/content/english/pages/Fediversity.md b/website/exampleSite/content/english/pages/Fediversity.md
deleted file mode 100755
index 4826ca1f..00000000
--- a/website/exampleSite/content/english/pages/Fediversity.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: "Fediversity"
-# meta title
-meta_title: "Fediversity"
-# meta description
-description: "More information about the Fediversity Project"
-# save as draft
-draft: false
----
-
-Fediversity is a comprehensive effort to bring easy-to-use, hosted cloud services with service portability and personal freedom at their core to everyone. It wants to provide everyone with high-quality, secure IT systems for everyday use. Without tracking, without exploitation, in a way that runs everywhere and scales effortlessly. Fediversity is based on NixOS, a disruptive Linux distribution with a unique approach to package and configuration management. Built on top of the Nix package manager, NixOS is completely declarative, makes upgrading systems reliable, and has many other advantages. Because it is reproducible, it is ideally suited for complex deployment scenario’s where consistent behaviour, stability and configurability matter.
-
-One such “complex” deployment scenario is running state-of-the-art services for the Fediverse, like PeerTube, Mastodon, Owncast or Lemmy — especially if you want to for instance add services like live chat or transcoding. But even running more traditional services like modern e-mail servers with possible whistles and bells can be daunting. The same holds for deploying a VPN, private cloud storage, wiki, etc. Fediversity will enable all of these use cases, and more — finally bringing these to the market in a way that is as conveient as using a hosted service.
-
-Fediversity is a pilot funded by the European Commission, building on many projects funding through the Next Generation Internet initiative. The results of the project should greatly simplify the creation and delivery of robust and secure services, on the web and beyond.
-
-Fediversity will deliver an ambitious development effort, but this is a vast domain with many more challenges than what any preconceived effort could tackle by itself. This is why we invite your contribution to help us reshape the state of play, and together create an open, trustworthy and reliable internet for all.
diff --git a/website/exampleSite/content/english/pages/Grants.md b/website/exampleSite/content/english/pages/Grants.md
deleted file mode 100755
index bfacb121..00000000
--- a/website/exampleSite/content/english/pages/Grants.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: "Grants"
-# meta title
-meta_title: "Grants"
-# meta description
-description: "How to apply for grants as part of the Fediversity Project."
-# save as draft
-draft: false
----
-
-Fediversity invites other people to join this ambitious development effort. It is a vast domain with many more challenges than what any preconceived effort could tackle by itself. This is why we invite your contribution to help us reshape the state of play, and together create an open, trustworthy and reliable internet for all.
-
-This is your opportunity to make a real difference. You tell us how your project can help Fediversity go harder, better, faster, stronger. In order to enable you to make such contributions, NLnet will award 450 000 euro in small to medium-size R&D grants towards solutions that bring the next generation of mobile solutions closer. NLnet is seeking project proposals between 5.000 and 50.000 euro’s — which should get you on your way.
-
-Noteworthy fact: many projects which are to be deployed inside Fediversity were themselves bootstrapped on precisely such a grant from NGI, and now it is your turn.
-
-For more information on how to apply, check the NLnet website.
diff --git a/website/exampleSite/content/english/pages/Individuals.md b/website/exampleSite/content/english/pages/Individuals.md
deleted file mode 100755
index 36a44e5c..00000000
--- a/website/exampleSite/content/english/pages/Individuals.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: "Individuals"
-# meta title
-meta_title: "Individuals"
-# meta description
-description: "Information about the project for regular people."
-# save as draft
-draft: false
----
-
-The fediverse shows great potential in fundamentally rethinking how we approach the internet. It is a new way of thinking about how the internet can be a social web, and solves for the problems that the current Big Tech platforms have, while at the same time enabling a new wave of innovation and new ideas on the social web.
-
-- Giving people control of their data and social connections, allowing them to choose whatever platform and product they want.
-- Giving people control of their privacy and their feeds, without black-box algorithms that decide for them what they get to see.
-
-The Fediversity project is working on making it easier for people to join the fediverse, and taking full control on their own online social presence. We make it easier for you to join the fediverse, giving you an easy way to select what you need. With one click, you can select whether you need photo sharing, microblogging, video sharing, blogging or simply email. You can get a domain name as well, so you can be up and running with a professional social presence on the new internet in without any effort.
-
-Fediversity is currently in development, and you can follow us on Mastodon for all the latest information.
diff --git a/website/exampleSite/content/english/pages/NLnet.md b/website/exampleSite/content/english/pages/NLnet.md
deleted file mode 100755
index 4e3b4177..00000000
--- a/website/exampleSite/content/english/pages/NLnet.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "NLnet"
-# meta title
-meta_title: "NLnet"
-# meta description
-description: "The NLnet organisation"
-# save as draft
-draft: false
----
-
-The NLnet Foundation supports organisations and people who contribute to an open internet for all. NLnet funds projects that help fix the internet through open hardware, open software, open standards, open science and open data. After its historical contribution to the early internet in Europe in the 1980’s, NLnet has been financially supporting the open internet since 1997.
-
-NLnet provides grants to free and open source projects between 5.000 and 50.000 euro with the possibility to scale up. Funding is open to anyone: organisations of any type and individuals. Within NGI Fediversity, NLnet facilitates the open calls for third-party funding and contributes to outreach and dissemination.
diff --git a/website/exampleSite/content/english/pages/NORDUnet.md b/website/exampleSite/content/english/pages/NORDUnet.md
deleted file mode 100755
index e06fdeb8..00000000
--- a/website/exampleSite/content/english/pages/NORDUnet.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "NORDUnet"
-# meta title
-meta_title: "NORDUnet"
-# meta description
-description: "The NORDUnet organisation."
-# save as draft
-draft: false
----
-
-NORDUnet is a collaboration of the National Research and Education Networks of the Nordic countries connecting universities and research institutions across Denmark, Finland, Iceland, Norway, and Sweden. It enables collaboration, data sharing, and access to online resources for academic and research purposes.
-
-Fun fact: the website of NORDUnet, nordu.net is the oldest still active domain on the internet.
diff --git a/website/exampleSite/content/english/pages/OID.md b/website/exampleSite/content/english/pages/OID.md
deleted file mode 100755
index 0d91db89..00000000
--- a/website/exampleSite/content/english/pages/OID.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Consortium"
-# meta title
-meta_title: "Consortium"
-# meta description
-description: "The organisations behind the Fediversity Project"
-# save as draft
-draft: false
----
-
-The Open Internet Discourse Foundation (OID) is founded on the belief that everyone deserves the freedom to express themselves and use the internet without constraints, and is committed to help build a better internet where individuals can truly be who they are.
-
-The three pillars that are at the core of the OID Foundation:
-
-OID believes in the fundamental right of individuals to privacy, self-determination, and freedom of expression.
-Building sustainably. The OID Foundation believes that the internet is crucial infrastructure for society, and as such, should be build from the perspective that software projects can exist and be maintained for a long time; decades, not years.
-Transparancy. The OID Foundation takes the commitment to openness seriously, and strives to use open software in all aspects.
-In order to realise our vision, we need a healthy, functional and open internet. This is where OID comes in, working on the infrastructure that powers the internet in a way that promotes it’s values.
-
-OID Foundation is rooted in constructive optimism, believing in tackling challenges head-on with a positive outlook, viewing each obstacle as an opportunity for improvement. As a practical example of the long-term vision is the work on NixOS that the OID is doing, where the reproducibility and long-term maintainability of NixOS’s package management help with an open and sustainable internet.
diff --git a/website/exampleSite/content/english/pages/Tweag.md b/website/exampleSite/content/english/pages/Tweag.md
deleted file mode 100755
index 6d88b601..00000000
--- a/website/exampleSite/content/english/pages/Tweag.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: "Tweag"
-# meta title
-meta_title: "Tweag"
-# meta description
-description: "The Tweag organisation."
-# save as draft
-draft: false
----
-
-Tweag is the open source program office (OSPO) of Modus Create, a global digital consulting firm that helps enterprises build competitive advantage through digital innovation. Tweagers are leading contributors to several open source projects — from functional programming languages to cross-platform frameworks. Tweag has extensive experience working with Nix, and many people at the forefront of the Nix community are Tweagers.
diff --git a/website/exampleSite/content/english/pages/elements.md b/website/exampleSite/content/english/pages/elements.md
deleted file mode 100755
index 269ddbb5..00000000
--- a/website/exampleSite/content/english/pages/elements.md
+++ /dev/null
@@ -1,239 +0,0 @@
----
-title: "Elements"
-# meta title
-meta_title: ""
-# meta description
-description: "This is meta description"
-# save as draft
-draft: false
----
-
-{{< toc >}}
-
-Here is an example of headings. You can use this heading by the following markdown rules. For example: use `#` for heading 1 and use `######` for heading 6.
-
-# Heading 1
-
-## Heading 2
-
-### Heading 3
-
-#### Heading 4
-
-##### Heading 5
-
-###### Heading 6
-
-
-
-### Emphasis
-
-The emphasis, aka italics, with _asterisks_ or _underscores_.
-
-Strong emphasis, aka bold, with **asterisks** or **underscores**.
-
-The combined emphasis with **asterisks and _underscores_**.
-
-Strike through uses two tildes. ~~Scratch this.~~
-
-
-
-### Button
-
-{{< button label="Button" link="/" style="solid" >}}
-
-
-
-### Link
-
-[I'm an inline-style link](https://www.google.com)
-
-[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
-
-[I'm a reference-style link][Arbitrary case-insensitive reference text]
-
-[I'm a relative reference to a repository file](../blob/master/LICENSE)
-
-[You can use numbers for reference-style link definitions][1]
-
-Or leave it empty and use the [link text itself].
-
-URLs and URLs in angle brackets will automatically get turned into links.
- or and sometimes
-example.com (but not on Github, for example).
-
-Some text to show that the reference links can follow later.
-
-[arbitrary case-insensitive reference text]: https://www.themefisher.com
-[1]: https://gethugothemes.com
-[link text itself]: https://www.getjekyllthemes.com
-
-
-
-### Paragraph
-
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.
-
-
-
-### Ordered List
-
-1. List item
-2. List item
-3. List item
-4. List item
-5. List item
-
-
-
-### Unordered List
-
-- List item
-- List item
-- List item
-- List item
-- List item
-
-
-
-### Notice
-
-{{< notice "note" >}}
-This is a simple note.
-{{< /notice >}}
-
-{{< notice "tip" >}}
-This is a simple tip.
-{{< /notice >}}
-
-{{< notice "info" >}}
-This is a simple info.
-{{< /notice >}}
-
-{{< notice "warning" >}}
-This is a simple warning.
-{{< /notice >}}
-
-
-
-### Tab
-
-{{< tabs >}}
-{{< tab "Tab 1" >}}
-
-#### Hey There, I am a tab
-
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
-
-{{< /tab >}}
-
-{{< tab "Tab 2" >}}
-
-#### I wanna talk about the assassination attempt
-
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
-
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
-
-{{< /tab >}}
-
-{{< tab "Tab 3" >}}
-
-#### We know you’re dealing in stolen ore
-
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
-
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
-
-{{< /tab >}}
-{{< /tabs >}}
-
-
-
-### Accordions
-
-{{< accordion "Why should you need to do this?" >}}
-
-- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-- Lorem ipsum dolor sit amet consectetur
-
-{{< /accordion >}}
-
-{{< accordion "How can I adjust Horizontal centering" >}}
-
-- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-- Lorem ipsum dolor sit amet consectetur
-
-{{< /accordion >}}
-
-{{< accordion "Should you use Negative margin?" >}}
-
-- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-- Lorem ipsum dolor sit amet consectetur
-
-{{< /accordion >}}
-
-
-
-### Code and Syntax Highlighting
-
-This is an `Inline code` sample.
-
-```javascript
-var s = "JavaScript syntax highlighting";
-alert(s);
-```
-
-```python
-s = "Python syntax highlighting"
-print s
-```
-
-
-
-### Blockquote
-
-> Did you come here for something in particular or just general Riker-bashing? And blowing into maximum warp speed, you appeared for an instant to be in two places at once.
-
-
-
-### Tables
-
-| Tables | Are | Cool |
-| ------------- | :-----------: | ----: |
-| col 3 is | right-aligned | $1600 |
-| col 2 is | centered | $12 |
-| zebra stripes | are neat | $1 |
-
-
-
-### Image
-
-{{< image src="images/image-placeholder.png" caption="" alt="alter-text" height="" width="" position="center" command="fill" option="q100" class="img-fluid" title="image title" webp="false" >}}
-
-
-
-### Gallery
-
-{{< gallery dir="images/gallery" class="" height="400" width="400" webp="true" command="Fit" option="" zoomable="true" >}}
-
-
-
-### Slider
-
-{{< slider dir="images/gallery" class="max-w-[600px] ml-0" height="400" width="400" webp="true" command="Fit" option="" zoomable="true" >}}
-
-
-
-### Youtube video
-
-{{< youtube ResipmZmpDU >}}
-
-
-
-### Custom video
-
-{{< video src="https://www.w3schools.com/html/mov_bbb.mp4" width="100%" height="auto" autoplay="false" loop="false" muted="false" controls="true" class="rounded-lg" >}}
diff --git a/website/exampleSite/content/english/pages/privacy-policy.md b/website/exampleSite/content/english/pages/privacy-policy.md
deleted file mode 100644
index 3d16c6eb..00000000
--- a/website/exampleSite/content/english/pages/privacy-policy.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "Privacy"
-# meta title
-meta_title: ""
-# meta description
-description: "This is meta description"
-# save as draft
-draft: false
----
-
-#### Responsibility of Contributors
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus. Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed
-
-pretium, aliquam sit. Praesent elementum magna amet, tincidunt eros, nibh in leo. Malesuada purus, lacus, at aliquam suspendisse tempus. Quis tempus amet, velit nascetur sollicitudin. At sollicitudin eget amet in. Eu velit nascetur sollicitudin erhdfvssfvrgss eget viverra nec elementum. Lacus, facilisis tristique lectus in.
-
-#### Gathering of Personal Information
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus. Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed
-
-#### Protection of Personal- Information
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus.
-
-Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat
-
-#### Privacy Policy Changes
-
-1. Sll the Themefisher items are designed to be with the latest , We check all
-2. comments that threaten or harm the reputation of any person or organization
-3. personal information including, but limited to, email addresses, telephone numbers
-4. Any Update come in The technology Customer will get automatic Notification.
diff --git a/website/exampleSite/content/english/sections/call-to-action.md b/website/exampleSite/content/english/sections/call-to-action.md
deleted file mode 100644
index efda1486..00000000
--- a/website/exampleSite/content/english/sections/call-to-action.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-enable: true
-title: "Ready to build your next project with Hugo?"
-image: "/images/call-to-action.png"
-description: "Experience the future of web development with Hugoplate and Hugo. Build lightning-fast static sites with ease and flexibility."
-button:
- enable: true
- label: "Get Started Now"
- link: "https://github.com/zeon-studio/hugoplate"
-
-# don't create a separate page
-_build:
- render: "never"
----
diff --git a/website/exampleSite/content/english/sections/testimonial.md b/website/exampleSite/content/english/sections/testimonial.md
deleted file mode 100644
index 6e403247..00000000
--- a/website/exampleSite/content/english/sections/testimonial.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-enable: true
-title: "What Users Are Saying About Hugoplate"
-description: "Don't just take our word for it - hear from some of our satisfied users! Check out some of our testimonials below to see what others are saying about Hugoplate."
-
-# Testimonials
-testimonials:
- - name: "Marvin McKinney"
- designation: "Web Designer"
- avatar: "/images/avatar-sm.png"
- content: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui iusto illo molestias, assumenda expedita commodi inventore non itaque molestiae voluptatum dolore, facilis sapiente, repellat veniam."
-
- - name: "Marvin McKinney"
- designation: "Web Designer"
- avatar: "/images/avatar-sm.png"
- content: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui iusto illo molestias, assumenda expedita commodi inventore non itaque molestiae voluptatum dolore, facilis sapiente, repellat veniam."
-
- - name: "Marvin McKinney"
- designation: "Web Designer"
- avatar: "/images/avatar-sm.png"
- content: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui iusto illo molestias, assumenda expedita commodi inventore non itaque molestiae voluptatum dolore, facilis sapiente, repellat veniam."
-
- - name: "Marvin McKinney"
- designation: "Web Designer"
- avatar: "/images/avatar-sm.png"
- content: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui iusto illo molestias, assumenda expedita commodi inventore non itaque molestiae voluptatum dolore, facilis sapiente, repellat veniam."
-
-# don't create a separate page
-_build:
- render: "never"
----
diff --git a/website/exampleSite/data/social.json b/website/exampleSite/data/social.json
deleted file mode 100644
index 513cca76..00000000
--- a/website/exampleSite/data/social.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "main": [
- {
- "name": "facebook",
- "icon": "fab fa-facebook",
- "link": "https://www.facebook.com/"
- },
- {
- "name": "twitter",
- "icon": "fab fa-twitter",
- "link": "https://twitter.com/"
- },
- {
- "name": "github",
- "icon": "fab fa-github",
- "link": "https://www.github.com/"
- },
- {
- "name": "linkedin",
- "icon": "fab fa-linkedin",
- "link": "https://www.linkedin.com/"
- }
- ]
-}
diff --git a/website/exampleSite/data/theme.json b/website/exampleSite/data/theme.json
deleted file mode 100644
index 01f3a4ee..00000000
--- a/website/exampleSite/data/theme.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "colors": {
- "default": {
- "theme_color": {
- "primary": "#121212",
- "body": "#fff",
- "border": "#eaeaea",
- "theme_light": "#f6f6f6",
- "theme_dark": ""
- },
- "text_color": {
- "default": "#444444",
- "dark": "#040404",
- "light": "#717171"
- }
- }
- },
- "fonts": {
- "font_family": {
- "primary": "Heebo:wght@400;600",
- "primary_type": "sans-serif",
- "secondary": "Signika:wght@500;700",
- "secondary_type": "sans-serif"
- },
- "font_size": { "base": "16", "scale": "1.2" }
- }
-}
diff --git a/website/exampleSite/go.mod b/website/exampleSite/go.mod
deleted file mode 100644
index a1aa4664..00000000
--- a/website/exampleSite/go.mod
+++ /dev/null
@@ -1,29 +0,0 @@
-module hugoplate.netlify.app
-
-go 1.20
-
-require (
- github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/images v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/modal v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/search v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/tab v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/videos v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/zeon-studio/hugoplate v0.0.0-20240215094431-cf2ee3b68eaf // indirect
-)
diff --git a/website/exampleSite/hugo.toml b/website/exampleSite/hugo.toml
deleted file mode 100755
index 304598c3..00000000
--- a/website/exampleSite/hugo.toml
+++ /dev/null
@@ -1,172 +0,0 @@
-######################## default configuration ####################
-# The base URL of your site (required). This will be prepended to all relative URLs.
-baseURL = "/"
-# Title of your website (required).
-title = "Hugoplate"
-# Your theme name
-# theme = "hugoplate"
-# Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
-timeZone = "America/New_York"
-# post pagination
-paginate = 2 # see https://gohugo.io/extras/pagination/
-# post excerpt
-summaryLength = 10 # see https://gohugo.io/content-management/excerpts/
-# disable language
-disableLanguages = [
-] # example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/
-hasCJKLanguage = false # If hasCJKLanguage true, auto-detect Chinese/Japanese/Korean Languages in the content. see: https://gohugo.io/getting-started/configuration/#hascjklanguage
-# default language
-defaultContentLanguage = 'en'
-defaultContentLanguageInSubdir = false
-
-########################### Services #############################
-[services]
-[services.googleAnalytics]
-ID = 'G-MEASUREMENT_ID' # see https://gohugo.io/templates/internal/#configure-google-analytics
-
-[services.disqus]
-shortname = 'themefisher-template' # we use disqus to show comments in blog posts . To install disqus please follow this tutorial https://portfolio.peter-baumgartner.net/2017/09/10/how-to-install-disqus-on-hugo/
-
-########################## Permalinks ############################
-[permalinks.page]
-"pages" = "/:slugorfilename/"
-
-
-############################# Modules ############################
-[module]
-[[module.mounts]]
-source = "assets"
-target = "assets"
-
-[[module.mounts]]
-source = "hugo_stats.json"
-target = "assets/watching/hugo_stats.json"
-
-############################# Build ##############################
-[build]
-noJSConfigInAssets = false
-useResourceCacheWhen = 'fallback'
-[build.buildStats]
-enable = true
-[[build.cachebusters]]
-source = 'assets/watching/hugo_stats\.json'
-target = 'style\.css'
-[[build.cachebusters]]
-source = '(postcss|tailwind)\.config\.js'
-target = 'css'
-[[build.cachebusters]]
-source = 'assets/.*\.(js|ts|jsx|tsx)'
-target = 'js'
-[[build.cachebusters]]
-source = 'assets/.*\.(css|scss|sass)'
-target = 'css'
-[[build.cachebusters]]
-source = 'data/.*\.(.*)$'
-target = 'css'
-[[build.cachebusters]]
-source = 'assets/.*\.(.*)$'
-target = '$1'
-
-
-############################# Outputs ############################
-[outputs]
-home = ["HTML", "RSS", "WebAppManifest", "SearchIndex"]
-
-############################# Imaging ############################
-[imaging]
-# See https://github.com/disintegration/imaging
-# Default JPEG or WebP quality setting. Default is 75.
-quality = 80
-resampleFilter = "Lanczos"
-
-############################ Caches ##############################
-[caches]
-[caches.images]
-dir = ":resourceDir/_gen"
-maxAge = "720h"
-
-[caches.assets]
-dir = ":resourceDir/_gen"
-maxAge = "720h"
-
-
-############################ Markup ##############################
-[markup]
-[markup.goldmark.renderer]
-unsafe = true
-
-[markup.highlight]
-style = 'monokai' # see https://xyproto.github.io/splash/docs/all.html
-
-[markup.tableOfContents]
-startLevel = 2
-endLevel = 5
-ordered = true
-
-
-########################### Media types ###########################
-[mediaTypes]
-[mediaTypes."application/manifest+json"]
-suffixes = ["webmanifest"]
-
-
-########################### Output Format ##########################
-[outputFormats]
-[outputFormats.WebAppManifest]
-mediaType = "application/manifest+json"
-rel = "manifest"
-
-[outputFormats.SearchIndex]
-mediaType = "application/json"
-baseName = "searchindex"
-isPlainText = true
-notAlternative = true
-
-
-############################# Plugins ##############################
-
-# CSS Plugins
-[[params.plugins.css]]
-link = "plugins/swiper/swiper-bundle.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/glightbox/glightbox.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/font-awesome/v6/brands.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/font-awesome/v6/solid.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/font-awesome/v6/icons.css"
-lazy = true
-
-# JS Plugins
-[[params.plugins.js]]
-link = "js/search.js"
-lazy = false
-[[params.plugins.js]]
-link = "plugins/swiper/swiper-bundle.js"
-lazy = false
-[[params.plugins.js]]
-link = "plugins/cookie.js"
-lazy = false
-[[params.plugins.js]]
-link = "plugins/glightbox/glightbox.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/gallery-slider.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/accordion.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/tab.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/modal.js"
-lazy = true
-[[params.plugins.js]]
-link = "plugins/youtube-lite.js"
-lazy = true
diff --git a/website/exampleSite/i18n/en.yaml b/website/exampleSite/i18n/en.yaml
deleted file mode 100755
index ae07aa4b..00000000
--- a/website/exampleSite/i18n/en.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-- id: home
- translation: Home
-
-- id: read_more
- translation: Read More
-
-- id: send
- translation: Send
-
-- id: related_posts
- translation: Related Posts
-
-- id: categories
- translation: Categories
-
-- id: tags
- translation: Tags
-
-- id: toc
- translation: Table of Contents
-
-- id: share
- translation: Share
-
-- id: search_input_placeholder
- translation: Search Post ...
-
-- id: no_results_for
- translation: No results for
-
-- id: empty_search_results_placeholder
- translation: Type something to search..
diff --git a/website/exampleSite/postcss.config.js b/website/exampleSite/postcss.config.js
deleted file mode 100644
index f9887c51..00000000
--- a/website/exampleSite/postcss.config.js
+++ /dev/null
@@ -1,45 +0,0 @@
-const purgecss = {
- content: ["./hugo_stats.json"],
- defaultExtractor: (content) => {
- const elements = JSON.parse(content).htmlElements;
- return [
- ...(elements.tags || []),
- ...(elements.classes || []),
- ...(elements.ids || []),
- ];
- },
- safelist: [
- /^swiper-/,
- /^lb-/,
- /^gl/,
- /^go/,
- /^gc/,
- /^gs/,
- /^gi/,
- /^gz/,
- /^gprev/,
- /^gnext/,
- /^desc/,
- /^zoom/,
- /^search/,
- /^:is/,
- /dark/,
- /show/,
- /dragging/,
- /fullscreen/,
- /loaded/,
- /visible/,
- /current/,
- /active/,
- /mark/,
- ],
-};
-
-module.exports = {
- plugins: {
- tailwindcss: {},
- "@fullhuman/postcss-purgecss":
- process.env.HUGO_ENVIRONMENT === "production" ? purgecss : false,
- autoprefixer: process.env.HUGO_ENVIRONMENT === "production" ? {} : false,
- },
-};
diff --git a/website/exampleSite/tailwind.config.js b/website/exampleSite/tailwind.config.js
deleted file mode 100755
index 7d19e76f..00000000
--- a/website/exampleSite/tailwind.config.js
+++ /dev/null
@@ -1,92 +0,0 @@
-const fs = require("fs");
-const path = require("path");
-const themePath = path.join(__dirname, "data/theme.json");
-const themeRead = fs.readFileSync(themePath, "utf8");
-const theme = JSON.parse(themeRead);
-
-let font_base = Number(theme.fonts.font_size.base.replace("px", ""));
-let font_scale = Number(theme.fonts.font_size.scale);
-let h6 = font_scale;
-let h5 = h6 * font_scale;
-let h4 = h5 * font_scale;
-let h3 = h4 * font_scale;
-let h2 = h3 * font_scale;
-let h1 = h2 * font_scale;
-let fontPrimary, fontPrimaryType, fontSecondary, fontSecondaryType;
-if (theme.fonts.font_family.primary) {
- fontPrimary = theme.fonts.font_family.primary
- .replace(/\+/g, " ")
- .replace(/:[ital,]*[ital@]*[wght@]*[0-9,;]+/gi, "");
- fontPrimaryType = theme.fonts.font_family.primary_type;
-}
-if (theme.fonts.font_family.secondary) {
- fontSecondary = theme.fonts.font_family.secondary
- .replace(/\+/g, " ")
- .replace(/:[ital,]*[ital@]*[wght@]*[0-9,;]+/gi, "");
- fontSecondaryType = theme.fonts.font_family.secondary_type;
-}
-
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: ["./hugo_stats.json"],
- safelist: [{ pattern: /^swiper-/ }],
-
- theme: {
- screens: {
- sm: "540px",
- md: "768px",
- lg: "1024px",
- xl: "1280px",
- "2xl": "1536px",
- },
- container: {
- center: true,
- padding: "2rem",
- },
- extend: {
- colors: {
- text: theme.colors.default.text_color.default,
- light: theme.colors.default.text_color.light,
- dark: theme.colors.default.text_color.dark,
- primary: theme.colors.default.theme_color.primary,
- secondary: theme.colors.default.theme_color.secondary,
- body: theme.colors.default.theme_color.body,
- border: theme.colors.default.theme_color.border,
- "theme-light": theme.colors.default.theme_color.theme_light,
- "theme-dark": theme.colors.default.theme_color.theme_dark,
- },
- fontSize: {
- base: font_base + "px",
- "base-sm": font_base * 0.8 + "px",
- h1: h1 + "rem",
- "h1-sm": h1 * 0.9 + "rem",
- h2: h2 + "rem",
- "h2-sm": h2 * 0.9 + "rem",
- h3: h3 + "rem",
- "h3-sm": h3 * 0.9 + "rem",
- h4: h4 + "rem",
- h5: h5 + "rem",
- h6: h6 + "rem",
- },
- fontFamily: {
- primary: [fontPrimary, fontPrimaryType],
- secondary: [fontSecondary, fontSecondaryType],
- },
- },
- },
- plugins: [
- require("@tailwindcss/typography"),
- require("@tailwindcss/forms"),
- require("tailwind-bootstrap-grid")({
- generateContainer: false,
- gridGutterWidth: "2rem",
- gridGutters: {
- 1: "0.25rem",
- 2: "0.5rem",
- 3: "1rem",
- 4: "1.5rem",
- 5: "3rem",
- },
- }),
- ],
-};
diff --git a/website/go.mod b/website/go.mod
deleted file mode 100644
index a1aa4664..00000000
--- a/website/go.mod
+++ /dev/null
@@ -1,29 +0,0 @@
-module hugoplate.netlify.app
-
-go 1.20
-
-require (
- github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/images v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/modal v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/search v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/tab v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/gethugothemes/hugo-modules/videos v0.0.0-20240215103202-c030d4222242 // indirect
- github.com/zeon-studio/hugoplate v0.0.0-20240215094431-cf2ee3b68eaf // indirect
-)
diff --git a/website/go.sum b/website/go.sum
deleted file mode 100644
index b53449aa..00000000
--- a/website/go.sum
+++ /dev/null
@@ -1,46 +0,0 @@
-github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240215103202-c030d4222242 h1:gFxGalBg26zJumCS5e//j95FgZlYRpNJ3jIXi4OIl1c=
-github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240215103202-c030d4222242/go.mod h1:D4DpauKPDcUHI9CVKYmJeO6bkSJIhUN864TyXZ2o0VI=
-github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240215103202-c030d4222242 h1:H4qw71Pv1RmCio3r/D4N8MXHVks1SBpMcVmZCnz3wlg=
-github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240215103202-c030d4222242/go.mod h1:8p/gG/cyyu20z4q5cFN/JGE5TOFA55Xsp+aIP9KCsqo=
-github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240215103202-c030d4222242 h1:d4SGLNv5mmwnMAG78t40ce0CSnhQwZJAi2FTmmx9kgg=
-github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240215103202-c030d4222242/go.mod h1:511ERLpGe3ZTfV2z/NAtUSR5NqKF26h9z5lU/zYV4YQ=
-github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240215103202-c030d4222242 h1:+ShMfcdSHAgg8eFF7ZVvEaWl+/JkLLfpaWgqJZnsm0I=
-github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240215103202-c030d4222242/go.mod h1:RuDHq4WnK8sNEzAIJr4BZQ7oXhzcct/EKaAxc2Xvi9E=
-github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240215103202-c030d4222242 h1:Wnijrj8VjI2GclhDHsH0zRcYO1Wq/t9u5LtGpDFbc7w=
-github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240215103202-c030d4222242/go.mod h1:FP0iQ3tMOesuWFZhLst2KEvUEYPb5Jk1GW+QBP9lrwg=
-github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240215103202-c030d4222242 h1:1aTJ9rWGFka6yaEDrCR3uouz4BsA5H00S1iQzlTT7Cg=
-github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240215103202-c030d4222242/go.mod h1:z3YcIeEBUonAoRDY1/Jv1ojNVkZ5ud35a0Nn8L4Inx0=
-github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240215103202-c030d4222242 h1:phq6SxYmB8A22LlMUu2p75sI0qrWrizQVbptk0YznSU=
-github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240215103202-c030d4222242/go.mod h1:Gcj4RM/EBECsJMZnPeWjfy/1roRYGqzV9GYNmeHkvFA=
-github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240215103202-c030d4222242 h1:imsu5wNduLXax4FjofQ7bOBpTtqgyyBcM15s0kNzHzM=
-github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240215103202-c030d4222242/go.mod h1:MvQ2js/ofZ22CTX5wuvE+dC0rMe6C5HAWL2fEOu/yzE=
-github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240215103202-c030d4222242 h1:qP8v2MMeqRQ658Vw/o4jsNKq/BUFVLfGkVz0dy8cDEo=
-github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240215103202-c030d4222242/go.mod h1:0ZMjTZVG4XLZU2/icc8Saqo4mmgMpfRTrUZU2Aa2Pwg=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240215103202-c030d4222242 h1:xZm3fwubmIb3xpkmsrX9zDp7m0lfg5yptQKQT0dxxI0=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240215103202-c030d4222242/go.mod h1:d3gy1vQyfasPmGpau7HpQLrXbOv23PfXclSnjyOBxeU=
-github.com/gethugothemes/hugo-modules/images v0.0.0-20240215103202-c030d4222242 h1:r1h0s39pTIW0PJVbDzKrePX3RNlHnHiTzldnXuDZeXU=
-github.com/gethugothemes/hugo-modules/images v0.0.0-20240215103202-c030d4222242/go.mod h1:FKliP3qOW9diIcQeLtyZ0Hdhg3PL8bdAkC/6O+XtU90=
-github.com/gethugothemes/hugo-modules/modal v0.0.0-20240215103202-c030d4222242 h1:8oP1m06Ko+q7dQichAmywtzMsGuckoG3rW6UVboa7d0=
-github.com/gethugothemes/hugo-modules/modal v0.0.0-20240215103202-c030d4222242/go.mod h1:Eb9v7oV6biymfvjcBhQdvgn0gUGYhUtfCMeOBLFpFsk=
-github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240215103202-c030d4222242 h1:82WUFZMkOqSt5wWQ1uxkS7pP648+MfitjJbETOM8Hl0=
-github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240215103202-c030d4222242/go.mod h1:TRv7iszdfo37O1PbBEE+S8X/enAdpRIxK5DGrp13Qbo=
-github.com/gethugothemes/hugo-modules/search v0.0.0-20240215103202-c030d4222242 h1:Uj5yTctxnxU3Rqc0hVT4KJ8bRY3rn6bwhSDhhsrWQLQ=
-github.com/gethugothemes/hugo-modules/search v0.0.0-20240215103202-c030d4222242/go.mod h1:tmDvLaZCM+QDvS/WLZXNjY1QTdWh7/68D2wIToECbyA=
-github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240215103202-c030d4222242 h1:FCUJq2eYZmYVgTWnTno4lnez+0pCRHqBX0EREqiAzjA=
-github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240215103202-c030d4222242/go.mod h1:Q8dPgjamV7pxwKSQyWV21Xwh5CGi23/k+M8HPTphYbs=
-github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240215103202-c030d4222242 h1:XFI2k5XL/hIzr+MoRq2VAMQyHd4namMjqZLfOgeLiHI=
-github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240215103202-c030d4222242/go.mod h1:cCq50yd55eFTrpqOfeyOK5X0hU5E7qxsqOD7IzTsgLA=
-github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240215103202-c030d4222242 h1:zgttA3KBEABQGqVVMBuEcFO8OszjSwGGnCYFVxboiDo=
-github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240215103202-c030d4222242/go.mod h1:iXielaya126qJscz7Bc2G2WB91moloQOoWru6UoBUyE=
-github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240215103202-c030d4222242 h1:ZZPGIQ8uP/yBwelIGhLAx9fqOE18QyItitSTF0WD4B0=
-github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240215103202-c030d4222242/go.mod h1:MSvxGvjvcGUKTs6YMATU/9kYFrzW+VSVdy4CCOQLdsY=
-github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240215103202-c030d4222242 h1:X10cLYuM8bT2EGul85TZZZ2/ih8jlax8/gLqynCDQIc=
-github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240215103202-c030d4222242/go.mod h1:ljWyMJx82WA+6SlKjbGFhEdxcriyvUTCjXkJHDa4lho=
-github.com/gethugothemes/hugo-modules/tab v0.0.0-20240215103202-c030d4222242 h1:gOucOrcZsEL++YUGnrTqFa91o9lRdNEepbnERNSmS3A=
-github.com/gethugothemes/hugo-modules/tab v0.0.0-20240215103202-c030d4222242/go.mod h1:h3UxlxrFoU19JldxWLPBKaTZFe3AJtABrqo1wfxr+Ng=
-github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20240215103202-c030d4222242 h1:pgmjy/uwvUsAPTDl+gKz7GF3kTi6mcbFQBm4W8asDws=
-github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20240215103202-c030d4222242/go.mod h1:bEDw4veccQQQYEdVrfu13ATRUWfW8ptDIjJZuhYh4Tw=
-github.com/gethugothemes/hugo-modules/videos v0.0.0-20240215103202-c030d4222242 h1:nLyYQIaJXGnMs8RlfRpmqRVR02T9OVzCEiekh5aU7Qw=
-github.com/gethugothemes/hugo-modules/videos v0.0.0-20240215103202-c030d4222242/go.mod h1:P722lLWdnNhdZVq6gvMrOLqECUwrAYQWaOWlChta5H0=
-github.com/zeon-studio/hugoplate v0.0.0-20240215094431-cf2ee3b68eaf h1:WOgVJoGR0gDPORswcdzZRN2zw2Ap4H58Zy5pYLwcmIQ=
-github.com/zeon-studio/hugoplate v0.0.0-20240215094431-cf2ee3b68eaf/go.mod h1:YlRIwdTWidquf1dhtx+mDfu0I3KVrVQB4wi4UmHlK3E=
diff --git a/website/hugo.toml b/website/hugo.toml
deleted file mode 100755
index 82c0bd09..00000000
--- a/website/hugo.toml
+++ /dev/null
@@ -1,172 +0,0 @@
-######################## default configuration ####################
-# The base URL of your site (required). This will be prepended to all relative URLs.
-baseURL = "/"
-# Title of your website (required).
-title = "Fediversity"
-# Your theme name
-theme = "hugoplate"
-# Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
-timeZone = "Europe/Amsterdam"
-# post pagination
-paginate = 5 # see https://gohugo.io/extras/pagination/
-# post excerpt
-summaryLength = 10 # see https://gohugo.io/content-management/excerpts/
-# disable language
-disableLanguages = [
-] # example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/
-hasCJKLanguage = false # If hasCJKLanguage true, auto-detect Chinese/Japanese/Korean Languages in the content. see: https://gohugo.io/getting-started/configuration/#hascjklanguage
-# default language
-defaultContentLanguage = 'en'
-defaultContentLanguageInSubdir = false
-
-########################### Services #############################
-[services]
-[services.googleAnalytics]
-ID = 'G-MEASUREMENT_ID' # see https://gohugo.io/templates/internal/#configure-google-analytics
-
-[services.disqus]
-shortname = 'themefisher-template' # we use disqus to show comments in blog posts . To install disqus please follow this tutorial https://portfolio.peter-baumgartner.net/2017/09/10/how-to-install-disqus-on-hugo/
-
-########################## Permalinks ############################
-[permalinks.page]
-"pages" = "/:slugorfilename/"
-
-
-############################# Modules ############################
-[module]
-[[module.mounts]]
-source = "assets"
-target = "assets"
-
-[[module.mounts]]
-source = "hugo_stats.json"
-target = "assets/watching/hugo_stats.json"
-
-############################# Build ##############################
-[build]
-noJSConfigInAssets = false
-useResourceCacheWhen = 'fallback'
-[build.buildStats]
-enable = true
-[[build.cachebusters]]
-source = 'assets/watching/hugo_stats\.json'
-target = 'style\.css'
-[[build.cachebusters]]
-source = '(postcss|tailwind)\.config\.js'
-target = 'css'
-[[build.cachebusters]]
-source = 'assets/.*\.(js|ts|jsx|tsx)'
-target = 'js'
-[[build.cachebusters]]
-source = 'assets/.*\.(css|scss|sass)'
-target = 'css'
-[[build.cachebusters]]
-source = 'data/.*\.(.*)$'
-target = 'css'
-[[build.cachebusters]]
-source = 'assets/.*\.(.*)$'
-target = '$1'
-
-
-############################# Outputs ############################
-[outputs]
-home = ["HTML", "RSS", "WebAppManifest", "SearchIndex"]
-
-############################# Imaging ############################
-[imaging]
-# See https://github.com/disintegration/imaging
-# Default JPEG or WebP quality setting. Default is 75.
-quality = 80
-resampleFilter = "Lanczos"
-
-############################ Caches ##############################
-[caches]
-[caches.images]
-dir = ":resourceDir/_gen"
-maxAge = "720h"
-
-[caches.assets]
-dir = ":resourceDir/_gen"
-maxAge = "720h"
-
-
-############################ Markup ##############################
-[markup]
-[markup.goldmark.renderer]
-unsafe = true
-
-[markup.highlight]
-style = 'monokai' # see https://xyproto.github.io/splash/docs/all.html
-
-[markup.tableOfContents]
-startLevel = 2
-endLevel = 5
-ordered = true
-
-
-########################### Media types ###########################
-[mediaTypes]
-[mediaTypes."application/manifest+json"]
-suffixes = ["webmanifest"]
-
-
-########################### Output Format ##########################
-[outputFormats]
-[outputFormats.WebAppManifest]
-mediaType = "application/manifest+json"
-rel = "manifest"
-
-[outputFormats.SearchIndex]
-mediaType = "application/json"
-baseName = "searchindex"
-isPlainText = true
-notAlternative = true
-
-
-############################# Plugins ##############################
-
-# CSS Plugins
-[[params.plugins.css]]
-link = "plugins/swiper/swiper-bundle.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/glightbox/glightbox.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/font-awesome/v6/brands.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/font-awesome/v6/solid.css"
-lazy = true
-[[params.plugins.css]]
-link = "plugins/font-awesome/v6/icons.css"
-lazy = true
-
-# JS Plugins
-[[params.plugins.js]]
-link = "js/search.js"
-lazy = false
-[[params.plugins.js]]
-link = "plugins/swiper/swiper-bundle.js"
-lazy = false
-[[params.plugins.js]]
-link = "plugins/cookie.js"
-lazy = false
-[[params.plugins.js]]
-link = "plugins/glightbox/glightbox.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/gallery-slider.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/accordion.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/tab.js"
-lazy = true
-[[params.plugins.js]]
-link = "js/modal.js"
-lazy = true
-[[params.plugins.js]]
-link = "plugins/youtube-lite.js"
-lazy = true
diff --git a/website/hugo_stats.json b/website/hugo_stats.json
deleted file mode 100644
index e616e809..00000000
--- a/website/hugo_stats.json
+++ /dev/null
@@ -1,257 +0,0 @@
-{
- "htmlElements": {
- "tags": [
- "a",
- "article",
- "base",
- "body",
- "br",
- "button",
- "center",
- "div",
- "footer",
- "form",
- "h1",
- "h2",
- "h4",
- "h5",
- "head",
- "header",
- "hr",
- "html",
- "i",
- "img",
- "input",
- "label",
- "li",
- "link",
- "main",
- "meta",
- "nav",
- "p",
- "path",
- "picture",
- "polygon",
- "script",
- "section",
- "source",
- "span",
- "svg",
- "textarea",
- "time",
- "title",
- "ul"
- ],
- "classes": [
- "2xl:bg-pink-200",
- "2xl:block",
- "2xl:hidden",
- "active",
- "bg-body",
- "bg-gradient",
- "bg-gradient-to-b",
- "bg-gray-200",
- "bg-theme-light",
- "block",
- "border-b",
- "border-border",
- "border-t",
- "btn",
- "btn-outline-primary",
- "btn-primary",
- "btn-sm",
- "capitalize",
- "center-layout",
- "center-wrapper",
- "col-12",
- "column",
- "container",
- "content",
- "cursor-pointer",
- "fa",
- "fa-arrow-right",
- "fa-brands",
- "fa-circle-user",
- "fa-clock",
- "fa-folder",
- "fa-github",
- "fa-globe",
- "fa-mastodon",
- "fa-regular",
- "fa-rss",
- "fab",
- "fill-current",
- "fixed",
- "flex",
- "flex-wrap",
- "font-bold",
- "form-input",
- "form-label",
- "from-body",
- "g",
- "grid-container",
- "grid-container-small",
- "grid-item",
- "group",
- "gx-5",
- "h-4",
- "h-6",
- "h2",
- "h3",
- "header",
- "header-with-image",
- "header-with-image2",
- "hidden",
- "hr-list",
- "hr-list2",
- "img",
- "inlin-block",
- "inline-block",
- "inline-flex",
- "items-center",
- "items-start",
- "justify-between",
- "justify-center",
- "left-0",
- "lg:!max-w-[800px]",
- "lg:bg-green-200",
- "lg:block",
- "lg:col-10",
- "lg:col-3",
- "lg:col-4",
- "lg:col-6",
- "lg:col-7",
- "lg:col-8",
- "lg:flex",
- "lg:group-hover:opacity-100",
- "lg:group-hover:visible",
- "lg:hidden",
- "lg:inline-block",
- "lg:mb-0",
- "lg:ml-0",
- "lg:mt-0",
- "lg:order-1",
- "lg:pb-0",
- "lg:space-x-2",
- "lg:text-h1",
- "lg:text-left",
- "lg:text-right",
- "lg:w-1/2",
- "lg:w-auto",
- "line",
- "link",
- "list",
- "list-item",
- "logo-dark",
- "logo-light",
- "m-3",
- "mb-10",
- "mb-12",
- "mb-14",
- "mb-3",
- "mb-4",
- "mb-6",
- "mb-8",
- "mb:md-0",
- "md:bg-yellow-200",
- "md:block",
- "md:col-10",
- "md:col-5",
- "md:col-6",
- "md:col-7",
- "md:col-8",
- "md:col-9",
- "md:hidden",
- "md:order-2",
- "ml-2",
- "ml-4",
- "ml-auto",
- "mr-1",
- "mr-2",
- "mr-4",
- "ms-1",
- "mt-10",
- "mt-4",
- "mt-6",
- "mt-8",
- "mx-auto",
- "nav-dropdown",
- "nav-dropdown-item",
- "nav-dropdown-link",
- "nav-dropdown-list",
- "nav-item",
- "nav-link",
- "navbar",
- "navbar-brand",
- "navbar-nav",
- "order-0",
- "order-1",
- "order-3",
- "p-8",
- "pb-0",
- "pb-14",
- "pb-16",
- "pb-6",
- "pl-2",
- "pr-8",
- "pt-14",
- "pt-7",
- "px-2",
- "px-4",
- "px-8",
- "py-10",
- "py-14",
- "py-2",
- "py-7",
- "py-[2.5px]",
- "relative",
- "rounded",
- "rounded-2xl",
- "row",
- "section",
- "section-sm",
- "sm:bg-red-200",
- "sm:block",
- "sm:col-10",
- "sm:hidden",
- "social-icons",
- "space-x-1",
- "sr-only",
- "sticky",
- "system",
- "text-[12px]",
- "text-[8rem]",
- "text-black",
- "text-center",
- "text-dark",
- "text-h3",
- "text-lg",
- "text-light",
- "text-primary",
- "text-red-500",
- "text-xl",
- "time",
- "to-theme-light",
- "top-0",
- "uppercase",
- "w-4",
- "w-[30px]",
- "w-full",
- "xl:bg-blue-200",
- "xl:block",
- "xl:hidden",
- "xl:space-x-8",
- "z-30",
- "z-50"
- ],
- "ids": [
- "email",
- "hide-button",
- "message",
- "name",
- "nav-menu",
- "nav-toggle",
- "show-button"
- ]
- }
-}
diff --git a/website/i18n/en.yaml b/website/i18n/en.yaml
deleted file mode 100755
index ae07aa4b..00000000
--- a/website/i18n/en.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-- id: home
- translation: Home
-
-- id: read_more
- translation: Read More
-
-- id: send
- translation: Send
-
-- id: related_posts
- translation: Related Posts
-
-- id: categories
- translation: Categories
-
-- id: tags
- translation: Tags
-
-- id: toc
- translation: Table of Contents
-
-- id: share
- translation: Share
-
-- id: search_input_placeholder
- translation: Search Post ...
-
-- id: no_results_for
- translation: No results for
-
-- id: empty_search_results_placeholder
- translation: Type something to search..
diff --git a/website/netlify.toml b/website/netlify.toml
deleted file mode 100755
index 24188509..00000000
--- a/website/netlify.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[build]
-publish = "public"
-command = "yarn project-setup; yarn build"
-
-[build.environment]
-HUGO_VERSION = "0.121.2"
-GO_VERSION = "1.20.5"
diff --git a/website/node_modules/.bin/autoprefixer b/website/node_modules/.bin/autoprefixer
deleted file mode 120000
index e876d81c..00000000
--- a/website/node_modules/.bin/autoprefixer
+++ /dev/null
@@ -1 +0,0 @@
-../autoprefixer/bin/autoprefixer
\ No newline at end of file
diff --git a/website/node_modules/.bin/browserslist b/website/node_modules/.bin/browserslist
deleted file mode 120000
index 3cd991b2..00000000
--- a/website/node_modules/.bin/browserslist
+++ /dev/null
@@ -1 +0,0 @@
-../browserslist/cli.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/cssesc b/website/node_modules/.bin/cssesc
deleted file mode 120000
index 487b6890..00000000
--- a/website/node_modules/.bin/cssesc
+++ /dev/null
@@ -1 +0,0 @@
-../cssesc/bin/cssesc
\ No newline at end of file
diff --git a/website/node_modules/.bin/jiti b/website/node_modules/.bin/jiti
deleted file mode 120000
index 031ee3fd..00000000
--- a/website/node_modules/.bin/jiti
+++ /dev/null
@@ -1 +0,0 @@
-../jiti/bin/jiti.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/mini-svg-data-uri b/website/node_modules/.bin/mini-svg-data-uri
deleted file mode 120000
index 20b061f5..00000000
--- a/website/node_modules/.bin/mini-svg-data-uri
+++ /dev/null
@@ -1 +0,0 @@
-../mini-svg-data-uri/cli.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/nanoid b/website/node_modules/.bin/nanoid
deleted file mode 120000
index e2be547b..00000000
--- a/website/node_modules/.bin/nanoid
+++ /dev/null
@@ -1 +0,0 @@
-../nanoid/bin/nanoid.cjs
\ No newline at end of file
diff --git a/website/node_modules/.bin/node-which b/website/node_modules/.bin/node-which
deleted file mode 120000
index 6f8415ec..00000000
--- a/website/node_modules/.bin/node-which
+++ /dev/null
@@ -1 +0,0 @@
-../which/bin/node-which
\ No newline at end of file
diff --git a/website/node_modules/.bin/postcss b/website/node_modules/.bin/postcss
deleted file mode 120000
index 236af7c9..00000000
--- a/website/node_modules/.bin/postcss
+++ /dev/null
@@ -1 +0,0 @@
-../postcss-cli/index.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/prettier b/website/node_modules/.bin/prettier
deleted file mode 120000
index 92267ed8..00000000
--- a/website/node_modules/.bin/prettier
+++ /dev/null
@@ -1 +0,0 @@
-../prettier/bin/prettier.cjs
\ No newline at end of file
diff --git a/website/node_modules/.bin/purgecss b/website/node_modules/.bin/purgecss
deleted file mode 120000
index 6ef98b01..00000000
--- a/website/node_modules/.bin/purgecss
+++ /dev/null
@@ -1 +0,0 @@
-../purgecss/bin/purgecss.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/resolve b/website/node_modules/.bin/resolve
deleted file mode 120000
index b6afda6c..00000000
--- a/website/node_modules/.bin/resolve
+++ /dev/null
@@ -1 +0,0 @@
-../resolve/bin/resolve
\ No newline at end of file
diff --git a/website/node_modules/.bin/sucrase b/website/node_modules/.bin/sucrase
deleted file mode 120000
index 0ac7e775..00000000
--- a/website/node_modules/.bin/sucrase
+++ /dev/null
@@ -1 +0,0 @@
-../sucrase/bin/sucrase
\ No newline at end of file
diff --git a/website/node_modules/.bin/sucrase-node b/website/node_modules/.bin/sucrase-node
deleted file mode 120000
index 8b96fae2..00000000
--- a/website/node_modules/.bin/sucrase-node
+++ /dev/null
@@ -1 +0,0 @@
-../sucrase/bin/sucrase-node
\ No newline at end of file
diff --git a/website/node_modules/.bin/tailwind b/website/node_modules/.bin/tailwind
deleted file mode 120000
index d4977975..00000000
--- a/website/node_modules/.bin/tailwind
+++ /dev/null
@@ -1 +0,0 @@
-../tailwindcss/lib/cli.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/tailwindcss b/website/node_modules/.bin/tailwindcss
deleted file mode 120000
index d4977975..00000000
--- a/website/node_modules/.bin/tailwindcss
+++ /dev/null
@@ -1 +0,0 @@
-../tailwindcss/lib/cli.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/ulid b/website/node_modules/.bin/ulid
deleted file mode 120000
index 8262ea03..00000000
--- a/website/node_modules/.bin/ulid
+++ /dev/null
@@ -1 +0,0 @@
-../ulid/bin/cli.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/update-browserslist-db b/website/node_modules/.bin/update-browserslist-db
deleted file mode 120000
index b11e16f3..00000000
--- a/website/node_modules/.bin/update-browserslist-db
+++ /dev/null
@@ -1 +0,0 @@
-../update-browserslist-db/cli.js
\ No newline at end of file
diff --git a/website/node_modules/.bin/yaml b/website/node_modules/.bin/yaml
deleted file mode 120000
index 03683247..00000000
--- a/website/node_modules/.bin/yaml
+++ /dev/null
@@ -1 +0,0 @@
-../yaml/bin.mjs
\ No newline at end of file
diff --git a/website/node_modules/.package-lock.json b/website/node_modules/.package-lock.json
deleted file mode 100644
index b2018b5b..00000000
--- a/website/node_modules/.package-lock.json
+++ /dev/null
@@ -1,2177 +0,0 @@
-{
- "name": "hugoplate",
- "version": "1.13.1",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@fullhuman/postcss-purgecss": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-5.0.0.tgz",
- "integrity": "sha512-onDS/b/2pMRzqSoj4qOs2tYFmOpaspjTAgvACIHMPiicu1ptajiBruTrjBzTKdxWdX0ldaBb7wj8nEaTLyFkJw==",
- "dev": true,
- "dependencies": {
- "purgecss": "^5.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "dev": true
- },
- "node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true
- },
- "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,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@tailwindcss/forms": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz",
- "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==",
- "dev": true,
- "dependencies": {
- "mini-svg-data-uri": "^1.2.3"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
- }
- },
- "node_modules/@tailwindcss/typography": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz",
- "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==",
- "dev": true,
- "dependencies": {
- "lodash.castarray": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.merge": "^4.6.2",
- "postcss-selector-parser": "6.0.10"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || insiders"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
- },
- "node_modules/autoprefixer": {
- "version": "10.4.19",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
- "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "browserslist": "^4.23.0",
- "caniuse-lite": "^1.0.30001599",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001599",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz",
- "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/commander": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || >=14"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/dependency-graph": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
- "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.713",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.713.tgz",
- "integrity": "sha512-vDarADhwntXiULEdmWd77g2dV6FrNGa8ecAC29MZ4TwPut2fvosD0/5sJd1qWNNe8HcJFAC+F5Lf9jW1NPtWmw==",
- "dev": true
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
- "dev": true,
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-stdin": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
- "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/globby": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz",
- "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/merge-streams": "^2.1.0",
- "fast-glob": "^3.3.2",
- "ignore": "^5.2.4",
- "path-type": "^5.0.0",
- "slash": "^5.1.0",
- "unicorn-magic": "^0.1.0"
- },
- "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
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.0",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
- "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
- "dev": true,
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/joi": {
- "version": "17.12.2",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz",
- "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
- "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/lodash.castarray": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
- "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
- "dev": true
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mini-svg-data-uri": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
- "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
- "dev": true,
- "bin": {
- "mini-svg-data-uri": "cli.js"
- }
- },
- "node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-type": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
- "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.38",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
- "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-cli": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz",
- "integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==",
- "dev": true,
- "dependencies": {
- "chokidar": "^3.3.0",
- "dependency-graph": "^0.11.0",
- "fs-extra": "^11.0.0",
- "get-stdin": "^9.0.0",
- "globby": "^14.0.0",
- "picocolors": "^1.0.0",
- "postcss-load-config": "^5.0.0",
- "postcss-reporter": "^7.0.0",
- "pretty-hrtime": "^1.0.3",
- "read-cache": "^1.0.0",
- "slash": "^5.0.0",
- "yargs": "^17.0.0"
- },
- "bin": {
- "postcss": "index.js"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
- "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
- "dev": true,
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.3.tgz",
- "integrity": "sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
- "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.11"
- },
- "engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-nested/node_modules/postcss-selector-parser": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
- "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-reporter": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz",
- "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "picocolors": "^1.0.0",
- "thenby": "^1.3.4"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/prettier": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
- "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
- "dev": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/prettier-plugin-go-template": {
- "version": "0.0.15",
- "resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.15.tgz",
- "integrity": "sha512-WqU92E1NokWYNZ9mLE6ijoRg6LtIGdLMePt2C7UBDjXeDH9okcRI3zRqtnWR4s5AloiqyvZ66jNBAa9tmRY5EQ==",
- "dev": true,
- "dependencies": {
- "ulid": "^2.3.0"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "prettier": "^3.0.0"
- }
- },
- "node_modules/prettier-plugin-tailwindcss": {
- "version": "0.5.12",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.12.tgz",
- "integrity": "sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ==",
- "dev": true,
- "engines": {
- "node": ">=14.21.3"
- },
- "peerDependencies": {
- "@ianvs/prettier-plugin-sort-imports": "*",
- "@prettier/plugin-pug": "*",
- "@shopify/prettier-plugin-liquid": "*",
- "@trivago/prettier-plugin-sort-imports": "*",
- "prettier": "^3.0",
- "prettier-plugin-astro": "*",
- "prettier-plugin-css-order": "*",
- "prettier-plugin-import-sort": "*",
- "prettier-plugin-jsdoc": "*",
- "prettier-plugin-marko": "*",
- "prettier-plugin-organize-attributes": "*",
- "prettier-plugin-organize-imports": "*",
- "prettier-plugin-sort-imports": "*",
- "prettier-plugin-style-order": "*",
- "prettier-plugin-svelte": "*"
- },
- "peerDependenciesMeta": {
- "@ianvs/prettier-plugin-sort-imports": {
- "optional": true
- },
- "@prettier/plugin-pug": {
- "optional": true
- },
- "@shopify/prettier-plugin-liquid": {
- "optional": true
- },
- "@trivago/prettier-plugin-sort-imports": {
- "optional": true
- },
- "prettier-plugin-astro": {
- "optional": true
- },
- "prettier-plugin-css-order": {
- "optional": true
- },
- "prettier-plugin-import-sort": {
- "optional": true
- },
- "prettier-plugin-jsdoc": {
- "optional": true
- },
- "prettier-plugin-marko": {
- "optional": true
- },
- "prettier-plugin-organize-attributes": {
- "optional": true
- },
- "prettier-plugin-organize-imports": {
- "optional": true
- },
- "prettier-plugin-sort-imports": {
- "optional": true
- },
- "prettier-plugin-style-order": {
- "optional": true
- },
- "prettier-plugin-svelte": {
- "optional": true
- },
- "prettier-plugin-twig-melody": {
- "optional": true
- }
- }
- },
- "node_modules/pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/purgecss": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz",
- "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==",
- "dev": true,
- "dependencies": {
- "commander": "^9.0.0",
- "glob": "^8.0.3",
- "postcss": "^8.4.4",
- "postcss-selector-parser": "^6.0.7"
- },
- "bin": {
- "purgecss": "bin/purgecss.js"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/slash": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/sucrase/node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sucrase/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tailwind-bootstrap-grid": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/tailwind-bootstrap-grid/-/tailwind-bootstrap-grid-5.1.0.tgz",
- "integrity": "sha512-B++VQUxYyBdOV8M+LCGb1SJaESX/SqFZbbY9mOK5YNiVS2htR83m6RPOppWApSGPK19xSWxzFt/jPUXGfWCa7w==",
- "dev": true,
- "dependencies": {
- "joi": "^17.5.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "tailwindcss": "^3"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz",
- "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==",
- "dev": true,
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.5.3",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.0",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.19.1",
- "lilconfig": "^2.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.23",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.1",
- "postcss-nested": "^6.0.1",
- "postcss-selector-parser": "^6.0.11",
- "resolve": "^1.22.2",
- "sucrase": "^3.32.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tailwindcss/node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/tailwindcss/node_modules/lilconfig": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tailwindcss/node_modules/postcss-load-config": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
- "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/tailwindcss/node_modules/postcss-selector-parser": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
- "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/thenby": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz",
- "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==",
- "dev": true
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
- },
- "node_modules/ulid": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz",
- "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==",
- "dev": true,
- "bin": {
- "ulid": "bin/cli.js"
- }
- },
- "node_modules/unicorn-magic": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
- "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
- "dev": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yaml": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
- "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
- "dev": true,
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- }
- }
-}
diff --git a/website/node_modules/@alloc/quick-lru/index.d.ts b/website/node_modules/@alloc/quick-lru/index.d.ts
deleted file mode 100644
index eb819bad..00000000
--- a/website/node_modules/@alloc/quick-lru/index.d.ts
+++ /dev/null
@@ -1,128 +0,0 @@
-declare namespace QuickLRU {
- interface Options {
- /**
- The maximum number of milliseconds an item should remain in the cache.
-
- @default Infinity
-
- By default, `maxAge` will be `Infinity`, which means that items will never expire.
- Lazy expiration upon the next write or read call.
-
- Individual expiration of an item can be specified by the `set(key, value, maxAge)` method.
- */
- readonly maxAge?: number;
-
- /**
- The maximum number of items before evicting the least recently used items.
- */
- readonly maxSize: number;
-
- /**
- Called right before an item is evicted from the cache.
-
- Useful for side effects or for items like object URLs that need explicit cleanup (`revokeObjectURL`).
- */
- onEviction?: (key: KeyType, value: ValueType) => void;
- }
-}
-
-declare class QuickLRU
- implements Iterable<[KeyType, ValueType]> {
- /**
- The stored item count.
- */
- readonly size: number;
-
- /**
- Simple ["Least Recently Used" (LRU) cache](https://en.m.wikipedia.org/wiki/Cache_replacement_policies#Least_Recently_Used_.28LRU.29).
-
- The instance is [`iterable`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Iteration_protocols) so you can use it directly in a [`for…of`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) loop.
-
- @example
- ```
- import QuickLRU = require('quick-lru');
-
- const lru = new QuickLRU({maxSize: 1000});
-
- lru.set('🦄', '🌈');
-
- lru.has('🦄');
- //=> true
-
- lru.get('🦄');
- //=> '🌈'
- ```
- */
- constructor(options: QuickLRU.Options);
-
- [Symbol.iterator](): IterableIterator<[KeyType, ValueType]>;
-
- /**
- Set an item. Returns the instance.
-
- Individual expiration of an item can be specified with the `maxAge` option. If not specified, the global `maxAge` value will be used in case it is specified in the constructor, otherwise the item will never expire.
-
- @returns The list instance.
- */
- set(key: KeyType, value: ValueType, options?: {maxAge?: number}): this;
-
- /**
- Get an item.
-
- @returns The stored item or `undefined`.
- */
- get(key: KeyType): ValueType | undefined;
-
- /**
- Check if an item exists.
- */
- has(key: KeyType): boolean;
-
- /**
- Get an item without marking it as recently used.
-
- @returns The stored item or `undefined`.
- */
- peek(key: KeyType): ValueType | undefined;
-
- /**
- Delete an item.
-
- @returns `true` if the item is removed or `false` if the item doesn't exist.
- */
- delete(key: KeyType): boolean;
-
- /**
- Delete all items.
- */
- clear(): void;
-
- /**
- Update the `maxSize` in-place, discarding items as necessary. Insertion order is mostly preserved, though this is not a strong guarantee.
-
- Useful for on-the-fly tuning of cache sizes in live systems.
- */
- resize(maxSize: number): void;
-
- /**
- Iterable for all the keys.
- */
- keys(): IterableIterator;
-
- /**
- Iterable for all the values.
- */
- values(): IterableIterator;
-
- /**
- Iterable for all entries, starting with the oldest (ascending in recency).
- */
- entriesAscending(): IterableIterator<[KeyType, ValueType]>;
-
- /**
- Iterable for all entries, starting with the newest (descending in recency).
- */
- entriesDescending(): IterableIterator<[KeyType, ValueType]>;
-}
-
-export = QuickLRU;
diff --git a/website/node_modules/@alloc/quick-lru/index.js b/website/node_modules/@alloc/quick-lru/index.js
deleted file mode 100644
index 7eeced23..00000000
--- a/website/node_modules/@alloc/quick-lru/index.js
+++ /dev/null
@@ -1,263 +0,0 @@
-'use strict';
-
-class QuickLRU {
- constructor(options = {}) {
- if (!(options.maxSize && options.maxSize > 0)) {
- throw new TypeError('`maxSize` must be a number greater than 0');
- }
-
- if (typeof options.maxAge === 'number' && options.maxAge === 0) {
- throw new TypeError('`maxAge` must be a number greater than 0');
- }
-
- this.maxSize = options.maxSize;
- this.maxAge = options.maxAge || Infinity;
- this.onEviction = options.onEviction;
- this.cache = new Map();
- this.oldCache = new Map();
- this._size = 0;
- }
-
- _emitEvictions(cache) {
- if (typeof this.onEviction !== 'function') {
- return;
- }
-
- for (const [key, item] of cache) {
- this.onEviction(key, item.value);
- }
- }
-
- _deleteIfExpired(key, item) {
- if (typeof item.expiry === 'number' && item.expiry <= Date.now()) {
- if (typeof this.onEviction === 'function') {
- this.onEviction(key, item.value);
- }
-
- return this.delete(key);
- }
-
- return false;
- }
-
- _getOrDeleteIfExpired(key, item) {
- const deleted = this._deleteIfExpired(key, item);
- if (deleted === false) {
- return item.value;
- }
- }
-
- _getItemValue(key, item) {
- return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;
- }
-
- _peek(key, cache) {
- const item = cache.get(key);
-
- return this._getItemValue(key, item);
- }
-
- _set(key, value) {
- this.cache.set(key, value);
- this._size++;
-
- if (this._size >= this.maxSize) {
- this._size = 0;
- this._emitEvictions(this.oldCache);
- this.oldCache = this.cache;
- this.cache = new Map();
- }
- }
-
- _moveToRecent(key, item) {
- this.oldCache.delete(key);
- this._set(key, item);
- }
-
- * _entriesAscending() {
- for (const item of this.oldCache) {
- const [key, value] = item;
- if (!this.cache.has(key)) {
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield item;
- }
- }
- }
-
- for (const item of this.cache) {
- const [key, value] = item;
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield item;
- }
- }
- }
-
- get(key) {
- if (this.cache.has(key)) {
- const item = this.cache.get(key);
-
- return this._getItemValue(key, item);
- }
-
- if (this.oldCache.has(key)) {
- const item = this.oldCache.get(key);
- if (this._deleteIfExpired(key, item) === false) {
- this._moveToRecent(key, item);
- return item.value;
- }
- }
- }
-
- set(key, value, {maxAge = this.maxAge === Infinity ? undefined : Date.now() + this.maxAge} = {}) {
- if (this.cache.has(key)) {
- this.cache.set(key, {
- value,
- maxAge
- });
- } else {
- this._set(key, {value, expiry: maxAge});
- }
- }
-
- has(key) {
- if (this.cache.has(key)) {
- return !this._deleteIfExpired(key, this.cache.get(key));
- }
-
- if (this.oldCache.has(key)) {
- return !this._deleteIfExpired(key, this.oldCache.get(key));
- }
-
- return false;
- }
-
- peek(key) {
- if (this.cache.has(key)) {
- return this._peek(key, this.cache);
- }
-
- if (this.oldCache.has(key)) {
- return this._peek(key, this.oldCache);
- }
- }
-
- delete(key) {
- const deleted = this.cache.delete(key);
- if (deleted) {
- this._size--;
- }
-
- return this.oldCache.delete(key) || deleted;
- }
-
- clear() {
- this.cache.clear();
- this.oldCache.clear();
- this._size = 0;
- }
-
- resize(newSize) {
- if (!(newSize && newSize > 0)) {
- throw new TypeError('`maxSize` must be a number greater than 0');
- }
-
- const items = [...this._entriesAscending()];
- const removeCount = items.length - newSize;
- if (removeCount < 0) {
- this.cache = new Map(items);
- this.oldCache = new Map();
- this._size = items.length;
- } else {
- if (removeCount > 0) {
- this._emitEvictions(items.slice(0, removeCount));
- }
-
- this.oldCache = new Map(items.slice(removeCount));
- this.cache = new Map();
- this._size = 0;
- }
-
- this.maxSize = newSize;
- }
-
- * keys() {
- for (const [key] of this) {
- yield key;
- }
- }
-
- * values() {
- for (const [, value] of this) {
- yield value;
- }
- }
-
- * [Symbol.iterator]() {
- for (const item of this.cache) {
- const [key, value] = item;
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
-
- for (const item of this.oldCache) {
- const [key, value] = item;
- if (!this.cache.has(key)) {
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
- }
- }
-
- * entriesDescending() {
- let items = [...this.cache];
- for (let i = items.length - 1; i >= 0; --i) {
- const item = items[i];
- const [key, value] = item;
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
-
- items = [...this.oldCache];
- for (let i = items.length - 1; i >= 0; --i) {
- const item = items[i];
- const [key, value] = item;
- if (!this.cache.has(key)) {
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
- }
- }
-
- * entriesAscending() {
- for (const [key, value] of this._entriesAscending()) {
- yield [key, value.value];
- }
- }
-
- get size() {
- if (!this._size) {
- return this.oldCache.size;
- }
-
- let oldCacheSize = 0;
- for (const key of this.oldCache.keys()) {
- if (!this.cache.has(key)) {
- oldCacheSize++;
- }
- }
-
- return Math.min(this._size + oldCacheSize, this.maxSize);
- }
-}
-
-module.exports = QuickLRU;
diff --git a/website/node_modules/@alloc/quick-lru/license b/website/node_modules/@alloc/quick-lru/license
deleted file mode 100644
index e7af2f77..00000000
--- a/website/node_modules/@alloc/quick-lru/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@alloc/quick-lru/package.json b/website/node_modules/@alloc/quick-lru/package.json
deleted file mode 100644
index 21f10726..00000000
--- a/website/node_modules/@alloc/quick-lru/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "@alloc/quick-lru",
- "version": "5.2.0",
- "description": "Simple “Least Recently Used” (LRU) cache",
- "license": "MIT",
- "repository": "sindresorhus/quick-lru",
- "funding": "https://github.com/sponsors/sindresorhus",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "engines": {
- "node": ">=10"
- },
- "scripts": {
- "test": "xo && nyc ava && tsd"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "lru",
- "quick",
- "cache",
- "caching",
- "least",
- "recently",
- "used",
- "fast",
- "map",
- "hash",
- "buffer"
- ],
- "devDependencies": {
- "ava": "^2.0.0",
- "coveralls": "^3.0.3",
- "nyc": "^15.0.0",
- "tsd": "^0.11.0",
- "xo": "^0.26.0"
- }
-}
diff --git a/website/node_modules/@alloc/quick-lru/readme.md b/website/node_modules/@alloc/quick-lru/readme.md
deleted file mode 100644
index 7187ba59..00000000
--- a/website/node_modules/@alloc/quick-lru/readme.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# quick-lru [![Build Status](https://travis-ci.org/sindresorhus/quick-lru.svg?branch=master)](https://travis-ci.org/sindresorhus/quick-lru) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/quick-lru/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/quick-lru?branch=master)
-
-> Simple [“Least Recently Used” (LRU) cache](https://en.m.wikipedia.org/wiki/Cache_replacement_policies#Least_Recently_Used_.28LRU.29)
-
-Useful when you need to cache something and limit memory usage.
-
-Inspired by the [`hashlru` algorithm](https://github.com/dominictarr/hashlru#algorithm), but instead uses [`Map`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Map) to support keys of any type, not just strings, and values can be `undefined`.
-
-## Install
-
-```
-$ npm install quick-lru
-```
-
-## Usage
-
-```js
-const QuickLRU = require('quick-lru');
-
-const lru = new QuickLRU({maxSize: 1000});
-
-lru.set('🦄', '🌈');
-
-lru.has('🦄');
-//=> true
-
-lru.get('🦄');
-//=> '🌈'
-```
-
-## API
-
-### new QuickLRU(options?)
-
-Returns a new instance.
-
-### options
-
-Type: `object`
-
-#### maxSize
-
-*Required*\
-Type: `number`
-
-The maximum number of items before evicting the least recently used items.
-
-#### maxAge
-
-Type: `number`\
-Default: `Infinity`
-
-The maximum number of milliseconds an item should remain in cache.
-By default maxAge will be Infinity, which means that items will never expire.
-
-Lazy expiration happens upon the next `write` or `read` call.
-
-Individual expiration of an item can be specified by the `set(key, value, options)` method.
-
-#### onEviction
-
-*Optional*\
-Type: `(key, value) => void`
-
-Called right before an item is evicted from the cache.
-
-Useful for side effects or for items like object URLs that need explicit cleanup (`revokeObjectURL`).
-
-### Instance
-
-The instance is [`iterable`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Iteration_protocols) so you can use it directly in a [`for…of`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) loop.
-
-Both `key` and `value` can be of any type.
-
-#### .set(key, value, options?)
-
-Set an item. Returns the instance.
-
-Individual expiration of an item can be specified with the `maxAge` option. If not specified, the global `maxAge` value will be used in case it is specified on the constructor, otherwise the item will never expire.
-
-#### .get(key)
-
-Get an item.
-
-#### .has(key)
-
-Check if an item exists.
-
-#### .peek(key)
-
-Get an item without marking it as recently used.
-
-#### .delete(key)
-
-Delete an item.
-
-Returns `true` if the item is removed or `false` if the item doesn't exist.
-
-#### .clear()
-
-Delete all items.
-
-#### .resize(maxSize)
-
-Update the `maxSize`, discarding items as necessary. Insertion order is mostly preserved, though this is not a strong guarantee.
-
-Useful for on-the-fly tuning of cache sizes in live systems.
-
-#### .keys()
-
-Iterable for all the keys.
-
-#### .values()
-
-Iterable for all the values.
-
-#### .entriesAscending()
-
-Iterable for all entries, starting with the oldest (ascending in recency).
-
-#### .entriesDescending()
-
-Iterable for all entries, starting with the newest (descending in recency).
-
-#### .size
-
-The stored item count.
-
----
-
-
diff --git a/website/node_modules/@fullhuman/postcss-purgecss/README.md b/website/node_modules/@fullhuman/postcss-purgecss/README.md
deleted file mode 100644
index 75de58e4..00000000
--- a/website/node_modules/@fullhuman/postcss-purgecss/README.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# PostCSS Purgecss
-![David (path)](https://img.shields.io/david/FullHuman/purgecss?path=packages%2Fpostcss-purgecss&style=for-the-badge)
-![Dependabot](https://img.shields.io/badge/dependabot-enabled-%23024ea4?style=for-the-badge)
-![npm](https://img.shields.io/npm/v/@fullhuman/postcss-purgecss?style=for-the-badge)
-![npm](https://img.shields.io/npm/dw/@fullhuman/postcss-purgecss?style=for-the-badge)
-![GitHub](https://img.shields.io/github/license/FullHuman/purgecss?style=for-the-badge)
-
-[PostCSS] plugin for PurgeCSS.
-
-[PostCSS]: https://github.com/postcss/postcss
-
-## Installation
-
-```
-npm i -D @fullhuman/postcss-purgecss postcss
-```
-
-## Usage
-
-```js
-const purgecss = require('@fullhuman/postcss-purgecss')
-postcss([
- purgecss({
- content: ['./src/**/*.html']
- })
-])
-```
-
-See [PostCSS] docs for examples for your environment.
-
-## Options
-
-All of the options of purgecss are available to use with the plugins.
-You will find below the main options available. For the complete list, go to the [purgecss documentation website](https://www.purgecss.com/configuration.html#options).
-
-### `content` (**required** or use `contentFunction` instead)
-Type: `Array`
-
-You can specify content that should be analyzed by Purgecss with an array of filenames or globs. The files can be HTML, Pug, Blade, etc.
-
-### `contentFunction` (as alternative to `content`)
-Type: `(sourceInputFile: string) => Array`
-
-The function receives the current source input file. With this you may provide a specific array of globs for each input. E.g. for
-an angular application only scan the components template counterpart for every component scss file:
-
-```js
-purgecss({
- contentFunction: (sourceInputFileName: string) => {
- if (/component\.scss$/.test(sourceInputFileName))
- return [sourceInputFileName.replace(/scss$/, 'html')]
- else
- return ['./src/**/*.html']
- },
-})
-```
-
-### `extractors`
-Type: `Array`
-
-Purgecss can be adapted to suit your needs. If you notice a lot of unused CSS is not being removed, you might want to use a custom extractor.
-More information about extractors [here](https://www.purgecss.com/extractors.html).
-
-### `safelist`
-
-You can indicate which selectors are safe to leave in the final CSS. This can be accomplished with the option `safelist`.
-
-Two forms are available for this option.
-
-```ts
-safelist: ['random', 'yep', 'button', /^nav-/]
-```
-
-In this form, safelist is an array that can take a string or a regex.
-
-The _complex_ form is:
-
-```ts
-safelist: {
- standard: ['random', 'yep', 'button', /^nav-/],
- deep: [],
- greedy: [],
- keyframes: [],
- variables: []
-}
-```
-
-### `blocklist`
-
-Blocklist will block the CSS selectors from appearing in the final output CSS. The selectors will be removed even when they are seen as used by PurgeCSS.
-
-```ts
-blocklist: ['usedClass', /^nav-/]
-```
-Even if nav-links and usedClass are found by an extractor, they will be removed.
-
-### `skippedContentGlobs`
-
-If you provide globs for the `content` parameter, you can use this option to exclude certain files or folders that would otherwise be scanned. Pass an array of globs matching items that should be excluded. (Note: this option has no effect if `content` is not globs.)
-
-```ts
-skippedContentGlobs: ['node_modules/**', 'components/**']
-```
-Here, PurgeCSS will not scan anything in the "node_modules" and "components" folders.
-
-
-### `rejected`
-Type: `boolean`
-Default value: `false`
-
-If true, purged selectors will be captured and rendered as PostCSS messages.
-Use with a PostCSS reporter plugin like [`postcss-reporter`](https://github.com/postcss/postcss-reporter)
-to print the purged selectors to the console as they are processed.
-
-### `keyframes`
-Type: `boolean`
-Default value: `false`
-
-If you are using a CSS animation library such as animate.css, you can remove unused keyframes by setting the keyframes option to true.
-
-#### `fontFace`
-Type: `boolean`
-Default value: `false`
-
-If there are any unused @font-face rules in your css, you can remove them by setting the fontFace option to true.
-
-## Contributing
-
-Please read [CONTRIBUTING.md](./../../CONTRIBUTING.md) for details on our code of
-conduct, and the process for submitting pull requests to us.
-
-## Versioning
-
-postcss-purgecss use [SemVer](http://semver.org/) for versioning.
-
-## License
-
-This project is licensed under the MIT License - see the [LICENSE](./../../LICENSE) file
-for details.
diff --git a/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.d.ts b/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.d.ts
deleted file mode 100644
index beafa9f9..00000000
--- a/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.d.ts
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * PostCSS Plugin for PurgeCSS
- *
- * Most bundlers and frameworks to build websites are using PostCSS.
- * The easiest way to configure PurgeCSS is with its PostCSS plugin.
- *
- * @packageDocumentation
- */
-
-import * as postcss from 'postcss';
-
-/**
- * @public
- */
-declare type ComplexSafelist = {
- standard?: StringRegExpArray;
- /**
- * You can safelist selectors and their children based on a regular
- * expression with `safelist.deep`
- *
- * @example
- *
- * ```ts
- * const purgecss = await new PurgeCSS().purge({
- * content: [],
- * css: [],
- * safelist: {
- * deep: [/red$/]
- * }
- * })
- * ```
- *
- * In this example, selectors such as `.bg-red .child-of-bg` will be left
- * in the final CSS, even if `child-of-bg` is not found.
- *
- */
- deep?: RegExp[];
- greedy?: RegExp[];
- variables?: StringRegExpArray;
- keyframes?: StringRegExpArray;
-};
-
-/**
- * @public
- */
-declare type ExtractorFunction = (content: T) => ExtractorResult;
-
-/**
- * @public
- */
-declare type ExtractorResult = ExtractorResultDetailed | string[];
-
-/**
- * @public
- */
-declare interface ExtractorResultDetailed {
- attributes: {
- names: string[];
- values: string[];
- };
- classes: string[];
- ids: string[];
- tags: string[];
- undetermined: string[];
-}
-
-/**
- * @public
- */
-declare interface Extractors {
- extensions: string[];
- extractor: ExtractorFunction;
-}
-
-/**
- * PostCSS Plugin for PurgeCSS
- *
- * @param opts - PurgeCSS Options
- * @returns the postCSS plugin
- *
- * @public
- */
-declare const purgeCSSPlugin: postcss.PluginCreator;
-export default purgeCSSPlugin;
-
-/**
- * @public
- */
-declare interface RawContent {
- extension: string;
- raw: T;
-}
-
-/**
- * @public
- */
-declare interface RawCSS {
- raw: string;
- name?: string;
-}
-
-/**
- * @public
- */
-declare type StringRegExpArray = Array;
-
-/**
- * {@inheritDoc purgecss#UserDefinedOptions}
- *
- * @public
- */
-export declare interface UserDefinedOptions extends Omit {
- content?: UserDefinedOptions_2["content"];
- contentFunction?: (sourceFile: string) => Array;
-}
-
-/**
- * Options used by PurgeCSS to remove unused CSS
- *
- * @public
- */
-declare interface UserDefinedOptions_2 {
- /** {@inheritDoc Options.content} */
- content: Array;
- /** {@inheritDoc Options.css} */
- css: Array;
- /** {@inheritDoc Options.defaultExtractor} */
- defaultExtractor?: ExtractorFunction;
- /** {@inheritDoc Options.extractors} */
- extractors?: Array;
- /** {@inheritDoc Options.fontFace} */
- fontFace?: boolean;
- /** {@inheritDoc Options.keyframes} */
- keyframes?: boolean;
- /** {@inheritDoc Options.output} */
- output?: string;
- /** {@inheritDoc Options.rejected} */
- rejected?: boolean;
- /** {@inheritDoc Options.rejectedCss} */
- rejectedCss?: boolean;
- /** {@inheritDoc Options.sourceMap } */
- sourceMap?: boolean | (postcss.SourceMapOptions & { to?: string });
- /** {@inheritDoc Options.stdin} */
- stdin?: boolean;
- /** {@inheritDoc Options.stdout} */
- stdout?: boolean;
- /** {@inheritDoc Options.variables} */
- variables?: boolean;
- /** {@inheritDoc Options.safelist} */
- safelist?: UserDefinedSafelist;
- /** {@inheritDoc Options.blocklist} */
- blocklist?: StringRegExpArray;
- /** {@inheritDoc Options.skippedContentGlobs} */
- skippedContentGlobs?: Array;
- /** {@inheritDoc Options.dynamicAttributes} */
- dynamicAttributes?: string[];
-}
-
-/**
- * @public
- */
-declare type UserDefinedSafelist = StringRegExpArray | ComplexSafelist;
-
-export { }
diff --git a/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.esm.js b/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.esm.js
deleted file mode 100644
index 6e811fd5..00000000
--- a/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.esm.js
+++ /dev/null
@@ -1 +0,0 @@
-import*as e from"path";import{PurgeCSS as s,defaultOptions as t,standardizeSafelist as o,mergeExtractorSelectors as r}from"purgecss";const n=function(n){if(void 0===n)throw new Error("PurgeCSS plugin does not have the correct options");return{postcssPlugin:"postcss-purgecss",OnceExit:(c,i)=>async function(n,c,{result:i}){const a=new s;let l;try{const s=e.resolve(process.cwd(),"purgecss.config.js");l=await import(s)}catch{}const p={...t,...l,...n,safelist:o((null==n?void 0:n.safelist)||(null==l?void 0:l.safelist))};n&&"function"==typeof n.contentFunction&&(p.content=n.contentFunction(c.source&&c.source.input.file||"")),a.options=p,p.variables&&(a.variablesStructure.safelist=p.safelist.variables||[]);const{content:u,extractors:f}=p,m=u.filter((e=>"string"==typeof e)),g=u.filter((e=>"object"==typeof e)),v=await a.extractSelectorsFromFiles(m,f),d=await a.extractSelectorsFromString(g,f),S=r(v,d);a.walkThroughCSS(c,S),a.options.fontFace&&a.removeUnusedFontFaces(),a.options.keyframes&&a.removeUnusedKeyframes(),a.options.variables&&a.removeUnusedCSSVariables(),a.options.rejected&&a.selectorsRemoved.size>0&&(i.messages.push({type:"purgecss",plugin:"postcss-purgecss",text:`purging ${a.selectorsRemoved.size} selectors:\n ${Array.from(a.selectorsRemoved).map((e=>e.trim())).join("\n ")}`}),a.selectorsRemoved.clear())}(n,c,i)}};n.postcss=!0;export{n as default};
diff --git a/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.js b/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.js
deleted file mode 100644
index b981fa74..00000000
--- a/website/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";var e=require("path"),t=require("purgecss");function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(e);const o=function(e){if(void 0===e)throw new Error("PurgeCSS plugin does not have the correct options");return{postcssPlugin:"postcss-purgecss",OnceExit:(o,n)=>async function(e,o,{result:n}){const c=new t.PurgeCSS;let i;try{const e=s.resolve(process.cwd(),"purgecss.config.js");i=await function(e){return Promise.resolve().then((function(){return r(require(e))}))}(e)}catch{}const a={...t.defaultOptions,...i,...e,safelist:t.standardizeSafelist((null==e?void 0:e.safelist)||(null==i?void 0:i.safelist))};e&&"function"==typeof e.contentFunction&&(a.content=e.contentFunction(o.source&&o.source.input.file||"")),c.options=a,a.variables&&(c.variablesStructure.safelist=a.safelist.variables||[]);const{content:u,extractors:l}=a,f=u.filter((e=>"string"==typeof e)),p=u.filter((e=>"object"==typeof e)),d=await c.extractSelectorsFromFiles(f,l),g=await c.extractSelectorsFromString(p,l),v=t.mergeExtractorSelectors(d,g);c.walkThroughCSS(o,v),c.options.fontFace&&c.removeUnusedFontFaces(),c.options.keyframes&&c.removeUnusedKeyframes(),c.options.variables&&c.removeUnusedCSSVariables(),c.options.rejected&&c.selectorsRemoved.size>0&&(n.messages.push({type:"purgecss",plugin:"postcss-purgecss",text:`purging ${c.selectorsRemoved.size} selectors:\n ${Array.from(c.selectorsRemoved).map((e=>e.trim())).join("\n ")}`}),c.selectorsRemoved.clear())}(e,o,n)}};o.postcss=!0,module.exports=o;
diff --git a/website/node_modules/@fullhuman/postcss-purgecss/package.json b/website/node_modules/@fullhuman/postcss-purgecss/package.json
deleted file mode 100644
index 4d28162e..00000000
--- a/website/node_modules/@fullhuman/postcss-purgecss/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "@fullhuman/postcss-purgecss",
- "version": "5.0.0",
- "description": "PostCSS plugin for PurgeCSS",
- "author": "FoundrySH ",
- "homepage": "https://purgecss.com",
- "license": "MIT",
- "main": "lib/postcss-purgecss.js",
- "module": "lib/postcss-purgecss.esm.js",
- "types": "lib/postcss-purgecss.d.ts",
- "directories": {
- "lib": "lib",
- "test": "__tests__"
- },
- "files": [
- "lib"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/FullHuman/purgecss.git"
- },
- "scripts": {
- "build": "ts-node build.ts",
- "test": "jest"
- },
- "bugs": {
- "url": "https://github.com/FullHuman/purgecss/issues"
- },
- "dependencies": {
- "purgecss": "^5.0.0"
- },
- "devDependencies": {
- "postcss": "^8.4.4"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- },
- "publishConfig": {
- "access": "public",
- "registry": "https://registry.npmjs.org/"
- }
-}
diff --git a/website/node_modules/@hapi/hoek/LICENSE.md b/website/node_modules/@hapi/hoek/LICENSE.md
deleted file mode 100755
index 0c95a4c7..00000000
--- a/website/node_modules/@hapi/hoek/LICENSE.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Copyright (c) 2011-2020, Sideway Inc, and project contributors
-Copyright (c) 2011-2014, Walmart
-Copyright (c) 2011, Yahoo Inc.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-* The names of any contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/website/node_modules/@hapi/hoek/README.md b/website/node_modules/@hapi/hoek/README.md
deleted file mode 100755
index 8771dbfd..00000000
--- a/website/node_modules/@hapi/hoek/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-# @hapi/hoek
-
-#### Utility methods for the hapi ecosystem.
-
-**hoek** is part of the **hapi** ecosystem and was designed to work seamlessly with the [hapi web framework](https://hapi.dev) and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out [hapi](https://hapi.dev) – they work even better together.
-
-This module is not intended to solve every problem for everyone, but rather as a central place to store hapi-specific methods. If you're looking for a general purpose utility module, check out [lodash](https://github.com/lodash/lodash).
-
-### Visit the [hapi.dev](https://hapi.dev) Developer Portal for tutorials, documentation, and support
-
-## Useful resources
-
-- [Documentation and API](https://hapi.dev/family/hoek/)
-- [Version status](https://hapi.dev/resources/status/#hoek) (builds, dependencies, node versions, licenses, eol)
-- [Changelog](https://hapi.dev/family/hoek/changelog/)
-- [Project policies](https://hapi.dev/policies/)
-- [Free and commercial support options](https://hapi.dev/support/)
diff --git a/website/node_modules/@hapi/hoek/lib/applyToDefaults.js b/website/node_modules/@hapi/hoek/lib/applyToDefaults.js
deleted file mode 100755
index 9881247b..00000000
--- a/website/node_modules/@hapi/hoek/lib/applyToDefaults.js
+++ /dev/null
@@ -1,102 +0,0 @@
-'use strict';
-
-const Assert = require('./assert');
-const Clone = require('./clone');
-const Merge = require('./merge');
-const Reach = require('./reach');
-
-
-const internals = {};
-
-
-module.exports = function (defaults, source, options = {}) {
-
- Assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object');
- Assert(!source || source === true || typeof source === 'object', 'Invalid source value: must be true, falsy or an object');
- Assert(typeof options === 'object', 'Invalid options: must be an object');
-
- if (!source) { // If no source, return null
- return null;
- }
-
- if (options.shallow) {
- return internals.applyToDefaultsWithShallow(defaults, source, options);
- }
-
- const copy = Clone(defaults);
-
- if (source === true) { // If source is set to true, use defaults
- return copy;
- }
-
- const nullOverride = options.nullOverride !== undefined ? options.nullOverride : false;
- return Merge(copy, source, { nullOverride, mergeArrays: false });
-};
-
-
-internals.applyToDefaultsWithShallow = function (defaults, source, options) {
-
- const keys = options.shallow;
- Assert(Array.isArray(keys), 'Invalid keys');
-
- const seen = new Map();
- const merge = source === true ? null : new Set();
-
- for (let key of keys) {
- key = Array.isArray(key) ? key : key.split('.'); // Pre-split optimization
-
- const ref = Reach(defaults, key);
- if (ref &&
- typeof ref === 'object') {
-
- seen.set(ref, merge && Reach(source, key) || ref);
- }
- else if (merge) {
- merge.add(key);
- }
- }
-
- const copy = Clone(defaults, {}, seen);
-
- if (!merge) {
- return copy;
- }
-
- for (const key of merge) {
- internals.reachCopy(copy, source, key);
- }
-
- const nullOverride = options.nullOverride !== undefined ? options.nullOverride : false;
- return Merge(copy, source, { nullOverride, mergeArrays: false });
-};
-
-
-internals.reachCopy = function (dst, src, path) {
-
- for (const segment of path) {
- if (!(segment in src)) {
- return;
- }
-
- const val = src[segment];
-
- if (typeof val !== 'object' || val === null) {
- return;
- }
-
- src = val;
- }
-
- const value = src;
- let ref = dst;
- for (let i = 0; i < path.length - 1; ++i) {
- const segment = path[i];
- if (typeof ref[segment] !== 'object') {
- ref[segment] = {};
- }
-
- ref = ref[segment];
- }
-
- ref[path[path.length - 1]] = value;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/assert.js b/website/node_modules/@hapi/hoek/lib/assert.js
deleted file mode 100755
index 6ed635a2..00000000
--- a/website/node_modules/@hapi/hoek/lib/assert.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-const AssertError = require('./error');
-
-
-const internals = {};
-
-
-module.exports = function (condition, ...args) {
-
- if (condition) {
- return;
- }
-
- if (args.length === 1 &&
- args[0] instanceof Error) {
-
- throw args[0];
- }
-
- throw new AssertError(args);
-};
diff --git a/website/node_modules/@hapi/hoek/lib/bench.js b/website/node_modules/@hapi/hoek/lib/bench.js
deleted file mode 100755
index 26ee1962..00000000
--- a/website/node_modules/@hapi/hoek/lib/bench.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = internals.Bench = class {
-
- constructor() {
-
- this.ts = 0;
- this.reset();
- }
-
- reset() {
-
- this.ts = internals.Bench.now();
- }
-
- elapsed() {
-
- return internals.Bench.now() - this.ts;
- }
-
- static now() {
-
- const ts = process.hrtime();
- return (ts[0] * 1e3) + (ts[1] / 1e6);
- }
-};
diff --git a/website/node_modules/@hapi/hoek/lib/block.js b/website/node_modules/@hapi/hoek/lib/block.js
deleted file mode 100755
index 73fb9a53..00000000
--- a/website/node_modules/@hapi/hoek/lib/block.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-const Ignore = require('./ignore');
-
-
-const internals = {};
-
-
-module.exports = function () {
-
- return new Promise(Ignore);
-};
diff --git a/website/node_modules/@hapi/hoek/lib/clone.js b/website/node_modules/@hapi/hoek/lib/clone.js
deleted file mode 100755
index e64defb8..00000000
--- a/website/node_modules/@hapi/hoek/lib/clone.js
+++ /dev/null
@@ -1,176 +0,0 @@
-'use strict';
-
-const Reach = require('./reach');
-const Types = require('./types');
-const Utils = require('./utils');
-
-
-const internals = {
- needsProtoHack: new Set([Types.set, Types.map, Types.weakSet, Types.weakMap])
-};
-
-
-module.exports = internals.clone = function (obj, options = {}, _seen = null) {
-
- if (typeof obj !== 'object' ||
- obj === null) {
-
- return obj;
- }
-
- let clone = internals.clone;
- let seen = _seen;
-
- if (options.shallow) {
- if (options.shallow !== true) {
- return internals.cloneWithShallow(obj, options);
- }
-
- clone = (value) => value;
- }
- else if (seen) {
- const lookup = seen.get(obj);
- if (lookup) {
- return lookup;
- }
- }
- else {
- seen = new Map();
- }
-
- // Built-in object types
-
- const baseProto = Types.getInternalProto(obj);
- if (baseProto === Types.buffer) {
- return Buffer && Buffer.from(obj); // $lab:coverage:ignore$
- }
-
- if (baseProto === Types.date) {
- return new Date(obj.getTime());
- }
-
- if (baseProto === Types.regex) {
- return new RegExp(obj);
- }
-
- // Generic objects
-
- const newObj = internals.base(obj, baseProto, options);
- if (newObj === obj) {
- return obj;
- }
-
- if (seen) {
- seen.set(obj, newObj); // Set seen, since obj could recurse
- }
-
- if (baseProto === Types.set) {
- for (const value of obj) {
- newObj.add(clone(value, options, seen));
- }
- }
- else if (baseProto === Types.map) {
- for (const [key, value] of obj) {
- newObj.set(key, clone(value, options, seen));
- }
- }
-
- const keys = Utils.keys(obj, options);
- for (const key of keys) {
- if (key === '__proto__') {
- continue;
- }
-
- if (baseProto === Types.array &&
- key === 'length') {
-
- newObj.length = obj.length;
- continue;
- }
-
- const descriptor = Object.getOwnPropertyDescriptor(obj, key);
- if (descriptor) {
- if (descriptor.get ||
- descriptor.set) {
-
- Object.defineProperty(newObj, key, descriptor);
- }
- else if (descriptor.enumerable) {
- newObj[key] = clone(obj[key], options, seen);
- }
- else {
- Object.defineProperty(newObj, key, { enumerable: false, writable: true, configurable: true, value: clone(obj[key], options, seen) });
- }
- }
- else {
- Object.defineProperty(newObj, key, {
- enumerable: true,
- writable: true,
- configurable: true,
- value: clone(obj[key], options, seen)
- });
- }
- }
-
- return newObj;
-};
-
-
-internals.cloneWithShallow = function (source, options) {
-
- const keys = options.shallow;
- options = Object.assign({}, options);
- options.shallow = false;
-
- const seen = new Map();
-
- for (const key of keys) {
- const ref = Reach(source, key);
- if (typeof ref === 'object' ||
- typeof ref === 'function') {
-
- seen.set(ref, ref);
- }
- }
-
- return internals.clone(source, options, seen);
-};
-
-
-internals.base = function (obj, baseProto, options) {
-
- if (options.prototype === false) { // Defaults to true
- if (internals.needsProtoHack.has(baseProto)) {
- return new baseProto.constructor();
- }
-
- return baseProto === Types.array ? [] : {};
- }
-
- const proto = Object.getPrototypeOf(obj);
- if (proto &&
- proto.isImmutable) {
-
- return obj;
- }
-
- if (baseProto === Types.array) {
- const newObj = [];
- if (proto !== baseProto) {
- Object.setPrototypeOf(newObj, proto);
- }
-
- return newObj;
- }
-
- if (internals.needsProtoHack.has(baseProto)) {
- const newObj = new proto.constructor();
- if (proto !== baseProto) {
- Object.setPrototypeOf(newObj, proto);
- }
-
- return newObj;
- }
-
- return Object.create(proto);
-};
diff --git a/website/node_modules/@hapi/hoek/lib/contain.js b/website/node_modules/@hapi/hoek/lib/contain.js
deleted file mode 100755
index 162ea3e8..00000000
--- a/website/node_modules/@hapi/hoek/lib/contain.js
+++ /dev/null
@@ -1,307 +0,0 @@
-'use strict';
-
-const Assert = require('./assert');
-const DeepEqual = require('./deepEqual');
-const EscapeRegex = require('./escapeRegex');
-const Utils = require('./utils');
-
-
-const internals = {};
-
-
-module.exports = function (ref, values, options = {}) { // options: { deep, once, only, part, symbols }
-
- /*
- string -> string(s)
- array -> item(s)
- object -> key(s)
- object -> object (key:value)
- */
-
- if (typeof values !== 'object') {
- values = [values];
- }
-
- Assert(!Array.isArray(values) || values.length, 'Values array cannot be empty');
-
- // String
-
- if (typeof ref === 'string') {
- return internals.string(ref, values, options);
- }
-
- // Array
-
- if (Array.isArray(ref)) {
- return internals.array(ref, values, options);
- }
-
- // Object
-
- Assert(typeof ref === 'object', 'Reference must be string or an object');
- return internals.object(ref, values, options);
-};
-
-
-internals.array = function (ref, values, options) {
-
- if (!Array.isArray(values)) {
- values = [values];
- }
-
- if (!ref.length) {
- return false;
- }
-
- if (options.only &&
- options.once &&
- ref.length !== values.length) {
-
- return false;
- }
-
- let compare;
-
- // Map values
-
- const map = new Map();
- for (const value of values) {
- if (!options.deep ||
- !value ||
- typeof value !== 'object') {
-
- const existing = map.get(value);
- if (existing) {
- ++existing.allowed;
- }
- else {
- map.set(value, { allowed: 1, hits: 0 });
- }
- }
- else {
- compare = compare || internals.compare(options);
-
- let found = false;
- for (const [key, existing] of map.entries()) {
- if (compare(key, value)) {
- ++existing.allowed;
- found = true;
- break;
- }
- }
-
- if (!found) {
- map.set(value, { allowed: 1, hits: 0 });
- }
- }
- }
-
- // Lookup values
-
- let hits = 0;
- for (const item of ref) {
- let match;
- if (!options.deep ||
- !item ||
- typeof item !== 'object') {
-
- match = map.get(item);
- }
- else {
- compare = compare || internals.compare(options);
-
- for (const [key, existing] of map.entries()) {
- if (compare(key, item)) {
- match = existing;
- break;
- }
- }
- }
-
- if (match) {
- ++match.hits;
- ++hits;
-
- if (options.once &&
- match.hits > match.allowed) {
-
- return false;
- }
- }
- }
-
- // Validate results
-
- if (options.only &&
- hits !== ref.length) {
-
- return false;
- }
-
- for (const match of map.values()) {
- if (match.hits === match.allowed) {
- continue;
- }
-
- if (match.hits < match.allowed &&
- !options.part) {
-
- return false;
- }
- }
-
- return !!hits;
-};
-
-
-internals.object = function (ref, values, options) {
-
- Assert(options.once === undefined, 'Cannot use option once with object');
-
- const keys = Utils.keys(ref, options);
- if (!keys.length) {
- return false;
- }
-
- // Keys list
-
- if (Array.isArray(values)) {
- return internals.array(keys, values, options);
- }
-
- // Key value pairs
-
- const symbols = Object.getOwnPropertySymbols(values).filter((sym) => values.propertyIsEnumerable(sym));
- const targets = [...Object.keys(values), ...symbols];
-
- const compare = internals.compare(options);
- const set = new Set(targets);
-
- for (const key of keys) {
- if (!set.has(key)) {
- if (options.only) {
- return false;
- }
-
- continue;
- }
-
- if (!compare(values[key], ref[key])) {
- return false;
- }
-
- set.delete(key);
- }
-
- if (set.size) {
- return options.part ? set.size < targets.length : false;
- }
-
- return true;
-};
-
-
-internals.string = function (ref, values, options) {
-
- // Empty string
-
- if (ref === '') {
- return values.length === 1 && values[0] === '' || // '' contains ''
- !options.once && !values.some((v) => v !== ''); // '' contains multiple '' if !once
- }
-
- // Map values
-
- const map = new Map();
- const patterns = [];
-
- for (const value of values) {
- Assert(typeof value === 'string', 'Cannot compare string reference to non-string value');
-
- if (value) {
- const existing = map.get(value);
- if (existing) {
- ++existing.allowed;
- }
- else {
- map.set(value, { allowed: 1, hits: 0 });
- patterns.push(EscapeRegex(value));
- }
- }
- else if (options.once ||
- options.only) {
-
- return false;
- }
- }
-
- if (!patterns.length) { // Non-empty string contains unlimited empty string
- return true;
- }
-
- // Match patterns
-
- const regex = new RegExp(`(${patterns.join('|')})`, 'g');
- const leftovers = ref.replace(regex, ($0, $1) => {
-
- ++map.get($1).hits;
- return ''; // Remove from string
- });
-
- // Validate results
-
- if (options.only &&
- leftovers) {
-
- return false;
- }
-
- let any = false;
- for (const match of map.values()) {
- if (match.hits) {
- any = true;
- }
-
- if (match.hits === match.allowed) {
- continue;
- }
-
- if (match.hits < match.allowed &&
- !options.part) {
-
- return false;
- }
-
- // match.hits > match.allowed
-
- if (options.once) {
- return false;
- }
- }
-
- return !!any;
-};
-
-
-internals.compare = function (options) {
-
- if (!options.deep) {
- return internals.shallow;
- }
-
- const hasOnly = options.only !== undefined;
- const hasPart = options.part !== undefined;
-
- const flags = {
- prototype: hasOnly ? options.only : hasPart ? !options.part : false,
- part: hasOnly ? !options.only : hasPart ? options.part : false
- };
-
- return (a, b) => DeepEqual(a, b, flags);
-};
-
-
-internals.shallow = function (a, b) {
-
- return a === b;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/deepEqual.js b/website/node_modules/@hapi/hoek/lib/deepEqual.js
deleted file mode 100755
index a82647be..00000000
--- a/website/node_modules/@hapi/hoek/lib/deepEqual.js
+++ /dev/null
@@ -1,317 +0,0 @@
-'use strict';
-
-const Types = require('./types');
-
-
-const internals = {
- mismatched: null
-};
-
-
-module.exports = function (obj, ref, options) {
-
- options = Object.assign({ prototype: true }, options);
-
- return !!internals.isDeepEqual(obj, ref, options, []);
-};
-
-
-internals.isDeepEqual = function (obj, ref, options, seen) {
-
- if (obj === ref) { // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql
- return obj !== 0 || 1 / obj === 1 / ref;
- }
-
- const type = typeof obj;
-
- if (type !== typeof ref) {
- return false;
- }
-
- if (obj === null ||
- ref === null) {
-
- return false;
- }
-
- if (type === 'function') {
- if (!options.deepFunction ||
- obj.toString() !== ref.toString()) {
-
- return false;
- }
-
- // Continue as object
- }
- else if (type !== 'object') {
- return obj !== obj && ref !== ref; // NaN
- }
-
- const instanceType = internals.getSharedType(obj, ref, !!options.prototype);
- switch (instanceType) {
- case Types.buffer:
- return Buffer && Buffer.prototype.equals.call(obj, ref); // $lab:coverage:ignore$
- case Types.promise:
- return obj === ref;
- case Types.regex:
- return obj.toString() === ref.toString();
- case internals.mismatched:
- return false;
- }
-
- for (let i = seen.length - 1; i >= 0; --i) {
- if (seen[i].isSame(obj, ref)) {
- return true; // If previous comparison failed, it would have stopped execution
- }
- }
-
- seen.push(new internals.SeenEntry(obj, ref));
-
- try {
- return !!internals.isDeepEqualObj(instanceType, obj, ref, options, seen);
- }
- finally {
- seen.pop();
- }
-};
-
-
-internals.getSharedType = function (obj, ref, checkPrototype) {
-
- if (checkPrototype) {
- if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) {
- return internals.mismatched;
- }
-
- return Types.getInternalProto(obj);
- }
-
- const type = Types.getInternalProto(obj);
- if (type !== Types.getInternalProto(ref)) {
- return internals.mismatched;
- }
-
- return type;
-};
-
-
-internals.valueOf = function (obj) {
-
- const objValueOf = obj.valueOf;
- if (objValueOf === undefined) {
- return obj;
- }
-
- try {
- return objValueOf.call(obj);
- }
- catch (err) {
- return err;
- }
-};
-
-
-internals.hasOwnEnumerableProperty = function (obj, key) {
-
- return Object.prototype.propertyIsEnumerable.call(obj, key);
-};
-
-
-internals.isSetSimpleEqual = function (obj, ref) {
-
- for (const entry of Set.prototype.values.call(obj)) {
- if (!Set.prototype.has.call(ref, entry)) {
- return false;
- }
- }
-
- return true;
-};
-
-
-internals.isDeepEqualObj = function (instanceType, obj, ref, options, seen) {
-
- const { isDeepEqual, valueOf, hasOwnEnumerableProperty } = internals;
- const { keys, getOwnPropertySymbols } = Object;
-
- if (instanceType === Types.array) {
- if (options.part) {
-
- // Check if any index match any other index
-
- for (const objValue of obj) {
- for (const refValue of ref) {
- if (isDeepEqual(objValue, refValue, options, seen)) {
- return true;
- }
- }
- }
- }
- else {
- if (obj.length !== ref.length) {
- return false;
- }
-
- for (let i = 0; i < obj.length; ++i) {
- if (!isDeepEqual(obj[i], ref[i], options, seen)) {
- return false;
- }
- }
-
- return true;
- }
- }
- else if (instanceType === Types.set) {
- if (obj.size !== ref.size) {
- return false;
- }
-
- if (!internals.isSetSimpleEqual(obj, ref)) {
-
- // Check for deep equality
-
- const ref2 = new Set(Set.prototype.values.call(ref));
- for (const objEntry of Set.prototype.values.call(obj)) {
- if (ref2.delete(objEntry)) {
- continue;
- }
-
- let found = false;
- for (const refEntry of ref2) {
- if (isDeepEqual(objEntry, refEntry, options, seen)) {
- ref2.delete(refEntry);
- found = true;
- break;
- }
- }
-
- if (!found) {
- return false;
- }
- }
- }
- }
- else if (instanceType === Types.map) {
- if (obj.size !== ref.size) {
- return false;
- }
-
- for (const [key, value] of Map.prototype.entries.call(obj)) {
- if (value === undefined && !Map.prototype.has.call(ref, key)) {
- return false;
- }
-
- if (!isDeepEqual(value, Map.prototype.get.call(ref, key), options, seen)) {
- return false;
- }
- }
- }
- else if (instanceType === Types.error) {
-
- // Always check name and message
-
- if (obj.name !== ref.name ||
- obj.message !== ref.message) {
-
- return false;
- }
- }
-
- // Check .valueOf()
-
- const valueOfObj = valueOf(obj);
- const valueOfRef = valueOf(ref);
- if ((obj !== valueOfObj || ref !== valueOfRef) &&
- !isDeepEqual(valueOfObj, valueOfRef, options, seen)) {
-
- return false;
- }
-
- // Check properties
-
- const objKeys = keys(obj);
- if (!options.part &&
- objKeys.length !== keys(ref).length &&
- !options.skip) {
-
- return false;
- }
-
- let skipped = 0;
- for (const key of objKeys) {
- if (options.skip &&
- options.skip.includes(key)) {
-
- if (ref[key] === undefined) {
- ++skipped;
- }
-
- continue;
- }
-
- if (!hasOwnEnumerableProperty(ref, key)) {
- return false;
- }
-
- if (!isDeepEqual(obj[key], ref[key], options, seen)) {
- return false;
- }
- }
-
- if (!options.part &&
- objKeys.length - skipped !== keys(ref).length) {
-
- return false;
- }
-
- // Check symbols
-
- if (options.symbols !== false) { // Defaults to true
- const objSymbols = getOwnPropertySymbols(obj);
- const refSymbols = new Set(getOwnPropertySymbols(ref));
-
- for (const key of objSymbols) {
- if (!options.skip ||
- !options.skip.includes(key)) {
-
- if (hasOwnEnumerableProperty(obj, key)) {
- if (!hasOwnEnumerableProperty(ref, key)) {
- return false;
- }
-
- if (!isDeepEqual(obj[key], ref[key], options, seen)) {
- return false;
- }
- }
- else if (hasOwnEnumerableProperty(ref, key)) {
- return false;
- }
- }
-
- refSymbols.delete(key);
- }
-
- for (const key of refSymbols) {
- if (hasOwnEnumerableProperty(ref, key)) {
- return false;
- }
- }
- }
-
- return true;
-};
-
-
-internals.SeenEntry = class {
-
- constructor(obj, ref) {
-
- this.obj = obj;
- this.ref = ref;
- }
-
- isSame(obj, ref) {
-
- return this.obj === obj && this.ref === ref;
- }
-};
diff --git a/website/node_modules/@hapi/hoek/lib/error.js b/website/node_modules/@hapi/hoek/lib/error.js
deleted file mode 100755
index 9fc4f5df..00000000
--- a/website/node_modules/@hapi/hoek/lib/error.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-const Stringify = require('./stringify');
-
-
-const internals = {};
-
-
-module.exports = class extends Error {
-
- constructor(args) {
-
- const msgs = args
- .filter((arg) => arg !== '')
- .map((arg) => {
-
- return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : Stringify(arg);
- });
-
- super(msgs.join(' ') || 'Unknown error');
-
- if (typeof Error.captureStackTrace === 'function') { // $lab:coverage:ignore$
- Error.captureStackTrace(this, exports.assert);
- }
- }
-};
diff --git a/website/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js b/website/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js
deleted file mode 100755
index a0a4deea..00000000
--- a/website/node_modules/@hapi/hoek/lib/escapeHeaderAttribute.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-const Assert = require('./assert');
-
-
-const internals = {};
-
-
-module.exports = function (attribute) {
-
- // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \, "
-
- Assert(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')');
-
- return attribute.replace(/\\/g, '\\\\').replace(/\"/g, '\\"'); // Escape quotes and slash
-};
diff --git a/website/node_modules/@hapi/hoek/lib/escapeHtml.js b/website/node_modules/@hapi/hoek/lib/escapeHtml.js
deleted file mode 100755
index c2dd4436..00000000
--- a/website/node_modules/@hapi/hoek/lib/escapeHtml.js
+++ /dev/null
@@ -1,87 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function (input) {
-
- if (!input) {
- return '';
- }
-
- let escaped = '';
-
- for (let i = 0; i < input.length; ++i) {
-
- const charCode = input.charCodeAt(i);
-
- if (internals.isSafe(charCode)) {
- escaped += input[i];
- }
- else {
- escaped += internals.escapeHtmlChar(charCode);
- }
- }
-
- return escaped;
-};
-
-
-internals.escapeHtmlChar = function (charCode) {
-
- const namedEscape = internals.namedHtml.get(charCode);
- if (namedEscape) {
- return namedEscape;
- }
-
- if (charCode >= 256) {
- return '' + charCode + ';';
- }
-
- const hexValue = charCode.toString(16).padStart(2, '0');
- return `${hexValue};`;
-};
-
-
-internals.isSafe = function (charCode) {
-
- return internals.safeCharCodes.has(charCode);
-};
-
-
-internals.namedHtml = new Map([
- [38, '&'],
- [60, '<'],
- [62, '>'],
- [34, '"'],
- [160, ' '],
- [162, '¢'],
- [163, '£'],
- [164, '¤'],
- [169, '©'],
- [174, '®']
-]);
-
-
-internals.safeCharCodes = (function () {
-
- const safe = new Set();
-
- for (let i = 32; i < 123; ++i) {
-
- if ((i >= 97) || // a-z
- (i >= 65 && i <= 90) || // A-Z
- (i >= 48 && i <= 57) || // 0-9
- i === 32 || // space
- i === 46 || // .
- i === 44 || // ,
- i === 45 || // -
- i === 58 || // :
- i === 95) { // _
-
- safe.add(i);
- }
- }
-
- return safe;
-}());
diff --git a/website/node_modules/@hapi/hoek/lib/escapeJson.js b/website/node_modules/@hapi/hoek/lib/escapeJson.js
deleted file mode 100755
index 243edfb9..00000000
--- a/website/node_modules/@hapi/hoek/lib/escapeJson.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function (input) {
-
- if (!input) {
- return '';
- }
-
- return input.replace(/[<>&\u2028\u2029]/g, internals.escape);
-};
-
-
-internals.escape = function (char) {
-
- return internals.replacements.get(char);
-};
-
-
-internals.replacements = new Map([
- ['<', '\\u003c'],
- ['>', '\\u003e'],
- ['&', '\\u0026'],
- ['\u2028', '\\u2028'],
- ['\u2029', '\\u2029']
-]);
diff --git a/website/node_modules/@hapi/hoek/lib/escapeRegex.js b/website/node_modules/@hapi/hoek/lib/escapeRegex.js
deleted file mode 100755
index 3272497e..00000000
--- a/website/node_modules/@hapi/hoek/lib/escapeRegex.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function (string) {
-
- // Escape ^$.*+-?=!:|\/()[]{},
-
- return string.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g, '\\$&');
-};
diff --git a/website/node_modules/@hapi/hoek/lib/flatten.js b/website/node_modules/@hapi/hoek/lib/flatten.js
deleted file mode 100755
index a5ea622a..00000000
--- a/website/node_modules/@hapi/hoek/lib/flatten.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = internals.flatten = function (array, target) {
-
- const result = target || [];
-
- for (const entry of array) {
- if (Array.isArray(entry)) {
- internals.flatten(entry, result);
- }
- else {
- result.push(entry);
- }
- }
-
- return result;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/ignore.js b/website/node_modules/@hapi/hoek/lib/ignore.js
deleted file mode 100755
index 21ad1443..00000000
--- a/website/node_modules/@hapi/hoek/lib/ignore.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function () { };
diff --git a/website/node_modules/@hapi/hoek/lib/index.d.ts b/website/node_modules/@hapi/hoek/lib/index.d.ts
deleted file mode 100755
index e9bcdc28..00000000
--- a/website/node_modules/@hapi/hoek/lib/index.d.ts
+++ /dev/null
@@ -1,471 +0,0 @@
-///
-
-
-/**
- * Performs a deep comparison of the two values including support for circular dependencies, prototype, and enumerable properties.
- *
- * @param obj - The value being compared.
- * @param ref - The reference value used for comparison.
- *
- * @return true when the two values are equal, otherwise false.
- */
-export function deepEqual(obj: any, ref: any, options?: deepEqual.Options): boolean;
-
-export namespace deepEqual {
-
- interface Options {
-
- /**
- * Compare functions with difference references by comparing their internal code and properties.
- *
- * @default false
- */
- readonly deepFunction?: boolean;
-
- /**
- * Allow partial match.
- *
- * @default false
- */
- readonly part?: boolean;
-
- /**
- * Compare the objects' prototypes.
- *
- * @default true
- */
- readonly prototype?: boolean;
-
- /**
- * List of object keys to ignore different values of.
- *
- * @default null
- */
- readonly skip?: (string | symbol)[];
-
- /**
- * Compare symbol properties.
- *
- * @default true
- */
- readonly symbols?: boolean;
- }
-}
-
-
-/**
- * Clone any value, object, or array.
- *
- * @param obj - The value being cloned.
- * @param options - Optional settings.
- *
- * @returns A deep clone of `obj`.
- */
-export function clone(obj: T, options?: clone.Options): T;
-
-export namespace clone {
-
- interface Options {
-
- /**
- * Clone the object's prototype.
- *
- * @default true
- */
- readonly prototype?: boolean;
-
- /**
- * Include symbol properties.
- *
- * @default true
- */
- readonly symbols?: boolean;
-
- /**
- * Shallow clone the specified keys.
- *
- * @default undefined
- */
- readonly shallow?: string[] | string[][] | boolean;
- }
-}
-
-
-/**
- * Merge all the properties of source into target.
- *
- * @param target - The object being modified.
- * @param source - The object used to copy properties from.
- * @param options - Optional settings.
- *
- * @returns The `target` object.
- */
-export function merge(target: T1, source: T2, options?: merge.Options): T1 & T2;
-
-export namespace merge {
-
- interface Options {
-
- /**
- * When true, null value from `source` overrides existing value in `target`.
- *
- * @default true
- */
- readonly nullOverride?: boolean;
-
- /**
- * When true, array value from `source` is merged with the existing value in `target`.
- *
- * @default false
- */
- readonly mergeArrays?: boolean;
-
- /**
- * Compare symbol properties.
- *
- * @default true
- */
- readonly symbols?: boolean;
- }
-}
-
-
-/**
- * Apply source to a copy of the defaults.
- *
- * @param defaults - An object with the default values to use of `options` does not contain the same keys.
- * @param source - The source used to override the `defaults`.
- * @param options - Optional settings.
- *
- * @returns A copy of `defaults` with `source` keys overriding any conflicts.
- */
-export function applyToDefaults(defaults: Partial, source: Partial | boolean | null, options?: applyToDefaults.Options): Partial;
-
-export namespace applyToDefaults {
-
- interface Options {
-
- /**
- * When true, null value from `source` overrides existing value in `target`.
- *
- * @default true
- */
- readonly nullOverride?: boolean;
-
- /**
- * Shallow clone the specified keys.
- *
- * @default undefined
- */
- readonly shallow?: string[] | string[][];
- }
-}
-
-
-/**
- * Find the common unique items in two arrays.
- *
- * @param array1 - The first array to compare.
- * @param array2 - The second array to compare.
- * @param options - Optional settings.
- *
- * @return - An array of the common items. If `justFirst` is true, returns the first common item.
- */
-export function intersect(array1: intersect.Array, array2: intersect.Array, options?: intersect.Options): Array;
-export function intersect(array1: intersect.Array, array2: intersect.Array, options?: intersect.Options): T1 | T2;
-
-export namespace intersect {
-
- type Array = ArrayLike | Set | null;
-
- interface Options {
-
- /**
- * When true, return the first overlapping value.
- *
- * @default false
- */
- readonly first?: boolean;
- }
-}
-
-
-/**
- * Checks if the reference value contains the provided values.
- *
- * @param ref - The reference string, array, or object.
- * @param values - A single or array of values to find within `ref`. If `ref` is an object, `values` can be a key name, an array of key names, or an object with key-value pairs to compare.
- *
- * @return true if the value contains the provided values, otherwise false.
- */
-export function contain(ref: string, values: string | string[], options?: contain.Options): boolean;
-export function contain(ref: any[], values: any, options?: contain.Options): boolean;
-export function contain(ref: object, values: string | string[] | object, options?: Omit): boolean;
-
-export namespace contain {
-
- interface Options {
-
- /**
- * Perform a deep comparison.
- *
- * @default false
- */
- readonly deep?: boolean;
-
- /**
- * Allow only one occurrence of each value.
- *
- * @default false
- */
- readonly once?: boolean;
-
- /**
- * Allow only values explicitly listed.
- *
- * @default false
- */
- readonly only?: boolean;
-
- /**
- * Allow partial match.
- *
- * @default false
- */
- readonly part?: boolean;
-
- /**
- * Include symbol properties.
- *
- * @default true
- */
- readonly symbols?: boolean;
- }
-}
-
-
-/**
- * Flatten an array with sub arrays
- *
- * @param array - an array of items or other arrays to flatten.
- * @param target - if provided, an array to shallow copy the flattened `array` items to
- *
- * @return a flat array of the provided values (appended to `target` is provided).
- */
-export function flatten(array: ArrayLike>, target?: ArrayLike>): T[];
-
-
-/**
- * Convert an object key chain string to reference.
- *
- * @param obj - the object from which to look up the value.
- * @param chain - the string path of the requested value. The chain string is split into key names using `options.separator`, or an array containing each individual key name. A chain including negative numbers will work like a negative index on an array.
- *
- * @return The value referenced by the chain if found, otherwise undefined. If chain is null, undefined, or false, the object itself will be returned.
- */
-export function reach(obj: object | null, chain: string | (string | number)[] | false | null | undefined, options?: reach.Options): any;
-
-export namespace reach {
-
- interface Options {
-
- /**
- * String to split chain path on. Defaults to '.'.
- *
- * @default false
- */
- readonly separator?: string;
-
- /**
- * Value to return if the path or value is not present. No default value.
- *
- * @default false
- */
- readonly default?: any;
-
- /**
- * If true, will throw an error on missing member in the chain. Default to false.
- *
- * @default false
- */
- readonly strict?: boolean;
-
- /**
- * If true, allows traversing functions for properties. false will throw an error if a function is part of the chain.
- *
- * @default true
- */
- readonly functions?: boolean;
-
- /**
- * If true, allows traversing Set and Map objects for properties. false will return undefined regardless of the Set or Map passed.
- *
- * @default false
- */
- readonly iterables?: boolean;
- }
-}
-
-
-/**
- * Replace string parameters (using format "{path.to.key}") with their corresponding object key values using `Hoek.reach()`.
- *
- * @param obj - the object from which to look up the value.
- * @param template - the string containing {} enclosed key paths to be replaced.
- *
- * @return The template string with the {} enclosed keys replaced with looked-up values.
- */
-export function reachTemplate(obj: object | null, template: string, options?: reach.Options): string;
-
-
-/**
- * Throw an error if condition is falsy.
- *
- * @param condition - If `condition` is not truthy, an exception is thrown.
- * @param error - The error thrown if the condition fails.
- *
- * @return Does not return a value but throws if the `condition` is falsy.
- */
-export function assert(condition: any, error: Error): void;
-
-
-/**
- * Throw an error if condition is falsy.
- *
- * @param condition - If `condition` is not truthy, an exception is thrown.
- * @param args - Any number of values, concatenated together (space separated) to create the error message.
- *
- * @return Does not return a value but throws if the `condition` is falsy.
- */
-export function assert(condition: any, ...args: any): void;
-
-
-/**
- * A benchmarking timer, using the internal node clock for maximum accuracy.
- */
-export class Bench {
-
- constructor();
-
- /** The starting timestamp expressed in the number of milliseconds since the epoch. */
- ts: number;
-
- /** The time in milliseconds since the object was created. */
- elapsed(): number;
-
- /** Reset the `ts` value to now. */
- reset(): void;
-
- /** The current time in milliseconds since the epoch. */
- static now(): number;
-}
-
-
-/**
- * Escape string for Regex construction by prefixing all reserved characters with a backslash.
- *
- * @param string - The string to be escaped.
- *
- * @return The escaped string.
- */
-export function escapeRegex(string: string): string;
-
-
-/**
- * Escape string for usage as an attribute value in HTTP headers.
- *
- * @param attribute - The string to be escaped.
- *
- * @return The escaped string. Will throw on invalid characters that are not supported to be escaped.
- */
-export function escapeHeaderAttribute(attribute: string): string;
-
-
-/**
- * Escape string for usage in HTML.
- *
- * @param string - The string to be escaped.
- *
- * @return The escaped string.
- */
-export function escapeHtml(string: string): string;
-
-
-/**
- * Escape string for usage in JSON.
- *
- * @param string - The string to be escaped.
- *
- * @return The escaped string.
- */
-export function escapeJson(string: string): string;
-
-
-/**
- * Wraps a function to ensure it can only execute once.
- *
- * @param method - The function to be wrapped.
- *
- * @return The wrapped function.
- */
-export function once(method: T): T;
-
-
-/**
- * A reusable no-op function.
- */
-export function ignore(...ignore: any): void;
-
-
-/**
- * Converts a JavaScript value to a JavaScript Object Notation (JSON) string with protection against thrown errors.
- *
- * @param value A JavaScript value, usually an object or array, to be converted.
- * @param replacer The JSON.stringify() `replacer` argument.
- * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
- *
- * @return The JSON string. If the operation fails, an error string value is returned (no exception thrown).
- */
-export function stringify(value: any, replacer?: any, space?: string | number): string;
-
-
-/**
- * Returns a Promise that resolves after the requested timeout.
- *
- * @param timeout - The number of milliseconds to wait before resolving the Promise.
- * @param returnValue - The value that the Promise will resolve to.
- *
- * @return A Promise that resolves with `returnValue`.
- */
-export function wait(timeout?: number, returnValue?: T): Promise;
-
-
-/**
- * Returns a Promise that never resolves.
- */
-export function block(): Promise;
-
-
-/**
- * Determines if an object is a promise.
- *
- * @param promise - the object tested.
- *
- * @returns true if the object is a promise, otherwise false.
- */
-export function isPromise(promise: any): boolean;
-
-
-export namespace ts {
-
- /**
- * Defines a type that can must be one of T or U but not both.
- */
- type XOR = (T | U) extends object ? (internals.Without & U) | (internals.Without & T) : T | U;
-}
-
-
-declare namespace internals {
-
- type Without = { [P in Exclude]?: never };
-}
diff --git a/website/node_modules/@hapi/hoek/lib/index.js b/website/node_modules/@hapi/hoek/lib/index.js
deleted file mode 100755
index 2062f180..00000000
--- a/website/node_modules/@hapi/hoek/lib/index.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-exports.applyToDefaults = require('./applyToDefaults');
-
-exports.assert = require('./assert');
-
-exports.Bench = require('./bench');
-
-exports.block = require('./block');
-
-exports.clone = require('./clone');
-
-exports.contain = require('./contain');
-
-exports.deepEqual = require('./deepEqual');
-
-exports.Error = require('./error');
-
-exports.escapeHeaderAttribute = require('./escapeHeaderAttribute');
-
-exports.escapeHtml = require('./escapeHtml');
-
-exports.escapeJson = require('./escapeJson');
-
-exports.escapeRegex = require('./escapeRegex');
-
-exports.flatten = require('./flatten');
-
-exports.ignore = require('./ignore');
-
-exports.intersect = require('./intersect');
-
-exports.isPromise = require('./isPromise');
-
-exports.merge = require('./merge');
-
-exports.once = require('./once');
-
-exports.reach = require('./reach');
-
-exports.reachTemplate = require('./reachTemplate');
-
-exports.stringify = require('./stringify');
-
-exports.wait = require('./wait');
diff --git a/website/node_modules/@hapi/hoek/lib/intersect.js b/website/node_modules/@hapi/hoek/lib/intersect.js
deleted file mode 100755
index 59e6aaf1..00000000
--- a/website/node_modules/@hapi/hoek/lib/intersect.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function (array1, array2, options = {}) {
-
- if (!array1 ||
- !array2) {
-
- return (options.first ? null : []);
- }
-
- const common = [];
- const hash = (Array.isArray(array1) ? new Set(array1) : array1);
- const found = new Set();
- for (const value of array2) {
- if (internals.has(hash, value) &&
- !found.has(value)) {
-
- if (options.first) {
- return value;
- }
-
- common.push(value);
- found.add(value);
- }
- }
-
- return (options.first ? null : common);
-};
-
-
-internals.has = function (ref, key) {
-
- if (typeof ref.has === 'function') {
- return ref.has(key);
- }
-
- return ref[key] !== undefined;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/isPromise.js b/website/node_modules/@hapi/hoek/lib/isPromise.js
deleted file mode 100755
index 40298040..00000000
--- a/website/node_modules/@hapi/hoek/lib/isPromise.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function (promise) {
-
- return !!promise && typeof promise.then === 'function';
-};
diff --git a/website/node_modules/@hapi/hoek/lib/merge.js b/website/node_modules/@hapi/hoek/lib/merge.js
deleted file mode 100755
index 47a1e1e9..00000000
--- a/website/node_modules/@hapi/hoek/lib/merge.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-
-const Assert = require('./assert');
-const Clone = require('./clone');
-const Utils = require('./utils');
-
-
-const internals = {};
-
-
-module.exports = internals.merge = function (target, source, options) {
-
- Assert(target && typeof target === 'object', 'Invalid target value: must be an object');
- Assert(source === null || source === undefined || typeof source === 'object', 'Invalid source value: must be null, undefined, or an object');
-
- if (!source) {
- return target;
- }
-
- options = Object.assign({ nullOverride: true, mergeArrays: true }, options);
-
- if (Array.isArray(source)) {
- Assert(Array.isArray(target), 'Cannot merge array onto an object');
- if (!options.mergeArrays) {
- target.length = 0; // Must not change target assignment
- }
-
- for (let i = 0; i < source.length; ++i) {
- target.push(Clone(source[i], { symbols: options.symbols }));
- }
-
- return target;
- }
-
- const keys = Utils.keys(source, options);
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- if (key === '__proto__' ||
- !Object.prototype.propertyIsEnumerable.call(source, key)) {
-
- continue;
- }
-
- const value = source[key];
- if (value &&
- typeof value === 'object') {
-
- if (target[key] === value) {
- continue; // Can occur for shallow merges
- }
-
- if (!target[key] ||
- typeof target[key] !== 'object' ||
- (Array.isArray(target[key]) !== Array.isArray(value)) ||
- value instanceof Date ||
- (Buffer && Buffer.isBuffer(value)) || // $lab:coverage:ignore$
- value instanceof RegExp) {
-
- target[key] = Clone(value, { symbols: options.symbols });
- }
- else {
- internals.merge(target[key], value, options);
- }
- }
- else {
- if (value !== null &&
- value !== undefined) { // Explicit to preserve empty strings
-
- target[key] = value;
- }
- else if (options.nullOverride) {
- target[key] = value;
- }
- }
- }
-
- return target;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/once.js b/website/node_modules/@hapi/hoek/lib/once.js
deleted file mode 100755
index c825767e..00000000
--- a/website/node_modules/@hapi/hoek/lib/once.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-const internals = {
- wrapped: Symbol('wrapped')
-};
-
-
-module.exports = function (method) {
-
- if (method[internals.wrapped]) {
- return method;
- }
-
- let once = false;
- const wrappedFn = function (...args) {
-
- if (!once) {
- once = true;
- method(...args);
- }
- };
-
- wrappedFn[internals.wrapped] = true;
- return wrappedFn;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/reach.js b/website/node_modules/@hapi/hoek/lib/reach.js
deleted file mode 100755
index 53b7c24e..00000000
--- a/website/node_modules/@hapi/hoek/lib/reach.js
+++ /dev/null
@@ -1,76 +0,0 @@
-'use strict';
-
-const Assert = require('./assert');
-
-
-const internals = {};
-
-
-module.exports = function (obj, chain, options) {
-
- if (chain === false ||
- chain === null ||
- chain === undefined) {
-
- return obj;
- }
-
- options = options || {};
- if (typeof options === 'string') {
- options = { separator: options };
- }
-
- const isChainArray = Array.isArray(chain);
-
- Assert(!isChainArray || !options.separator, 'Separator option is not valid for array-based chain');
-
- const path = isChainArray ? chain : chain.split(options.separator || '.');
- let ref = obj;
- for (let i = 0; i < path.length; ++i) {
- let key = path[i];
- const type = options.iterables && internals.iterables(ref);
-
- if (Array.isArray(ref) ||
- type === 'set') {
-
- const number = Number(key);
- if (Number.isInteger(number)) {
- key = number < 0 ? ref.length + number : number;
- }
- }
-
- if (!ref ||
- typeof ref === 'function' && options.functions === false || // Defaults to true
- !type && ref[key] === undefined) {
-
- Assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);
- Assert(typeof ref === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);
- ref = options.default;
- break;
- }
-
- if (!type) {
- ref = ref[key];
- }
- else if (type === 'set') {
- ref = [...ref][key];
- }
- else { // type === 'map'
- ref = ref.get(key);
- }
- }
-
- return ref;
-};
-
-
-internals.iterables = function (ref) {
-
- if (ref instanceof Set) {
- return 'set';
- }
-
- if (ref instanceof Map) {
- return 'map';
- }
-};
diff --git a/website/node_modules/@hapi/hoek/lib/reachTemplate.js b/website/node_modules/@hapi/hoek/lib/reachTemplate.js
deleted file mode 100755
index e382d50c..00000000
--- a/website/node_modules/@hapi/hoek/lib/reachTemplate.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-const Reach = require('./reach');
-
-
-const internals = {};
-
-
-module.exports = function (obj, template, options) {
-
- return template.replace(/{([^{}]+)}/g, ($0, chain) => {
-
- const value = Reach(obj, chain, options);
- return (value === undefined || value === null ? '' : value);
- });
-};
diff --git a/website/node_modules/@hapi/hoek/lib/stringify.js b/website/node_modules/@hapi/hoek/lib/stringify.js
deleted file mode 100755
index 82152cf2..00000000
--- a/website/node_modules/@hapi/hoek/lib/stringify.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-module.exports = function (...args) {
-
- try {
- return JSON.stringify(...args);
- }
- catch (err) {
- return '[Cannot display object: ' + err.message + ']';
- }
-};
diff --git a/website/node_modules/@hapi/hoek/lib/types.js b/website/node_modules/@hapi/hoek/lib/types.js
deleted file mode 100755
index c291b657..00000000
--- a/website/node_modules/@hapi/hoek/lib/types.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-exports = module.exports = {
- array: Array.prototype,
- buffer: Buffer && Buffer.prototype, // $lab:coverage:ignore$
- date: Date.prototype,
- error: Error.prototype,
- generic: Object.prototype,
- map: Map.prototype,
- promise: Promise.prototype,
- regex: RegExp.prototype,
- set: Set.prototype,
- weakMap: WeakMap.prototype,
- weakSet: WeakSet.prototype
-};
-
-
-internals.typeMap = new Map([
- ['[object Error]', exports.error],
- ['[object Map]', exports.map],
- ['[object Promise]', exports.promise],
- ['[object Set]', exports.set],
- ['[object WeakMap]', exports.weakMap],
- ['[object WeakSet]', exports.weakSet]
-]);
-
-
-exports.getInternalProto = function (obj) {
-
- if (Array.isArray(obj)) {
- return exports.array;
- }
-
- if (Buffer && obj instanceof Buffer) { // $lab:coverage:ignore$
- return exports.buffer;
- }
-
- if (obj instanceof Date) {
- return exports.date;
- }
-
- if (obj instanceof RegExp) {
- return exports.regex;
- }
-
- if (obj instanceof Error) {
- return exports.error;
- }
-
- const objName = Object.prototype.toString.call(obj);
- return internals.typeMap.get(objName) || exports.generic;
-};
diff --git a/website/node_modules/@hapi/hoek/lib/utils.js b/website/node_modules/@hapi/hoek/lib/utils.js
deleted file mode 100755
index bab1e8c4..00000000
--- a/website/node_modules/@hapi/hoek/lib/utils.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-exports.keys = function (obj, options = {}) {
-
- return options.symbols !== false ? Reflect.ownKeys(obj) : Object.getOwnPropertyNames(obj); // Defaults to true
-};
diff --git a/website/node_modules/@hapi/hoek/lib/wait.js b/website/node_modules/@hapi/hoek/lib/wait.js
deleted file mode 100755
index 28d344cf..00000000
--- a/website/node_modules/@hapi/hoek/lib/wait.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-const internals = {
- maxTimer: 2 ** 31 - 1 // ~25 days
-};
-
-
-module.exports = function (timeout, returnValue, options) {
-
- if (typeof timeout === 'bigint') {
- timeout = Number(timeout);
- }
-
- if (timeout >= Number.MAX_SAFE_INTEGER) { // Thousands of years
- timeout = Infinity;
- }
-
- if (typeof timeout !== 'number' && timeout !== undefined) {
- throw new TypeError('Timeout must be a number or bigint');
- }
-
- return new Promise((resolve) => {
-
- const _setTimeout = options ? options.setTimeout : setTimeout;
-
- const activate = () => {
-
- const time = Math.min(timeout, internals.maxTimer);
- timeout -= time;
- _setTimeout(() => (timeout > 0 ? activate() : resolve(returnValue)), time);
- };
-
- if (timeout !== Infinity) {
- activate();
- }
- });
-};
diff --git a/website/node_modules/@hapi/hoek/package.json b/website/node_modules/@hapi/hoek/package.json
deleted file mode 100755
index ce0a2326..00000000
--- a/website/node_modules/@hapi/hoek/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "@hapi/hoek",
- "description": "General purpose node utilities",
- "version": "9.3.0",
- "repository": "git://github.com/hapijs/hoek",
- "main": "lib/index.js",
- "types": "lib/index.d.ts",
- "keywords": [
- "utilities"
- ],
- "files": [
- "lib"
- ],
- "eslintConfig": {
- "extends": [
- "plugin:@hapi/module"
- ]
- },
- "dependencies": {},
- "devDependencies": {
- "@hapi/code": "8.x.x",
- "@hapi/eslint-plugin": "*",
- "@hapi/lab": "^24.0.0",
- "typescript": "~4.0.2"
- },
- "scripts": {
- "test": "lab -a @hapi/code -t 100 -L -Y",
- "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html"
- },
- "license": "BSD-3-Clause"
-}
diff --git a/website/node_modules/@hapi/topo/LICENSE.md b/website/node_modules/@hapi/topo/LICENSE.md
deleted file mode 100755
index 0d96bf8f..00000000
--- a/website/node_modules/@hapi/topo/LICENSE.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Copyright (c) 2012-2020, Sideway Inc, and project contributors
-Copyright (c) 2012-2014, Walmart.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-* The names of any contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/website/node_modules/@hapi/topo/README.md b/website/node_modules/@hapi/topo/README.md
deleted file mode 100755
index 118bacba..00000000
--- a/website/node_modules/@hapi/topo/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-# @hapi/topo
-
-#### Topological sorting with grouping support.
-
-**topo** is part of the **hapi** ecosystem and was designed to work seamlessly with the [hapi web framework](https://hapi.dev) and its other components (but works great on its own or with other frameworks). If you are using a different web framework and find this module useful, check out [hapi](https://hapi.dev) – they work even better together.
-
-### Visit the [hapi.dev](https://hapi.dev) Developer Portal for tutorials, documentation, and support
-
-## Useful resources
-
-- [Documentation and API](https://hapi.dev/family/topo/)
-- [Version status](https://hapi.dev/resources/status/#topo) (builds, dependencies, node versions, licenses, eol)
-- [Changelog](https://hapi.dev/family/topo/changelog/)
-- [Project policies](https://hapi.dev/policies/)
-- [Free and commercial support options](https://hapi.dev/support/)
diff --git a/website/node_modules/@hapi/topo/lib/index.d.ts b/website/node_modules/@hapi/topo/lib/index.d.ts
deleted file mode 100755
index e3367bef..00000000
--- a/website/node_modules/@hapi/topo/lib/index.d.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-export class Sorter {
-
- /**
- * An array of the topologically sorted nodes. This list is renewed upon each call to topo.add().
- */
- nodes: T[];
-
- /**
- * Adds a node or list of nodes to be added and topologically sorted
- *
- * @param nodes - A mixed value or array of mixed values to be added as nodes to the topologically sorted list.
- * @param options - Optional sorting information about the nodes.
- *
- * @returns Returns an array of the topologically sorted nodes.
- */
- add(nodes: T | T[], options?: Options): T[];
-
- /**
- * Merges another Sorter object into the current object.
- *
- * @param others - The other object or array of objects to be merged into the current one.
- *
- * @returns Returns an array of the topologically sorted nodes.
- */
- merge(others: Sorter | Sorter[]): T[];
-
- /**
- * Sorts the nodes array (only required if the manual option is used when adding items)
- */
- sort(): T[];
-}
-
-
-export interface Options {
-
- /**
- * The sorting group the added items belong to
- */
- readonly group?: string;
-
- /**
- * The group or groups the added items must come before
- */
- readonly before?: string | string[];
-
- /**
- * The group or groups the added items must come after
- */
- readonly after?: string | string[];
-
- /**
- * A number used to sort items with equal before/after requirements
- */
- readonly sort?: number;
-
- /**
- * If true, the array is not sorted automatically until sort() is called
- */
- readonly manual?: boolean;
-}
diff --git a/website/node_modules/@hapi/topo/lib/index.js b/website/node_modules/@hapi/topo/lib/index.js
deleted file mode 100755
index 48c19dd2..00000000
--- a/website/node_modules/@hapi/topo/lib/index.js
+++ /dev/null
@@ -1,225 +0,0 @@
-'use strict';
-
-const Assert = require('@hapi/hoek/lib/assert');
-
-
-const internals = {};
-
-
-exports.Sorter = class {
-
- constructor() {
-
- this._items = [];
- this.nodes = [];
- }
-
- add(nodes, options) {
-
- options = options || {};
-
- // Validate rules
-
- const before = [].concat(options.before || []);
- const after = [].concat(options.after || []);
- const group = options.group || '?';
- const sort = options.sort || 0; // Used for merging only
-
- Assert(!before.includes(group), `Item cannot come before itself: ${group}`);
- Assert(!before.includes('?'), 'Item cannot come before unassociated items');
- Assert(!after.includes(group), `Item cannot come after itself: ${group}`);
- Assert(!after.includes('?'), 'Item cannot come after unassociated items');
-
- if (!Array.isArray(nodes)) {
- nodes = [nodes];
- }
-
- for (const node of nodes) {
- const item = {
- seq: this._items.length,
- sort,
- before,
- after,
- group,
- node
- };
-
- this._items.push(item);
- }
-
- // Insert event
-
- if (!options.manual) {
- const valid = this._sort();
- Assert(valid, 'item', group !== '?' ? `added into group ${group}` : '', 'created a dependencies error');
- }
-
- return this.nodes;
- }
-
- merge(others) {
-
- if (!Array.isArray(others)) {
- others = [others];
- }
-
- for (const other of others) {
- if (other) {
- for (const item of other._items) {
- this._items.push(Object.assign({}, item)); // Shallow cloned
- }
- }
- }
-
- // Sort items
-
- this._items.sort(internals.mergeSort);
- for (let i = 0; i < this._items.length; ++i) {
- this._items[i].seq = i;
- }
-
- const valid = this._sort();
- Assert(valid, 'merge created a dependencies error');
-
- return this.nodes;
- }
-
- sort() {
-
- const valid = this._sort();
- Assert(valid, 'sort created a dependencies error');
-
- return this.nodes;
- }
-
- _sort() {
-
- // Construct graph
-
- const graph = {};
- const graphAfters = Object.create(null); // A prototype can bungle lookups w/ false positives
- const groups = Object.create(null);
-
- for (const item of this._items) {
- const seq = item.seq; // Unique across all items
- const group = item.group;
-
- // Determine Groups
-
- groups[group] = groups[group] || [];
- groups[group].push(seq);
-
- // Build intermediary graph using 'before'
-
- graph[seq] = item.before;
-
- // Build second intermediary graph with 'after'
-
- for (const after of item.after) {
- graphAfters[after] = graphAfters[after] || [];
- graphAfters[after].push(seq);
- }
- }
-
- // Expand intermediary graph
-
- for (const node in graph) {
- const expandedGroups = [];
-
- for (const graphNodeItem in graph[node]) {
- const group = graph[node][graphNodeItem];
- groups[group] = groups[group] || [];
- expandedGroups.push(...groups[group]);
- }
-
- graph[node] = expandedGroups;
- }
-
- // Merge intermediary graph using graphAfters into final graph
-
- for (const group in graphAfters) {
- if (groups[group]) {
- for (const node of groups[group]) {
- graph[node].push(...graphAfters[group]);
- }
- }
- }
-
- // Compile ancestors
-
- const ancestors = {};
- for (const node in graph) {
- const children = graph[node];
- for (const child of children) {
- ancestors[child] = ancestors[child] || [];
- ancestors[child].push(node);
- }
- }
-
- // Topo sort
-
- const visited = {};
- const sorted = [];
-
- for (let i = 0; i < this._items.length; ++i) { // Looping through item.seq values out of order
- let next = i;
-
- if (ancestors[i]) {
- next = null;
- for (let j = 0; j < this._items.length; ++j) { // As above, these are item.seq values
- if (visited[j] === true) {
- continue;
- }
-
- if (!ancestors[j]) {
- ancestors[j] = [];
- }
-
- const shouldSeeCount = ancestors[j].length;
- let seenCount = 0;
- for (let k = 0; k < shouldSeeCount; ++k) {
- if (visited[ancestors[j][k]]) {
- ++seenCount;
- }
- }
-
- if (seenCount === shouldSeeCount) {
- next = j;
- break;
- }
- }
- }
-
- if (next !== null) {
- visited[next] = true;
- sorted.push(next);
- }
- }
-
- if (sorted.length !== this._items.length) {
- return false;
- }
-
- const seqIndex = {};
- for (const item of this._items) {
- seqIndex[item.seq] = item;
- }
-
- this._items = [];
- this.nodes = [];
-
- for (const value of sorted) {
- const sortedItem = seqIndex[value];
- this.nodes.push(sortedItem.node);
- this._items.push(sortedItem);
- }
-
- return true;
- }
-};
-
-
-internals.mergeSort = (a, b) => {
-
- return a.sort === b.sort ? 0 : (a.sort < b.sort ? -1 : 1);
-};
diff --git a/website/node_modules/@hapi/topo/package.json b/website/node_modules/@hapi/topo/package.json
deleted file mode 100755
index 19e7783d..00000000
--- a/website/node_modules/@hapi/topo/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@hapi/topo",
- "description": "Topological sorting with grouping support",
- "version": "5.1.0",
- "repository": "git://github.com/hapijs/topo",
- "main": "lib/index.js",
- "types": "lib/index.d.ts",
- "files": [
- "lib"
- ],
- "keywords": [
- "topological",
- "sort",
- "toposort",
- "topsort"
- ],
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- },
- "devDependencies": {
- "@hapi/code": "8.x.x",
- "@hapi/lab": "24.x.x",
- "typescript": "~4.0.2"
- },
- "scripts": {
- "test": "lab -a @hapi/code -t 100 -L -Y",
- "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html"
- },
- "license": "BSD-3-Clause"
-}
diff --git a/website/node_modules/@isaacs/cliui/LICENSE.txt b/website/node_modules/@isaacs/cliui/LICENSE.txt
deleted file mode 100644
index c7e27478..00000000
--- a/website/node_modules/@isaacs/cliui/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2015, Contributors
-
-Permission to use, copy, modify, and/or distribute this software
-for any purpose with or without fee is hereby granted, provided
-that the above copyright notice and this permission notice
-appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/README.md b/website/node_modules/@isaacs/cliui/README.md
deleted file mode 100644
index 48806426..00000000
--- a/website/node_modules/@isaacs/cliui/README.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# @isaacs/cliui
-
-Temporary fork of [cliui](http://npm.im/cliui).
-
-![ci](https://github.com/yargs/cliui/workflows/ci/badge.svg)
-[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)
-[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
-![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/cliui)
-
-easily create complex multi-column command-line-interfaces.
-
-## Example
-
-```js
-const ui = require('cliui')()
-
-ui.div('Usage: $0 [command] [options]')
-
-ui.div({
- text: 'Options:',
- padding: [2, 0, 1, 0]
-})
-
-ui.div(
- {
- text: "-f, --file",
- width: 20,
- padding: [0, 4, 0, 4]
- },
- {
- text: "the file to load." +
- chalk.green("(if this description is long it wraps).")
- ,
- width: 20
- },
- {
- text: chalk.red("[required]"),
- align: 'right'
- }
-)
-
-console.log(ui.toString())
-```
-
-## Deno/ESM Support
-
-As of `v7` `cliui` supports [Deno](https://github.com/denoland/deno) and
-[ESM](https://nodejs.org/api/esm.html#esm_ecmascript_modules):
-
-```typescript
-import cliui from "https://deno.land/x/cliui/deno.ts";
-
-const ui = cliui({})
-
-ui.div('Usage: $0 [command] [options]')
-
-ui.div({
- text: 'Options:',
- padding: [2, 0, 1, 0]
-})
-
-ui.div({
- text: "-f, --file",
- width: 20,
- padding: [0, 4, 0, 4]
-})
-
-console.log(ui.toString())
-```
-
-
-
-## Layout DSL
-
-cliui exposes a simple layout DSL:
-
-If you create a single `ui.div`, passing a string rather than an
-object:
-
-* `\n`: characters will be interpreted as new rows.
-* `\t`: characters will be interpreted as new columns.
-* `\s`: characters will be interpreted as padding.
-
-**as an example...**
-
-```js
-var ui = require('./')({
- width: 60
-})
-
-ui.div(
- 'Usage: node ./bin/foo.js\n' +
- ' \t provide a regex\n' +
- ' \t provide a glob\t [required]'
-)
-
-console.log(ui.toString())
-```
-
-**will output:**
-
-```shell
-Usage: node ./bin/foo.js
- provide a regex
- provide a glob [required]
-```
-
-## Methods
-
-```js
-cliui = require('cliui')
-```
-
-### cliui({width: integer})
-
-Specify the maximum width of the UI being generated.
-If no width is provided, cliui will try to get the current window's width and use it, and if that doesn't work, width will be set to `80`.
-
-### cliui({wrap: boolean})
-
-Enable or disable the wrapping of text in a column.
-
-### cliui.div(column, column, column)
-
-Create a row with any number of columns, a column
-can either be a string, or an object with the following
-options:
-
-* **text:** some text to place in the column.
-* **width:** the width of a column.
-* **align:** alignment, `right` or `center`.
-* **padding:** `[top, right, bottom, left]`.
-* **border:** should a border be placed around the div?
-
-### cliui.span(column, column, column)
-
-Similar to `div`, except the next row will be appended without
-a new line being created.
-
-### cliui.resetOutput()
-
-Resets the UI elements of the current cliui instance, maintaining the values
-set for `width` and `wrap`.
diff --git a/website/node_modules/@isaacs/cliui/build/index.cjs b/website/node_modules/@isaacs/cliui/build/index.cjs
deleted file mode 100644
index aca2b850..00000000
--- a/website/node_modules/@isaacs/cliui/build/index.cjs
+++ /dev/null
@@ -1,317 +0,0 @@
-'use strict';
-
-const align = {
- right: alignRight,
- center: alignCenter
-};
-const top = 0;
-const right = 1;
-const bottom = 2;
-const left = 3;
-class UI {
- constructor(opts) {
- var _a;
- this.width = opts.width;
- /* c8 ignore start */
- this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;
- /* c8 ignore stop */
- this.rows = [];
- }
- span(...args) {
- const cols = this.div(...args);
- cols.span = true;
- }
- resetOutput() {
- this.rows = [];
- }
- div(...args) {
- if (args.length === 0) {
- this.div('');
- }
- if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {
- return this.applyLayoutDSL(args[0]);
- }
- const cols = args.map(arg => {
- if (typeof arg === 'string') {
- return this.colFromString(arg);
- }
- return arg;
- });
- this.rows.push(cols);
- return cols;
- }
- shouldApplyLayoutDSL(...args) {
- return args.length === 1 && typeof args[0] === 'string' &&
- /[\t\n]/.test(args[0]);
- }
- applyLayoutDSL(str) {
- const rows = str.split('\n').map(row => row.split('\t'));
- let leftColumnWidth = 0;
- // simple heuristic for layout, make sure the
- // second column lines up along the left-hand.
- // don't allow the first column to take up more
- // than 50% of the screen.
- rows.forEach(columns => {
- if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {
- leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));
- }
- });
- // generate a table:
- // replacing ' ' with padding calculations.
- // using the algorithmically generated width.
- rows.forEach(columns => {
- this.div(...columns.map((r, i) => {
- return {
- text: r.trim(),
- padding: this.measurePadding(r),
- width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
- };
- }));
- });
- return this.rows[this.rows.length - 1];
- }
- colFromString(text) {
- return {
- text,
- padding: this.measurePadding(text)
- };
- }
- measurePadding(str) {
- // measure padding without ansi escape codes
- const noAnsi = mixin.stripAnsi(str);
- return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length];
- }
- toString() {
- const lines = [];
- this.rows.forEach(row => {
- this.rowToString(row, lines);
- });
- // don't display any lines with the
- // hidden flag set.
- return lines
- .filter(line => !line.hidden)
- .map(line => line.text)
- .join('\n');
- }
- rowToString(row, lines) {
- this.rasterize(row).forEach((rrow, r) => {
- let str = '';
- rrow.forEach((col, c) => {
- const { width } = row[c]; // the width with padding.
- const wrapWidth = this.negatePadding(row[c]); // the width without padding.
- let ts = col; // temporary string used during alignment/padding.
- if (wrapWidth > mixin.stringWidth(col)) {
- ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));
- }
- // align the string within its column.
- if (row[c].align && row[c].align !== 'left' && this.wrap) {
- const fn = align[row[c].align];
- ts = fn(ts, wrapWidth);
- if (mixin.stringWidth(ts) < wrapWidth) {
- /* c8 ignore start */
- const w = width || 0;
- /* c8 ignore stop */
- ts += ' '.repeat(w - mixin.stringWidth(ts) - 1);
- }
- }
- // apply border and padding to string.
- const padding = row[c].padding || [0, 0, 0, 0];
- if (padding[left]) {
- str += ' '.repeat(padding[left]);
- }
- str += addBorder(row[c], ts, '| ');
- str += ts;
- str += addBorder(row[c], ts, ' |');
- if (padding[right]) {
- str += ' '.repeat(padding[right]);
- }
- // if prior row is span, try to render the
- // current row on the prior line.
- if (r === 0 && lines.length > 0) {
- str = this.renderInline(str, lines[lines.length - 1]);
- }
- });
- // remove trailing whitespace.
- lines.push({
- text: str.replace(/ +$/, ''),
- span: row.span
- });
- });
- return lines;
- }
- // if the full 'source' can render in
- // the target line, do so.
- renderInline(source, previousLine) {
- const match = source.match(/^ */);
- /* c8 ignore start */
- const leadingWhitespace = match ? match[0].length : 0;
- /* c8 ignore stop */
- const target = previousLine.text;
- const targetTextWidth = mixin.stringWidth(target.trimEnd());
- if (!previousLine.span) {
- return source;
- }
- // if we're not applying wrapping logic,
- // just always append to the span.
- if (!this.wrap) {
- previousLine.hidden = true;
- return target + source;
- }
- if (leadingWhitespace < targetTextWidth) {
- return source;
- }
- previousLine.hidden = true;
- return target.trimEnd() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimStart();
- }
- rasterize(row) {
- const rrows = [];
- const widths = this.columnWidths(row);
- let wrapped;
- // word wrap all columns, and create
- // a data-structure that is easy to rasterize.
- row.forEach((col, c) => {
- // leave room for left and right padding.
- col.width = widths[c];
- if (this.wrap) {
- wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n');
- }
- else {
- wrapped = col.text.split('\n');
- }
- if (col.border) {
- wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');
- wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'");
- }
- // add top and bottom padding.
- if (col.padding) {
- wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));
- wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));
- }
- wrapped.forEach((str, r) => {
- if (!rrows[r]) {
- rrows.push([]);
- }
- const rrow = rrows[r];
- for (let i = 0; i < c; i++) {
- if (rrow[i] === undefined) {
- rrow.push('');
- }
- }
- rrow.push(str);
- });
- });
- return rrows;
- }
- negatePadding(col) {
- /* c8 ignore start */
- let wrapWidth = col.width || 0;
- /* c8 ignore stop */
- if (col.padding) {
- wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);
- }
- if (col.border) {
- wrapWidth -= 4;
- }
- return wrapWidth;
- }
- columnWidths(row) {
- if (!this.wrap) {
- return row.map(col => {
- return col.width || mixin.stringWidth(col.text);
- });
- }
- let unset = row.length;
- let remainingWidth = this.width;
- // column widths can be set in config.
- const widths = row.map(col => {
- if (col.width) {
- unset--;
- remainingWidth -= col.width;
- return col.width;
- }
- return undefined;
- });
- // any unset widths should be calculated.
- /* c8 ignore start */
- const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;
- /* c8 ignore stop */
- return widths.map((w, i) => {
- if (w === undefined) {
- return Math.max(unsetWidth, _minWidth(row[i]));
- }
- return w;
- });
- }
-}
-function addBorder(col, ts, style) {
- if (col.border) {
- if (/[.']-+[.']/.test(ts)) {
- return '';
- }
- if (ts.trim().length !== 0) {
- return style;
- }
- return ' ';
- }
- return '';
-}
-// calculates the minimum width of
-// a column, based on padding preferences.
-function _minWidth(col) {
- const padding = col.padding || [];
- const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);
- if (col.border) {
- return minWidth + 4;
- }
- return minWidth;
-}
-function getWindowWidth() {
- /* c8 ignore start */
- if (typeof process === 'object' && process.stdout && process.stdout.columns) {
- return process.stdout.columns;
- }
- return 80;
-}
-/* c8 ignore stop */
-function alignRight(str, width) {
- str = str.trim();
- const strWidth = mixin.stringWidth(str);
- if (strWidth < width) {
- return ' '.repeat(width - strWidth) + str;
- }
- return str;
-}
-function alignCenter(str, width) {
- str = str.trim();
- const strWidth = mixin.stringWidth(str);
- /* c8 ignore start */
- if (strWidth >= width) {
- return str;
- }
- /* c8 ignore stop */
- return ' '.repeat((width - strWidth) >> 1) + str;
-}
-let mixin;
-function cliui(opts, _mixin) {
- mixin = _mixin;
- return new UI({
- /* c8 ignore start */
- width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),
- wrap: opts === null || opts === void 0 ? void 0 : opts.wrap
- /* c8 ignore stop */
- });
-}
-
-// Bootstrap cliui with CommonJS dependencies:
-const stringWidth = require('string-width-cjs');
-const stripAnsi = require('strip-ansi-cjs');
-const wrap = require('wrap-ansi-cjs');
-function ui(opts) {
- return cliui(opts, {
- stringWidth,
- stripAnsi,
- wrap
- });
-}
-
-module.exports = ui;
diff --git a/website/node_modules/@isaacs/cliui/build/index.d.cts b/website/node_modules/@isaacs/cliui/build/index.d.cts
deleted file mode 100644
index 4567f945..00000000
--- a/website/node_modules/@isaacs/cliui/build/index.d.cts
+++ /dev/null
@@ -1,43 +0,0 @@
-interface UIOptions {
- width: number;
- wrap?: boolean;
- rows?: string[];
-}
-interface Column {
- text: string;
- width?: number;
- align?: "right" | "left" | "center";
- padding: number[];
- border?: boolean;
-}
-interface ColumnArray extends Array {
- span: boolean;
-}
-interface Line {
- hidden?: boolean;
- text: string;
- span?: boolean;
-}
-declare class UI {
- width: number;
- wrap: boolean;
- rows: ColumnArray[];
- constructor(opts: UIOptions);
- span(...args: ColumnArray): void;
- resetOutput(): void;
- div(...args: (Column | string)[]): ColumnArray;
- private shouldApplyLayoutDSL;
- private applyLayoutDSL;
- private colFromString;
- private measurePadding;
- toString(): string;
- rowToString(row: ColumnArray, lines: Line[]): Line[];
- // if the full 'source' can render in
- // the target line, do so.
- private renderInline;
- private rasterize;
- private negatePadding;
- private columnWidths;
-}
-declare function ui(opts: UIOptions): UI;
-export { ui as default };
diff --git a/website/node_modules/@isaacs/cliui/build/lib/index.js b/website/node_modules/@isaacs/cliui/build/lib/index.js
deleted file mode 100644
index 587b5ecd..00000000
--- a/website/node_modules/@isaacs/cliui/build/lib/index.js
+++ /dev/null
@@ -1,302 +0,0 @@
-'use strict';
-const align = {
- right: alignRight,
- center: alignCenter
-};
-const top = 0;
-const right = 1;
-const bottom = 2;
-const left = 3;
-export class UI {
- constructor(opts) {
- var _a;
- this.width = opts.width;
- /* c8 ignore start */
- this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;
- /* c8 ignore stop */
- this.rows = [];
- }
- span(...args) {
- const cols = this.div(...args);
- cols.span = true;
- }
- resetOutput() {
- this.rows = [];
- }
- div(...args) {
- if (args.length === 0) {
- this.div('');
- }
- if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {
- return this.applyLayoutDSL(args[0]);
- }
- const cols = args.map(arg => {
- if (typeof arg === 'string') {
- return this.colFromString(arg);
- }
- return arg;
- });
- this.rows.push(cols);
- return cols;
- }
- shouldApplyLayoutDSL(...args) {
- return args.length === 1 && typeof args[0] === 'string' &&
- /[\t\n]/.test(args[0]);
- }
- applyLayoutDSL(str) {
- const rows = str.split('\n').map(row => row.split('\t'));
- let leftColumnWidth = 0;
- // simple heuristic for layout, make sure the
- // second column lines up along the left-hand.
- // don't allow the first column to take up more
- // than 50% of the screen.
- rows.forEach(columns => {
- if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {
- leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));
- }
- });
- // generate a table:
- // replacing ' ' with padding calculations.
- // using the algorithmically generated width.
- rows.forEach(columns => {
- this.div(...columns.map((r, i) => {
- return {
- text: r.trim(),
- padding: this.measurePadding(r),
- width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
- };
- }));
- });
- return this.rows[this.rows.length - 1];
- }
- colFromString(text) {
- return {
- text,
- padding: this.measurePadding(text)
- };
- }
- measurePadding(str) {
- // measure padding without ansi escape codes
- const noAnsi = mixin.stripAnsi(str);
- return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length];
- }
- toString() {
- const lines = [];
- this.rows.forEach(row => {
- this.rowToString(row, lines);
- });
- // don't display any lines with the
- // hidden flag set.
- return lines
- .filter(line => !line.hidden)
- .map(line => line.text)
- .join('\n');
- }
- rowToString(row, lines) {
- this.rasterize(row).forEach((rrow, r) => {
- let str = '';
- rrow.forEach((col, c) => {
- const { width } = row[c]; // the width with padding.
- const wrapWidth = this.negatePadding(row[c]); // the width without padding.
- let ts = col; // temporary string used during alignment/padding.
- if (wrapWidth > mixin.stringWidth(col)) {
- ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));
- }
- // align the string within its column.
- if (row[c].align && row[c].align !== 'left' && this.wrap) {
- const fn = align[row[c].align];
- ts = fn(ts, wrapWidth);
- if (mixin.stringWidth(ts) < wrapWidth) {
- /* c8 ignore start */
- const w = width || 0;
- /* c8 ignore stop */
- ts += ' '.repeat(w - mixin.stringWidth(ts) - 1);
- }
- }
- // apply border and padding to string.
- const padding = row[c].padding || [0, 0, 0, 0];
- if (padding[left]) {
- str += ' '.repeat(padding[left]);
- }
- str += addBorder(row[c], ts, '| ');
- str += ts;
- str += addBorder(row[c], ts, ' |');
- if (padding[right]) {
- str += ' '.repeat(padding[right]);
- }
- // if prior row is span, try to render the
- // current row on the prior line.
- if (r === 0 && lines.length > 0) {
- str = this.renderInline(str, lines[lines.length - 1]);
- }
- });
- // remove trailing whitespace.
- lines.push({
- text: str.replace(/ +$/, ''),
- span: row.span
- });
- });
- return lines;
- }
- // if the full 'source' can render in
- // the target line, do so.
- renderInline(source, previousLine) {
- const match = source.match(/^ */);
- /* c8 ignore start */
- const leadingWhitespace = match ? match[0].length : 0;
- /* c8 ignore stop */
- const target = previousLine.text;
- const targetTextWidth = mixin.stringWidth(target.trimEnd());
- if (!previousLine.span) {
- return source;
- }
- // if we're not applying wrapping logic,
- // just always append to the span.
- if (!this.wrap) {
- previousLine.hidden = true;
- return target + source;
- }
- if (leadingWhitespace < targetTextWidth) {
- return source;
- }
- previousLine.hidden = true;
- return target.trimEnd() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimStart();
- }
- rasterize(row) {
- const rrows = [];
- const widths = this.columnWidths(row);
- let wrapped;
- // word wrap all columns, and create
- // a data-structure that is easy to rasterize.
- row.forEach((col, c) => {
- // leave room for left and right padding.
- col.width = widths[c];
- if (this.wrap) {
- wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n');
- }
- else {
- wrapped = col.text.split('\n');
- }
- if (col.border) {
- wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');
- wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'");
- }
- // add top and bottom padding.
- if (col.padding) {
- wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));
- wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));
- }
- wrapped.forEach((str, r) => {
- if (!rrows[r]) {
- rrows.push([]);
- }
- const rrow = rrows[r];
- for (let i = 0; i < c; i++) {
- if (rrow[i] === undefined) {
- rrow.push('');
- }
- }
- rrow.push(str);
- });
- });
- return rrows;
- }
- negatePadding(col) {
- /* c8 ignore start */
- let wrapWidth = col.width || 0;
- /* c8 ignore stop */
- if (col.padding) {
- wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);
- }
- if (col.border) {
- wrapWidth -= 4;
- }
- return wrapWidth;
- }
- columnWidths(row) {
- if (!this.wrap) {
- return row.map(col => {
- return col.width || mixin.stringWidth(col.text);
- });
- }
- let unset = row.length;
- let remainingWidth = this.width;
- // column widths can be set in config.
- const widths = row.map(col => {
- if (col.width) {
- unset--;
- remainingWidth -= col.width;
- return col.width;
- }
- return undefined;
- });
- // any unset widths should be calculated.
- /* c8 ignore start */
- const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;
- /* c8 ignore stop */
- return widths.map((w, i) => {
- if (w === undefined) {
- return Math.max(unsetWidth, _minWidth(row[i]));
- }
- return w;
- });
- }
-}
-function addBorder(col, ts, style) {
- if (col.border) {
- if (/[.']-+[.']/.test(ts)) {
- return '';
- }
- if (ts.trim().length !== 0) {
- return style;
- }
- return ' ';
- }
- return '';
-}
-// calculates the minimum width of
-// a column, based on padding preferences.
-function _minWidth(col) {
- const padding = col.padding || [];
- const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);
- if (col.border) {
- return minWidth + 4;
- }
- return minWidth;
-}
-function getWindowWidth() {
- /* c8 ignore start */
- if (typeof process === 'object' && process.stdout && process.stdout.columns) {
- return process.stdout.columns;
- }
- return 80;
-}
-/* c8 ignore stop */
-function alignRight(str, width) {
- str = str.trim();
- const strWidth = mixin.stringWidth(str);
- if (strWidth < width) {
- return ' '.repeat(width - strWidth) + str;
- }
- return str;
-}
-function alignCenter(str, width) {
- str = str.trim();
- const strWidth = mixin.stringWidth(str);
- /* c8 ignore start */
- if (strWidth >= width) {
- return str;
- }
- /* c8 ignore stop */
- return ' '.repeat((width - strWidth) >> 1) + str;
-}
-let mixin;
-export function cliui(opts, _mixin) {
- mixin = _mixin;
- return new UI({
- /* c8 ignore start */
- width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),
- wrap: opts === null || opts === void 0 ? void 0 : opts.wrap
- /* c8 ignore stop */
- });
-}
diff --git a/website/node_modules/@isaacs/cliui/index.mjs b/website/node_modules/@isaacs/cliui/index.mjs
deleted file mode 100644
index 5177519a..00000000
--- a/website/node_modules/@isaacs/cliui/index.mjs
+++ /dev/null
@@ -1,14 +0,0 @@
-// Bootstrap cliui with ESM dependencies:
-import { cliui } from './build/lib/index.js'
-
-import stringWidth from 'string-width'
-import stripAnsi from 'strip-ansi'
-import wrap from 'wrap-ansi'
-
-export default function ui (opts) {
- return cliui(opts, {
- stringWidth,
- stripAnsi,
- wrap
- })
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.d.ts
deleted file mode 100644
index 50ef64dc..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export interface Options {
- /**
- Match only the first ANSI escape.
-
- @default false
- */
- readonly onlyFirst: boolean;
-}
-
-/**
-Regular expression for matching ANSI escape codes.
-
-@example
-```
-import ansiRegex from 'ansi-regex';
-
-ansiRegex().test('\u001B[4mcake\u001B[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex());
-//=> ['\u001B[4m', '\u001B[0m']
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
-//=> ['\u001B[4m']
-
-'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
-//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
-```
-*/
-export default function ansiRegex(options?: Options): RegExp;
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.js b/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.js
deleted file mode 100644
index 130a0929..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function ansiRegex({onlyFirst = false} = {}) {
- const pattern = [
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
- ].join('|');
-
- return new RegExp(pattern, onlyFirst ? undefined : 'g');
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/license b/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/license
deleted file mode 100644
index fa7ceba3..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (https://sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/package.json b/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/package.json
deleted file mode 100644
index 7bbb563b..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "ansi-regex",
- "version": "6.0.1",
- "description": "Regular expression for matching ANSI escape codes",
- "license": "MIT",
- "repository": "chalk/ansi-regex",
- "funding": "https://github.com/chalk/ansi-regex?sponsor=1",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "type": "module",
- "exports": "./index.js",
- "engines": {
- "node": ">=12"
- },
- "scripts": {
- "test": "xo && ava && tsd",
- "view-supported": "node fixtures/view-codes.js"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "devDependencies": {
- "ava": "^3.15.0",
- "tsd": "^0.14.0",
- "xo": "^0.38.2"
- }
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/readme.md b/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 0e17e238..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# ansi-regex
-
-> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
-
-## Install
-
-```
-$ npm install ansi-regex
-```
-
-## Usage
-
-```js
-import ansiRegex from 'ansi-regex';
-
-ansiRegex().test('\u001B[4mcake\u001B[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex());
-//=> ['\u001B[4m', '\u001B[0m']
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
-//=> ['\u001B[4m']
-
-'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
-//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
-```
-
-## API
-
-### ansiRegex(options?)
-
-Returns a regex for matching ANSI escape codes.
-
-#### options
-
-Type: `object`
-
-##### onlyFirst
-
-Type: `boolean`\
-Default: `false` *(Matches any ANSI escape codes in a string)*
-
-Match only the first ANSI escape.
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
----
-
-
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/index.d.ts
deleted file mode 100644
index 58f133ab..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/index.d.ts
+++ /dev/null
@@ -1,236 +0,0 @@
-export interface CSPair { // eslint-disable-line @typescript-eslint/naming-convention
- /**
- The ANSI terminal control sequence for starting this style.
- */
- readonly open: string;
-
- /**
- The ANSI terminal control sequence for ending this style.
- */
- readonly close: string;
-}
-
-export interface ColorBase {
- /**
- The ANSI terminal control sequence for ending this color.
- */
- readonly close: string;
-
- ansi(code: number): string;
-
- ansi256(code: number): string;
-
- ansi16m(red: number, green: number, blue: number): string;
-}
-
-export interface Modifier {
- /**
- Resets the current color chain.
- */
- readonly reset: CSPair;
-
- /**
- Make text bold.
- */
- readonly bold: CSPair;
-
- /**
- Emitting only a small amount of light.
- */
- readonly dim: CSPair;
-
- /**
- Make text italic. (Not widely supported)
- */
- readonly italic: CSPair;
-
- /**
- Make text underline. (Not widely supported)
- */
- readonly underline: CSPair;
-
- /**
- Make text overline.
-
- Supported on VTE-based terminals, the GNOME terminal, mintty, and Git Bash.
- */
- readonly overline: CSPair;
-
- /**
- Inverse background and foreground colors.
- */
- readonly inverse: CSPair;
-
- /**
- Prints the text, but makes it invisible.
- */
- readonly hidden: CSPair;
-
- /**
- Puts a horizontal line through the center of the text. (Not widely supported)
- */
- readonly strikethrough: CSPair;
-}
-
-export interface ForegroundColor {
- readonly black: CSPair;
- readonly red: CSPair;
- readonly green: CSPair;
- readonly yellow: CSPair;
- readonly blue: CSPair;
- readonly cyan: CSPair;
- readonly magenta: CSPair;
- readonly white: CSPair;
-
- /**
- Alias for `blackBright`.
- */
- readonly gray: CSPair;
-
- /**
- Alias for `blackBright`.
- */
- readonly grey: CSPair;
-
- readonly blackBright: CSPair;
- readonly redBright: CSPair;
- readonly greenBright: CSPair;
- readonly yellowBright: CSPair;
- readonly blueBright: CSPair;
- readonly cyanBright: CSPair;
- readonly magentaBright: CSPair;
- readonly whiteBright: CSPair;
-}
-
-export interface BackgroundColor {
- readonly bgBlack: CSPair;
- readonly bgRed: CSPair;
- readonly bgGreen: CSPair;
- readonly bgYellow: CSPair;
- readonly bgBlue: CSPair;
- readonly bgCyan: CSPair;
- readonly bgMagenta: CSPair;
- readonly bgWhite: CSPair;
-
- /**
- Alias for `bgBlackBright`.
- */
- readonly bgGray: CSPair;
-
- /**
- Alias for `bgBlackBright`.
- */
- readonly bgGrey: CSPair;
-
- readonly bgBlackBright: CSPair;
- readonly bgRedBright: CSPair;
- readonly bgGreenBright: CSPair;
- readonly bgYellowBright: CSPair;
- readonly bgBlueBright: CSPair;
- readonly bgCyanBright: CSPair;
- readonly bgMagentaBright: CSPair;
- readonly bgWhiteBright: CSPair;
-}
-
-export interface ConvertColor {
- /**
- Convert from the RGB color space to the ANSI 256 color space.
-
- @param red - (`0...255`)
- @param green - (`0...255`)
- @param blue - (`0...255`)
- */
- rgbToAnsi256(red: number, green: number, blue: number): number;
-
- /**
- Convert from the RGB HEX color space to the RGB color space.
-
- @param hex - A hexadecimal string containing RGB data.
- */
- hexToRgb(hex: string): [red: number, green: number, blue: number];
-
- /**
- Convert from the RGB HEX color space to the ANSI 256 color space.
-
- @param hex - A hexadecimal string containing RGB data.
- */
- hexToAnsi256(hex: string): number;
-
- /**
- Convert from the ANSI 256 color space to the ANSI 16 color space.
-
- @param code - A number representing the ANSI 256 color.
- */
- ansi256ToAnsi(code: number): number;
-
- /**
- Convert from the RGB color space to the ANSI 16 color space.
-
- @param red - (`0...255`)
- @param green - (`0...255`)
- @param blue - (`0...255`)
- */
- rgbToAnsi(red: number, green: number, blue: number): number;
-
- /**
- Convert from the RGB HEX color space to the ANSI 16 color space.
-
- @param hex - A hexadecimal string containing RGB data.
- */
- hexToAnsi(hex: string): number;
-}
-
-/**
-Basic modifier names.
-*/
-export type ModifierName = keyof Modifier;
-
-/**
-Basic foreground color names.
-
-[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
-*/
-export type ForegroundColorName = keyof ForegroundColor;
-
-/**
-Basic background color names.
-
-[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
-*/
-export type BackgroundColorName = keyof BackgroundColor;
-
-/**
-Basic color names. The combination of foreground and background color names.
-
-[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
-*/
-export type ColorName = ForegroundColorName | BackgroundColorName;
-
-/**
-Basic modifier names.
-*/
-export const modifierNames: readonly ModifierName[];
-
-/**
-Basic foreground color names.
-*/
-export const foregroundColorNames: readonly ForegroundColorName[];
-
-/**
-Basic background color names.
-*/
-export const backgroundColorNames: readonly BackgroundColorName[];
-
-/*
-Basic color names. The combination of foreground and background color names.
-*/
-export const colorNames: readonly ColorName[];
-
-declare const ansiStyles: {
- readonly modifier: Modifier;
- readonly color: ColorBase & ForegroundColor;
- readonly bgColor: ColorBase & BackgroundColor;
- readonly codes: ReadonlyMap;
-} & ForegroundColor & BackgroundColor & Modifier & ConvertColor;
-
-export default ansiStyles;
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/index.js b/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/index.js
deleted file mode 100644
index d7bede44..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/index.js
+++ /dev/null
@@ -1,223 +0,0 @@
-const ANSI_BACKGROUND_OFFSET = 10;
-
-const wrapAnsi16 = (offset = 0) => code => `\u001B[${code + offset}m`;
-
-const wrapAnsi256 = (offset = 0) => code => `\u001B[${38 + offset};5;${code}m`;
-
-const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
-
-const styles = {
- modifier: {
- reset: [0, 0],
- // 21 isn't widely supported and 22 does the same thing
- bold: [1, 22],
- dim: [2, 22],
- italic: [3, 23],
- underline: [4, 24],
- overline: [53, 55],
- inverse: [7, 27],
- hidden: [8, 28],
- strikethrough: [9, 29],
- },
- color: {
- black: [30, 39],
- red: [31, 39],
- green: [32, 39],
- yellow: [33, 39],
- blue: [34, 39],
- magenta: [35, 39],
- cyan: [36, 39],
- white: [37, 39],
-
- // Bright color
- blackBright: [90, 39],
- gray: [90, 39], // Alias of `blackBright`
- grey: [90, 39], // Alias of `blackBright`
- redBright: [91, 39],
- greenBright: [92, 39],
- yellowBright: [93, 39],
- blueBright: [94, 39],
- magentaBright: [95, 39],
- cyanBright: [96, 39],
- whiteBright: [97, 39],
- },
- bgColor: {
- bgBlack: [40, 49],
- bgRed: [41, 49],
- bgGreen: [42, 49],
- bgYellow: [43, 49],
- bgBlue: [44, 49],
- bgMagenta: [45, 49],
- bgCyan: [46, 49],
- bgWhite: [47, 49],
-
- // Bright color
- bgBlackBright: [100, 49],
- bgGray: [100, 49], // Alias of `bgBlackBright`
- bgGrey: [100, 49], // Alias of `bgBlackBright`
- bgRedBright: [101, 49],
- bgGreenBright: [102, 49],
- bgYellowBright: [103, 49],
- bgBlueBright: [104, 49],
- bgMagentaBright: [105, 49],
- bgCyanBright: [106, 49],
- bgWhiteBright: [107, 49],
- },
-};
-
-export const modifierNames = Object.keys(styles.modifier);
-export const foregroundColorNames = Object.keys(styles.color);
-export const backgroundColorNames = Object.keys(styles.bgColor);
-export const colorNames = [...foregroundColorNames, ...backgroundColorNames];
-
-function assembleStyles() {
- const codes = new Map();
-
- for (const [groupName, group] of Object.entries(styles)) {
- for (const [styleName, style] of Object.entries(group)) {
- styles[styleName] = {
- open: `\u001B[${style[0]}m`,
- close: `\u001B[${style[1]}m`,
- };
-
- group[styleName] = styles[styleName];
-
- codes.set(style[0], style[1]);
- }
-
- Object.defineProperty(styles, groupName, {
- value: group,
- enumerable: false,
- });
- }
-
- Object.defineProperty(styles, 'codes', {
- value: codes,
- enumerable: false,
- });
-
- styles.color.close = '\u001B[39m';
- styles.bgColor.close = '\u001B[49m';
-
- styles.color.ansi = wrapAnsi16();
- styles.color.ansi256 = wrapAnsi256();
- styles.color.ansi16m = wrapAnsi16m();
- styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
- styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
- styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
-
- // From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js
- Object.defineProperties(styles, {
- rgbToAnsi256: {
- value: (red, green, blue) => {
- // We use the extended greyscale palette here, with the exception of
- // black and white. normal palette only has 4 greyscale shades.
- if (red === green && green === blue) {
- if (red < 8) {
- return 16;
- }
-
- if (red > 248) {
- return 231;
- }
-
- return Math.round(((red - 8) / 247) * 24) + 232;
- }
-
- return 16
- + (36 * Math.round(red / 255 * 5))
- + (6 * Math.round(green / 255 * 5))
- + Math.round(blue / 255 * 5);
- },
- enumerable: false,
- },
- hexToRgb: {
- value: hex => {
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
- if (!matches) {
- return [0, 0, 0];
- }
-
- let [colorString] = matches;
-
- if (colorString.length === 3) {
- colorString = [...colorString].map(character => character + character).join('');
- }
-
- const integer = Number.parseInt(colorString, 16);
-
- return [
- /* eslint-disable no-bitwise */
- (integer >> 16) & 0xFF,
- (integer >> 8) & 0xFF,
- integer & 0xFF,
- /* eslint-enable no-bitwise */
- ];
- },
- enumerable: false,
- },
- hexToAnsi256: {
- value: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
- enumerable: false,
- },
- ansi256ToAnsi: {
- value: code => {
- if (code < 8) {
- return 30 + code;
- }
-
- if (code < 16) {
- return 90 + (code - 8);
- }
-
- let red;
- let green;
- let blue;
-
- if (code >= 232) {
- red = (((code - 232) * 10) + 8) / 255;
- green = red;
- blue = red;
- } else {
- code -= 16;
-
- const remainder = code % 36;
-
- red = Math.floor(code / 36) / 5;
- green = Math.floor(remainder / 6) / 5;
- blue = (remainder % 6) / 5;
- }
-
- const value = Math.max(red, green, blue) * 2;
-
- if (value === 0) {
- return 30;
- }
-
- // eslint-disable-next-line no-bitwise
- let result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));
-
- if (value === 2) {
- result += 60;
- }
-
- return result;
- },
- enumerable: false,
- },
- rgbToAnsi: {
- value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
- enumerable: false,
- },
- hexToAnsi: {
- value: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
- enumerable: false,
- },
- });
-
- return styles;
-}
-
-const ansiStyles = assembleStyles();
-
-export default ansiStyles;
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/license b/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/license
deleted file mode 100644
index fa7ceba3..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (https://sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/package.json b/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/package.json
deleted file mode 100644
index 6cd3ca5b..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "ansi-styles",
- "version": "6.2.1",
- "description": "ANSI escape codes for styling strings in the terminal",
- "license": "MIT",
- "repository": "chalk/ansi-styles",
- "funding": "https://github.com/chalk/ansi-styles?sponsor=1",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "type": "module",
- "exports": "./index.js",
- "engines": {
- "node": ">=12"
- },
- "scripts": {
- "test": "xo && ava && tsd",
- "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "devDependencies": {
- "ava": "^3.15.0",
- "svg-term-cli": "^2.1.1",
- "tsd": "^0.19.0",
- "xo": "^0.47.0"
- }
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/readme.md b/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/readme.md
deleted file mode 100644
index 6d04183f..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/ansi-styles/readme.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# ansi-styles
-
-> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
-
-You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
-
-![](screenshot.png)
-
-## Install
-
-```sh
-npm install ansi-styles
-```
-
-## Usage
-
-```js
-import styles from 'ansi-styles';
-
-console.log(`${styles.green.open}Hello world!${styles.green.close}`);
-
-
-// Color conversion between 256/truecolor
-// NOTE: When converting from truecolor to 256 colors, the original color
-// may be degraded to fit the new color palette. This means terminals
-// that do not support 16 million colors will best-match the
-// original color.
-console.log(`${styles.color.ansi(styles.rgbToAnsi(199, 20, 250))}Hello World${styles.color.close}`)
-console.log(`${styles.color.ansi256(styles.rgbToAnsi256(199, 20, 250))}Hello World${styles.color.close}`)
-console.log(`${styles.color.ansi16m(...styles.hexToRgb('#abcdef'))}Hello World${styles.color.close}`)
-```
-
-## API
-
-### `open` and `close`
-
-Each style has an `open` and `close` property.
-
-### `modifierNames`, `foregroundColorNames`, `backgroundColorNames`, and `colorNames`
-
-All supported style strings are exposed as an array of strings for convenience. `colorNames` is the combination of `foregroundColorNames` and `backgroundColorNames`.
-
-This can be useful if you need to validate input:
-
-```js
-import {modifierNames, foregroundColorNames} from 'ansi-styles';
-
-console.log(modifierNames.includes('bold'));
-//=> true
-
-console.log(foregroundColorNames.includes('pink'));
-//=> false
-```
-
-## Styles
-
-### Modifiers
-
-- `reset`
-- `bold`
-- `dim`
-- `italic` *(Not widely supported)*
-- `underline`
-- `overline` *Supported on VTE-based terminals, the GNOME terminal, mintty, and Git Bash.*
-- `inverse`
-- `hidden`
-- `strikethrough` *(Not widely supported)*
-
-### Colors
-
-- `black`
-- `red`
-- `green`
-- `yellow`
-- `blue`
-- `magenta`
-- `cyan`
-- `white`
-- `blackBright` (alias: `gray`, `grey`)
-- `redBright`
-- `greenBright`
-- `yellowBright`
-- `blueBright`
-- `magentaBright`
-- `cyanBright`
-- `whiteBright`
-
-### Background colors
-
-- `bgBlack`
-- `bgRed`
-- `bgGreen`
-- `bgYellow`
-- `bgBlue`
-- `bgMagenta`
-- `bgCyan`
-- `bgWhite`
-- `bgBlackBright` (alias: `bgGray`, `bgGrey`)
-- `bgRedBright`
-- `bgGreenBright`
-- `bgYellowBright`
-- `bgBlueBright`
-- `bgMagentaBright`
-- `bgCyanBright`
-- `bgWhiteBright`
-
-## Advanced usage
-
-By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
-
-- `styles.modifier`
-- `styles.color`
-- `styles.bgColor`
-
-###### Example
-
-```js
-import styles from 'ansi-styles';
-
-console.log(styles.color.green.open);
-```
-
-Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `styles.codes`, which returns a `Map` with the open codes as keys and close codes as values.
-
-###### Example
-
-```js
-import styles from 'ansi-styles';
-
-console.log(styles.codes.get(36));
-//=> 39
-```
-
-## 16 / 256 / 16 million (TrueColor) support
-
-`ansi-styles` allows converting between various color formats and ANSI escapes, with support for 16, 256 and [16 million colors](https://gist.github.com/XVilka/8346728).
-
-The following color spaces are supported:
-
-- `rgb`
-- `hex`
-- `ansi256`
-- `ansi`
-
-To use these, call the associated conversion function with the intended output, for example:
-
-```js
-import styles from 'ansi-styles';
-
-styles.color.ansi(styles.rgbToAnsi(100, 200, 15)); // RGB to 16 color ansi foreground code
-styles.bgColor.ansi(styles.hexToAnsi('#C0FFEE')); // HEX to 16 color ansi foreground code
-
-styles.color.ansi256(styles.rgbToAnsi256(100, 200, 15)); // RGB to 256 color ansi foreground code
-styles.bgColor.ansi256(styles.hexToAnsi256('#C0FFEE')); // HEX to 256 color ansi foreground code
-
-styles.color.ansi16m(100, 200, 15); // RGB to 16 million color foreground code
-styles.bgColor.ansi16m(...styles.hexToRgb('#C0FFEE')); // Hex (RGB) to 16 million color foreground code
-```
-
-## Related
-
-- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-## For enterprise
-
-Available as part of the Tidelift Subscription.
-
-The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/LICENSE-MIT.txt b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/LICENSE-MIT.txt
deleted file mode 100644
index a41e0a7e..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/LICENSE-MIT.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright Mathias Bynens
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/README.md b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/README.md
deleted file mode 100644
index 6d630827..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/README.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=main)](https://travis-ci.org/mathiasbynens/emoji-regex)
-
-_emoji-regex_ offers a regular expression to match all emoji symbols and sequences (including textual representations of emoji) as per the Unicode Standard.
-
-This repository contains a script that generates this regular expression based on [Unicode data](https://github.com/node-unicode/node-unicode-data). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.
-
-## Installation
-
-Via [npm](https://www.npmjs.com/):
-
-```bash
-npm install emoji-regex
-```
-
-In [Node.js](https://nodejs.org/):
-
-```js
-const emojiRegex = require('emoji-regex/RGI_Emoji.js');
-// Note: because the regular expression has the global flag set, this module
-// exports a function that returns the regex rather than exporting the regular
-// expression itself, to make it impossible to (accidentally) mutate the
-// original regular expression.
-
-const text = `
-\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation)
-\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji
-\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base)
-\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier
-`;
-
-const regex = emojiRegex();
-let match;
-while (match = regex.exec(text)) {
- const emoji = match[0];
- console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
-}
-```
-
-Console output:
-
-```
-Matched sequence ⌚ — code points: 1
-Matched sequence ⌚ — code points: 1
-Matched sequence ↔️ — code points: 2
-Matched sequence ↔️ — code points: 2
-Matched sequence 👩 — code points: 1
-Matched sequence 👩 — code points: 1
-Matched sequence 👩🏿 — code points: 2
-Matched sequence 👩🏿 — code points: 2
-```
-
-## Regular expression flavors
-
-The package comes with three distinct regular expressions:
-
-```js
-// This is the recommended regular expression to use. It matches all
-// emoji recommended for general interchange, as defined via the
-// `RGI_Emoji` property in the Unicode Standard.
-// https://unicode.org/reports/tr51/#def_rgi_set
-// When in doubt, use this!
-const emojiRegexRGI = require('emoji-regex/RGI_Emoji.js');
-
-// This is the old regular expression, prior to `RGI_Emoji` being
-// standardized. In addition to all `RGI_Emoji` sequences, it matches
-// some emoji you probably don’t want to match (such as emoji component
-// symbols that are not meant to be used separately).
-const emojiRegex = require('emoji-regex/index.js');
-
-// This regular expression matches even more emoji than the previous
-// one, including emoji that render as text instead of icons (i.e.
-// emoji that are not `Emoji_Presentation` symbols and that aren’t
-// forced to render as emoji by a variation selector).
-const emojiRegexText = require('emoji-regex/text.js');
-```
-
-Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes:
-
-```js
-const emojiRegexRGI = require('emoji-regex/es2015/RGI_Emoji.js');
-const emojiRegex = require('emoji-regex/es2015/index.js');
-const emojiRegexText = require('emoji-regex/es2015/text.js');
-```
-
-## For maintainers
-
-### How to update emoji-regex after new Unicode Standard releases
-
-1. Update the Unicode data dependency in `package.json` by running the following commands:
-
- ```sh
- # Example: updating from Unicode v12 to Unicode v13.
- npm uninstall @unicode/unicode-12.0.0
- npm install @unicode/unicode-13.0.0 --save-dev
- ````
-
-1. Generate the new output:
-
- ```sh
- npm run build
- ```
-
-1. Verify that tests still pass:
-
- ```sh
- npm test
- ```
-
-1. Send a pull request with the changes, and get it reviewed & merged.
-
-1. On the `main` branch, bump the emoji-regex version number in `package.json`:
-
- ```sh
- npm version patch -m 'Release v%s'
- ```
-
- Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
-
- Note that this produces a Git commit + tag.
-
-1. Push the release commit and tag:
-
- ```sh
- git push
- ```
-
- Our CI then automatically publishes the new release to npm.
-
-## Author
-
-| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|
-| [Mathias Bynens](https://mathiasbynens.be/) |
-
-## License
-
-_emoji-regex_ is available under the [MIT](https://mths.be/mit) license.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.d.ts b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.d.ts
deleted file mode 100644
index 89a651fb..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare module 'emoji-regex/RGI_Emoji' {
- function emojiRegex(): RegExp;
-
- export = emojiRegex;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.js b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.js
deleted file mode 100644
index 3fbe9241..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/RGI_Emoji.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
- // https://mths.be/emoji
- return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]/g;
-};
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/RGI_Emoji.d.ts b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/RGI_Emoji.d.ts
deleted file mode 100644
index bf0f154b..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/RGI_Emoji.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare module 'emoji-regex/es2015/RGI_Emoji' {
- function emojiRegex(): RegExp;
-
- export = emojiRegex;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/RGI_Emoji.js b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/RGI_Emoji.js
deleted file mode 100644
index ecf32f17..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/RGI_Emoji.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = () => {
- // https://mths.be/emoji
- return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074}|\u{E0065}\u{E006E}\u{E0067})\u{E007F}|(?:\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FC}-\u{1F3FF}]|\u{1F468}(?:\u{1F3FB}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FF}]|\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]))?|[\u{1F3FC}-\u{1F3FF}]\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FF}]|\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC})?|(?:\u{1F469}(?:\u{1F3FB}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F3FC}-\u{1F3FF}]\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}]))|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]\u200D\u{1F91D}\u200D\u{1F9D1})[\u{1F3FB}-\u{1F3FF}]|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F469}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FE}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FD}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FC}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F9D1}(?:\u200D(?:\u{1F91D}\u200D\u{1F9D1}|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FE}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FD}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FC}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F9D1}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\u{1F636}\u200D\u{1F32B}|\u{1F3F3}\uFE0F\u200D\u26A7|\u{1F43B}\u200D\u2744|(?:[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\uFE0F\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u{1F3F4}\u200D\u2620|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}]\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F202}\u{1F237}\u{1F321}\u{1F324}-\u{1F32C}\u{1F336}\u{1F37D}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}\u{1F39F}\u{1F3CD}\u{1F3CE}\u{1F3D4}-\u{1F3DF}\u{1F3F5}\u{1F3F7}\u{1F43F}\u{1F4FD}\u{1F549}\u{1F54A}\u{1F56F}\u{1F570}\u{1F573}\u{1F576}-\u{1F579}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}\u{1F6CB}\u{1F6CD}-\u{1F6CF}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6F0}\u{1F6F3}])\uFE0F|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}\u200D\u{1F466}|\u{1F635}\u200D\u{1F4AB}|\u{1F62E}\u200D\u{1F4A8}|\u{1F415}\u200D\u{1F9BA}|\u{1F9D1}(?:\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC}|\u{1F3FB})?|\u{1F469}(?:\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC}|\u{1F3FB})?|\u{1F1FD}\u{1F1F0}|\u{1F1F6}\u{1F1E6}|\u{1F1F4}\u{1F1F2}|\u{1F408}\u200D\u2B1B|\u2764\uFE0F\u200D[\u{1F525}\u{1FA79}]|\u{1F441}\uFE0F|\u{1F3F3}\uFE0F|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\uFE0F\u{1F3FB}-\u{1F3FF}]|\u{1F3F4}|[\u270A\u270B\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F57A}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F934}\u{1F936}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}\u{1F9D3}\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270C\u270D\u{1F574}\u{1F590}][\uFE0F\u{1F3FB}-\u{1F3FF}]|[\u270A\u270B\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F408}\u{1F415}\u{1F43B}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F57A}\u{1F595}\u{1F596}\u{1F62E}\u{1F635}\u{1F636}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F934}\u{1F936}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}\u{1F9D3}\u{1F9D5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}]|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F384}\u{1F386}-\u{1F393}\u{1F3A0}-\u{1F3C1}\u{1F3C5}\u{1F3C6}\u{1F3C8}\u{1F3C9}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F8}-\u{1F407}\u{1F409}-\u{1F414}\u{1F416}-\u{1F43A}\u{1F43C}-\u{1F43E}\u{1F440}\u{1F444}\u{1F445}\u{1F451}-\u{1F465}\u{1F46A}\u{1F479}-\u{1F47B}\u{1F47D}-\u{1F480}\u{1F484}\u{1F488}-\u{1F48E}\u{1F490}\u{1F492}-\u{1F4A9}\u{1F4AB}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F5A4}\u{1F5FB}-\u{1F62D}\u{1F62F}-\u{1F634}\u{1F637}-\u{1F644}\u{1F648}-\u{1F64A}\u{1F680}-\u{1F6A2}\u{1F6A4}-\u{1F6B3}\u{1F6B7}-\u{1F6BF}\u{1F6C1}-\u{1F6C5}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D7}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F90D}\u{1F90E}\u{1F910}-\u{1F917}\u{1F91D}\u{1F920}-\u{1F925}\u{1F927}-\u{1F92F}\u{1F93A}\u{1F93F}-\u{1F945}\u{1F947}-\u{1F976}\u{1F978}\u{1F97A}-\u{1F9B4}\u{1F9B7}\u{1F9BA}\u{1F9BC}-\u{1F9CB}\u{1F9D0}\u{1F9E0}-\u{1F9FF}\u{1FA70}-\u{1FA74}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA86}\u{1FA90}-\u{1FAA8}\u{1FAB0}-\u{1FAB6}\u{1FAC0}-\u{1FAC2}\u{1FAD0}-\u{1FAD6}]/gu;
-};
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/index.d.ts
deleted file mode 100644
index 823dfa65..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare module 'emoji-regex/es2015' {
- function emojiRegex(): RegExp;
-
- export = emojiRegex;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/index.js b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/index.js
deleted file mode 100644
index 1a4fc8d0..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = () => {
- // https://mths.be/emoji
- return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074}|\u{E0065}\u{E006E}\u{E0067})\u{E007F}|(?:\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FC}-\u{1F3FF}]|\u{1F468}(?:\u{1F3FB}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FF}]|\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]))?|[\u{1F3FC}-\u{1F3FF}]\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FF}]|\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC})?|(?:\u{1F469}(?:\u{1F3FB}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F3FC}-\u{1F3FF}]\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}]))|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]\u200D\u{1F91D}\u200D\u{1F9D1})[\u{1F3FB}-\u{1F3FF}]|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F469}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FE}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FD}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FC}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F9D1}(?:\u200D(?:\u{1F91D}\u200D\u{1F9D1}|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FE}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FD}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FC}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F9D1}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\u{1F636}\u200D\u{1F32B}|\u{1F3F3}\uFE0F\u200D\u26A7|\u{1F43B}\u200D\u2744|(?:[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\uFE0F\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u{1F3F4}\u200D\u2620|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}]\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F202}\u{1F237}\u{1F321}\u{1F324}-\u{1F32C}\u{1F336}\u{1F37D}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}\u{1F39F}\u{1F3CD}\u{1F3CE}\u{1F3D4}-\u{1F3DF}\u{1F3F5}\u{1F3F7}\u{1F43F}\u{1F4FD}\u{1F549}\u{1F54A}\u{1F56F}\u{1F570}\u{1F573}\u{1F576}-\u{1F579}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}\u{1F6CB}\u{1F6CD}-\u{1F6CF}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6F0}\u{1F6F3}])\uFE0F|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}\u200D\u{1F466}|\u{1F635}\u200D\u{1F4AB}|\u{1F62E}\u200D\u{1F4A8}|\u{1F415}\u200D\u{1F9BA}|\u{1F9D1}(?:\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC}|\u{1F3FB})?|\u{1F469}(?:\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC}|\u{1F3FB})?|\u{1F1FD}\u{1F1F0}|\u{1F1F6}\u{1F1E6}|\u{1F1F4}\u{1F1F2}|\u{1F408}\u200D\u2B1B|\u2764\uFE0F\u200D[\u{1F525}\u{1FA79}]|\u{1F441}\uFE0F|\u{1F3F3}\uFE0F|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\uFE0F\u{1F3FB}-\u{1F3FF}]|\u{1F3F4}|[\u270A\u270B\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F57A}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F934}\u{1F936}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}\u{1F9D3}\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270C\u270D\u{1F574}\u{1F590}][\uFE0F\u{1F3FB}-\u{1F3FF}]|[\u270A\u270B\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F408}\u{1F415}\u{1F43B}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F57A}\u{1F595}\u{1F596}\u{1F62E}\u{1F635}\u{1F636}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F934}\u{1F936}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}\u{1F9D3}\u{1F9D5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}]|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F384}\u{1F386}-\u{1F393}\u{1F3A0}-\u{1F3C1}\u{1F3C5}\u{1F3C6}\u{1F3C8}\u{1F3C9}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F8}-\u{1F407}\u{1F409}-\u{1F414}\u{1F416}-\u{1F43A}\u{1F43C}-\u{1F43E}\u{1F440}\u{1F444}\u{1F445}\u{1F451}-\u{1F465}\u{1F46A}\u{1F479}-\u{1F47B}\u{1F47D}-\u{1F480}\u{1F484}\u{1F488}-\u{1F48E}\u{1F490}\u{1F492}-\u{1F4A9}\u{1F4AB}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F5A4}\u{1F5FB}-\u{1F62D}\u{1F62F}-\u{1F634}\u{1F637}-\u{1F644}\u{1F648}-\u{1F64A}\u{1F680}-\u{1F6A2}\u{1F6A4}-\u{1F6B3}\u{1F6B7}-\u{1F6BF}\u{1F6C1}-\u{1F6C5}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D7}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F90D}\u{1F90E}\u{1F910}-\u{1F917}\u{1F91D}\u{1F920}-\u{1F925}\u{1F927}-\u{1F92F}\u{1F93A}\u{1F93F}-\u{1F945}\u{1F947}-\u{1F976}\u{1F978}\u{1F97A}-\u{1F9B4}\u{1F9B7}\u{1F9BA}\u{1F9BC}-\u{1F9CB}\u{1F9D0}\u{1F9E0}-\u{1F9FF}\u{1FA70}-\u{1FA74}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA86}\u{1FA90}-\u{1FAA8}\u{1FAB0}-\u{1FAB6}\u{1FAC0}-\u{1FAC2}\u{1FAD0}-\u{1FAD6}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D7}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F978}\u{1F97A}-\u{1F9CB}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA74}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA86}\u{1FA90}-\u{1FAA8}\u{1FAB0}-\u{1FAB6}\u{1FAC0}-\u{1FAC2}\u{1FAD0}-\u{1FAD6}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}-\u{1F6D7}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F978}\u{1F97A}-\u{1F9CB}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA74}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA86}\u{1FA90}-\u{1FAA8}\u{1FAB0}-\u{1FAB6}\u{1FAC0}-\u{1FAC2}\u{1FAD0}-\u{1FAD6}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu;
-};
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/text.d.ts b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/text.d.ts
deleted file mode 100644
index ccc2f9ad..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/text.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare module 'emoji-regex/es2015/text' {
- function emojiRegex(): RegExp;
-
- export = emojiRegex;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/text.js b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/text.js
deleted file mode 100644
index 8e9f9857..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/es2015/text.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = () => {
- // https://mths.be/emoji
- return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074}|\u{E0065}\u{E006E}\u{E0067})\u{E007F}|(?:\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|(?:\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}|\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FC}-\u{1F3FF}]|\u{1F468}(?:\u{1F3FB}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FF}]|\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]))?|[\u{1F3FC}-\u{1F3FF}]\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FF}]|\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC})?|(?:\u{1F469}(?:\u{1F3FB}\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F3FC}-\u{1F3FF}]\u200D\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}]))|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]\u200D\u{1F91D}\u200D\u{1F9D1})[\u{1F3FB}-\u{1F3FF}]|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F469}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FE}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FD}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FC}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F9D1}(?:\u200D(?:\u{1F91D}\u200D\u{1F9D1}|[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FE}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FD}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FC}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F37C}\u{1F384}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F9D1}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\u{1F636}\u200D\u{1F32B}|\u{1F3F3}\uFE0F\u200D\u26A7|\u{1F43B}\u200D\u2744|(?:[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\uFE0F\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u{1F3F4}\u200D\u2620|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}]\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F202}\u{1F237}\u{1F321}\u{1F324}-\u{1F32C}\u{1F336}\u{1F37D}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}\u{1F39F}\u{1F3CD}\u{1F3CE}\u{1F3D4}-\u{1F3DF}\u{1F3F5}\u{1F3F7}\u{1F43F}\u{1F4FD}\u{1F549}\u{1F54A}\u{1F56F}\u{1F570}\u{1F573}\u{1F576}-\u{1F579}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}\u{1F6CB}\u{1F6CD}-\u{1F6CF}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6F0}\u{1F6F3}])\uFE0F|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}\u200D\u{1F466}|\u{1F635}\u200D\u{1F4AB}|\u{1F62E}\u200D\u{1F4A8}|\u{1F415}\u200D\u{1F9BA}|\u{1F9D1}(?:\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC}|\u{1F3FB})?|\u{1F469}(?:\u{1F3FF}|\u{1F3FE}|\u{1F3FD}|\u{1F3FC}|\u{1F3FB})?|\u{1F1FD}\u{1F1F0}|\u{1F1F6}\u{1F1E6}|\u{1F1F4}\u{1F1F2}|\u{1F408}\u200D\u2B1B|\u2764\uFE0F\u200D[\u{1F525}\u{1FA79}]|\u{1F441}\uFE0F|\u{1F3F3}\uFE0F|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\uFE0F\u{1F3FB}-\u{1F3FF}]|\u{1F3F4}|[\u270A\u270B\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F57A}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F934}\u{1F936}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}\u{1F9D3}\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270C\u270D\u{1F574}\u{1F590}][\uFE0F\u{1F3FB}-\u{1F3FF}]|[\u270A\u270B\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F408}\u{1F415}\u{1F43B}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F57A}\u{1F595}\u{1F596}\u{1F62E}\u{1F635}\u{1F636}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90C}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F934}\u{1F936}\u{1F977}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}\u{1F9D3}\u{1F9D5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D4}\u{1F9D6}-\u{1F9DD}]|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F384}\u{1F386}-\u{1F393}\u{1F3A0}-\u{1F3C1}\u{1F3C5}\u{1F3C6}\u{1F3C8}\u{1F3C9}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F8}-\u{1F407}\u{1F409}-\u{1F414}\u{1F416}-\u{1F43A}\u{1F43C}-\u{1F43E}\u{1F440}\u{1F444}\u{1F445}\u{1F451}-\u{1F465}\u{1F46A}\u{1F479}-\u{1F47B}\u{1F47D}-\u{1F480}\u{1F484}\u{1F488}-\u{1F48E}\u{1F490}\u{1F492}-\u{1F4A9}\u{1F4AB}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F5A4}\u{1F5FB}-\u{1F62D}\u{1F62F}-\u{1F634}\u{1F637}-\u{1F644}\u{1F648}-\u{1F64A}\u{1F680}-\u{1F6A2}\u{1F6A4}-\u{1F6B3}\u{1F6B7}-\u{1F6BF}\u{1F6C1}-\u{1F6C5}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D7}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F90D}\u{1F90E}\u{1F910}-\u{1F917}\u{1F91D}\u{1F920}-\u{1F925}\u{1F927}-\u{1F92F}\u{1F93A}\u{1F93F}-\u{1F945}\u{1F947}-\u{1F976}\u{1F978}\u{1F97A}-\u{1F9B4}\u{1F9B7}\u{1F9BA}\u{1F9BC}-\u{1F9CB}\u{1F9D0}\u{1F9E0}-\u{1F9FF}\u{1FA70}-\u{1FA74}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA86}\u{1FA90}-\u{1FAA8}\u{1FAB0}-\u{1FAB6}\u{1FAC0}-\u{1FAC2}\u{1FAD0}-\u{1FAD6}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}-\u{1F6D7}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F978}\u{1F97A}-\u{1F9CB}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA74}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA86}\u{1FA90}-\u{1FAA8}\u{1FAB0}-\u{1FAB6}\u{1FAC0}-\u{1FAC2}\u{1FAD0}-\u{1FAD6}]\uFE0F?/gu;
-};
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/index.d.ts
deleted file mode 100644
index 8f235c9a..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare module 'emoji-regex' {
- function emojiRegex(): RegExp;
-
- export = emojiRegex;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/index.js b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/index.js
deleted file mode 100644
index c0490d4c..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
- // https://mths.be/emoji
- return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
-};
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/package.json b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/package.json
deleted file mode 100644
index eac892a1..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "emoji-regex",
- "version": "9.2.2",
- "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
- "homepage": "https://mths.be/emoji-regex",
- "main": "index.js",
- "types": "index.d.ts",
- "keywords": [
- "unicode",
- "regex",
- "regexp",
- "regular expressions",
- "code points",
- "symbols",
- "characters",
- "emoji"
- ],
- "license": "MIT",
- "author": {
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/mathiasbynens/emoji-regex.git"
- },
- "bugs": "https://github.com/mathiasbynens/emoji-regex/issues",
- "files": [
- "LICENSE-MIT.txt",
- "index.js",
- "index.d.ts",
- "RGI_Emoji.js",
- "RGI_Emoji.d.ts",
- "text.js",
- "text.d.ts",
- "es2015"
- ],
- "scripts": {
- "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src es2015_types -D -d ./es2015; node script/inject-sequences.js",
- "test": "mocha",
- "test:watch": "npm run test -- --watch"
- },
- "devDependencies": {
- "@babel/cli": "^7.4.4",
- "@babel/core": "^7.4.4",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/preset-env": "^7.4.4",
- "@unicode/unicode-13.0.0": "^1.0.3",
- "mocha": "^6.1.4",
- "regexgen": "^1.3.0"
- }
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/text.d.ts b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/text.d.ts
deleted file mode 100644
index c3a01254..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/text.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare module 'emoji-regex/text' {
- function emojiRegex(): RegExp;
-
- export = emojiRegex;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/text.js b/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/text.js
deleted file mode 100644
index 9bc63ce7..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/emoji-regex/text.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
- // https://mths.be/emoji
- return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F?/g;
-};
diff --git a/website/node_modules/@isaacs/cliui/node_modules/string-width/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/string-width/index.d.ts
deleted file mode 100644
index aed9fdff..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/string-width/index.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-export interface Options {
- /**
- Count [ambiguous width characters](https://www.unicode.org/reports/tr11/#Ambiguous) as having narrow width (count of 1) instead of wide width (count of 2).
-
- @default true
- */
- readonly ambiguousIsNarrow: boolean;
-}
-
-/**
-Get the visual width of a string - the number of columns required to display it.
-
-Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
-
-@example
-```
-import stringWidth from 'string-width';
-
-stringWidth('a');
-//=> 1
-
-stringWidth('古');
-//=> 2
-
-stringWidth('\u001B[1m古\u001B[22m');
-//=> 2
-```
-*/
-export default function stringWidth(string: string, options?: Options): number;
diff --git a/website/node_modules/@isaacs/cliui/node_modules/string-width/index.js b/website/node_modules/@isaacs/cliui/node_modules/string-width/index.js
deleted file mode 100644
index 9294488f..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/string-width/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import stripAnsi from 'strip-ansi';
-import eastAsianWidth from 'eastasianwidth';
-import emojiRegex from 'emoji-regex';
-
-export default function stringWidth(string, options = {}) {
- if (typeof string !== 'string' || string.length === 0) {
- return 0;
- }
-
- options = {
- ambiguousIsNarrow: true,
- ...options
- };
-
- string = stripAnsi(string);
-
- if (string.length === 0) {
- return 0;
- }
-
- string = string.replace(emojiRegex(), ' ');
-
- const ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;
- let width = 0;
-
- for (const character of string) {
- const codePoint = character.codePointAt(0);
-
- // Ignore control characters
- if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {
- continue;
- }
-
- // Ignore combining characters
- if (codePoint >= 0x300 && codePoint <= 0x36F) {
- continue;
- }
-
- const code = eastAsianWidth.eastAsianWidth(character);
- switch (code) {
- case 'F':
- case 'W':
- width += 2;
- break;
- case 'A':
- width += ambiguousCharacterWidth;
- break;
- default:
- width += 1;
- }
- }
-
- return width;
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/string-width/license b/website/node_modules/@isaacs/cliui/node_modules/string-width/license
deleted file mode 100644
index fa7ceba3..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/string-width/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (https://sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/string-width/package.json b/website/node_modules/@isaacs/cliui/node_modules/string-width/package.json
deleted file mode 100644
index f46d6770..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/string-width/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "string-width",
- "version": "5.1.2",
- "description": "Get the visual width of a string - the number of columns required to display it",
- "license": "MIT",
- "repository": "sindresorhus/string-width",
- "funding": "https://github.com/sponsors/sindresorhus",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "type": "module",
- "exports": "./index.js",
- "engines": {
- "node": ">=12"
- },
- "scripts": {
- "test": "xo && ava && tsd"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "string",
- "character",
- "unicode",
- "width",
- "visual",
- "column",
- "columns",
- "fullwidth",
- "full-width",
- "full",
- "ansi",
- "escape",
- "codes",
- "cli",
- "command-line",
- "terminal",
- "console",
- "cjk",
- "chinese",
- "japanese",
- "korean",
- "fixed-width"
- ],
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "devDependencies": {
- "ava": "^3.15.0",
- "tsd": "^0.14.0",
- "xo": "^0.38.2"
- }
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/string-width/readme.md b/website/node_modules/@isaacs/cliui/node_modules/string-width/readme.md
deleted file mode 100644
index 52910df1..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/string-width/readme.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# string-width
-
-> Get the visual width of a string - the number of columns required to display it
-
-Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
-
-Useful to be able to measure the actual width of command-line output.
-
-## Install
-
-```
-$ npm install string-width
-```
-
-## Usage
-
-```js
-import stringWidth from 'string-width';
-
-stringWidth('a');
-//=> 1
-
-stringWidth('古');
-//=> 2
-
-stringWidth('\u001B[1m古\u001B[22m');
-//=> 2
-```
-
-## API
-
-### stringWidth(string, options?)
-
-#### string
-
-Type: `string`
-
-The string to be counted.
-
-#### options
-
-Type: `object`
-
-##### ambiguousIsNarrow
-
-Type: `boolean`\
-Default: `false`
-
-Count [ambiguous width characters](https://www.unicode.org/reports/tr11/#Ambiguous) as having narrow width (count of 1) instead of wide width (count of 2).
-
-## Related
-
-- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module
-- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string
-- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string
-
----
-
-
diff --git a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.d.ts
deleted file mode 100644
index 44e954d0..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
-Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string.
-
-@example
-```
-import stripAnsi from 'strip-ansi';
-
-stripAnsi('\u001B[4mUnicorn\u001B[0m');
-//=> 'Unicorn'
-
-stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007');
-//=> 'Click'
-```
-*/
-export default function stripAnsi(string: string): string;
diff --git a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.js b/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.js
deleted file mode 100644
index ba19750e..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import ansiRegex from 'ansi-regex';
-
-const regex = ansiRegex();
-
-export default function stripAnsi(string) {
- if (typeof string !== 'string') {
- throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
- }
-
- // Even though the regex is global, we don't need to reset the `.lastIndex`
- // because unlike `.exec()` and `.test()`, `.replace()` does it automatically
- // and doing it manually has a performance penalty.
- return string.replace(regex, '');
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/license b/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/license
deleted file mode 100644
index fa7ceba3..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (https://sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/package.json b/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/package.json
deleted file mode 100644
index e1f455c3..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "name": "strip-ansi",
- "version": "7.1.0",
- "description": "Strip ANSI escape codes from a string",
- "license": "MIT",
- "repository": "chalk/strip-ansi",
- "funding": "https://github.com/chalk/strip-ansi?sponsor=1",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "type": "module",
- "exports": "./index.js",
- "engines": {
- "node": ">=12"
- },
- "scripts": {
- "test": "xo && ava && tsd"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "strip",
- "trim",
- "remove",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "devDependencies": {
- "ava": "^3.15.0",
- "tsd": "^0.17.0",
- "xo": "^0.44.0"
- }
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/readme.md b/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/readme.md
deleted file mode 100644
index 56278510..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/strip-ansi/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# strip-ansi
-
-> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string
-
-## Install
-
-```
-$ npm install strip-ansi
-```
-
-## Usage
-
-```js
-import stripAnsi from 'strip-ansi';
-
-stripAnsi('\u001B[4mUnicorn\u001B[0m');
-//=> 'Unicorn'
-
-stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007');
-//=> 'Click'
-```
-
-## strip-ansi for enterprise
-
-Available as part of the Tidelift Subscription.
-
-The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
-
-## Related
-
-- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
-- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module
-- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
-- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
-- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
diff --git a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/index.d.ts b/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/index.d.ts
deleted file mode 100644
index 95471cad..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/index.d.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-export type Options = {
- /**
- By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width.
-
- @default false
- */
- readonly hard?: boolean;
-
- /**
- By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary.
-
- @default true
- */
- readonly wordWrap?: boolean;
-
- /**
- Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim.
-
- @default true
- */
- readonly trim?: boolean;
-};
-
-/**
-Wrap words to the specified column width.
-
-@param string - String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). Newline characters will be normalized to `\n`.
-@param columns - Number of columns to wrap the text to.
-
-@example
-```
-import chalk from 'chalk';
-import wrapAnsi from 'wrap-ansi';
-
-const input = 'The quick brown ' + chalk.red('fox jumped over ') +
- 'the lazy ' + chalk.green('dog and then ran away with the unicorn.');
-
-console.log(wrapAnsi(input, 20));
-```
-*/
-export default function wrapAnsi(string: string, columns: number, options?: Options): string;
diff --git a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/index.js b/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/index.js
deleted file mode 100755
index d80c74c1..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/index.js
+++ /dev/null
@@ -1,214 +0,0 @@
-import stringWidth from 'string-width';
-import stripAnsi from 'strip-ansi';
-import ansiStyles from 'ansi-styles';
-
-const ESCAPES = new Set([
- '\u001B',
- '\u009B',
-]);
-
-const END_CODE = 39;
-const ANSI_ESCAPE_BELL = '\u0007';
-const ANSI_CSI = '[';
-const ANSI_OSC = ']';
-const ANSI_SGR_TERMINATOR = 'm';
-const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
-
-const wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
-const wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;
-
-// Calculate the length of words split on ' ', ignoring
-// the extra characters added by ansi escape codes
-const wordLengths = string => string.split(' ').map(character => stringWidth(character));
-
-// Wrap a long word across multiple rows
-// Ansi escape codes do not count towards length
-const wrapWord = (rows, word, columns) => {
- const characters = [...word];
-
- let isInsideEscape = false;
- let isInsideLinkEscape = false;
- let visible = stringWidth(stripAnsi(rows[rows.length - 1]));
-
- for (const [index, character] of characters.entries()) {
- const characterLength = stringWidth(character);
-
- if (visible + characterLength <= columns) {
- rows[rows.length - 1] += character;
- } else {
- rows.push(character);
- visible = 0;
- }
-
- if (ESCAPES.has(character)) {
- isInsideEscape = true;
- isInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);
- }
-
- if (isInsideEscape) {
- if (isInsideLinkEscape) {
- if (character === ANSI_ESCAPE_BELL) {
- isInsideEscape = false;
- isInsideLinkEscape = false;
- }
- } else if (character === ANSI_SGR_TERMINATOR) {
- isInsideEscape = false;
- }
-
- continue;
- }
-
- visible += characterLength;
-
- if (visible === columns && index < characters.length - 1) {
- rows.push('');
- visible = 0;
- }
- }
-
- // It's possible that the last row we copy over is only
- // ansi escape characters, handle this edge-case
- if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {
- rows[rows.length - 2] += rows.pop();
- }
-};
-
-// Trims spaces from a string ignoring invisible sequences
-const stringVisibleTrimSpacesRight = string => {
- const words = string.split(' ');
- let last = words.length;
-
- while (last > 0) {
- if (stringWidth(words[last - 1]) > 0) {
- break;
- }
-
- last--;
- }
-
- if (last === words.length) {
- return string;
- }
-
- return words.slice(0, last).join(' ') + words.slice(last).join('');
-};
-
-// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode
-//
-// 'hard' will never allow a string to take up more than columns characters
-//
-// 'soft' allows long words to expand past the column length
-const exec = (string, columns, options = {}) => {
- if (options.trim !== false && string.trim() === '') {
- return '';
- }
-
- let returnValue = '';
- let escapeCode;
- let escapeUrl;
-
- const lengths = wordLengths(string);
- let rows = [''];
-
- for (const [index, word] of string.split(' ').entries()) {
- if (options.trim !== false) {
- rows[rows.length - 1] = rows[rows.length - 1].trimStart();
- }
-
- let rowLength = stringWidth(rows[rows.length - 1]);
-
- if (index !== 0) {
- if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
- // If we start with a new word but the current row length equals the length of the columns, add a new row
- rows.push('');
- rowLength = 0;
- }
-
- if (rowLength > 0 || options.trim === false) {
- rows[rows.length - 1] += ' ';
- rowLength++;
- }
- }
-
- // In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'
- if (options.hard && lengths[index] > columns) {
- const remainingColumns = (columns - rowLength);
- const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
- const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
- if (breaksStartingNextLine < breaksStartingThisLine) {
- rows.push('');
- }
-
- wrapWord(rows, word, columns);
- continue;
- }
-
- if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
- if (options.wordWrap === false && rowLength < columns) {
- wrapWord(rows, word, columns);
- continue;
- }
-
- rows.push('');
- }
-
- if (rowLength + lengths[index] > columns && options.wordWrap === false) {
- wrapWord(rows, word, columns);
- continue;
- }
-
- rows[rows.length - 1] += word;
- }
-
- if (options.trim !== false) {
- rows = rows.map(row => stringVisibleTrimSpacesRight(row));
- }
-
- const pre = [...rows.join('\n')];
-
- for (const [index, character] of pre.entries()) {
- returnValue += character;
-
- if (ESCAPES.has(character)) {
- const {groups} = new RegExp(`(?:\\${ANSI_CSI}(?\\d+)m|\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};
- if (groups.code !== undefined) {
- const code = Number.parseFloat(groups.code);
- escapeCode = code === END_CODE ? undefined : code;
- } else if (groups.uri !== undefined) {
- escapeUrl = groups.uri.length === 0 ? undefined : groups.uri;
- }
- }
-
- const code = ansiStyles.codes.get(Number(escapeCode));
-
- if (pre[index + 1] === '\n') {
- if (escapeUrl) {
- returnValue += wrapAnsiHyperlink('');
- }
-
- if (escapeCode && code) {
- returnValue += wrapAnsiCode(code);
- }
- } else if (character === '\n') {
- if (escapeCode && code) {
- returnValue += wrapAnsiCode(escapeCode);
- }
-
- if (escapeUrl) {
- returnValue += wrapAnsiHyperlink(escapeUrl);
- }
- }
- }
-
- return returnValue;
-};
-
-// For each newline, invoke the method separately
-export default function wrapAnsi(string, columns, options) {
- return String(string)
- .normalize()
- .replace(/\r\n/g, '\n')
- .split('\n')
- .map(line => exec(line, columns, options))
- .join('\n');
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/license b/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/license
deleted file mode 100644
index fa7ceba3..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (https://sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/package.json b/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/package.json
deleted file mode 100644
index 198a5dbc..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "wrap-ansi",
- "version": "8.1.0",
- "description": "Wordwrap a string with ANSI escape codes",
- "license": "MIT",
- "repository": "chalk/wrap-ansi",
- "funding": "https://github.com/chalk/wrap-ansi?sponsor=1",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "type": "module",
- "exports": {
- "types": "./index.d.ts",
- "default": "./index.js"
- },
- "engines": {
- "node": ">=12"
- },
- "scripts": {
- "test": "xo && nyc ava && tsd"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "wrap",
- "break",
- "wordwrap",
- "wordbreak",
- "linewrap",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "devDependencies": {
- "ava": "^3.15.0",
- "chalk": "^4.1.2",
- "coveralls": "^3.1.1",
- "has-ansi": "^5.0.1",
- "nyc": "^15.1.0",
- "tsd": "^0.25.0",
- "xo": "^0.44.0"
- }
-}
diff --git a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/readme.md b/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/readme.md
deleted file mode 100644
index 21f6fed7..00000000
--- a/website/node_modules/@isaacs/cliui/node_modules/wrap-ansi/readme.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# wrap-ansi
-
-> Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles)
-
-## Install
-
-```
-$ npm install wrap-ansi
-```
-
-## Usage
-
-```js
-import chalk from 'chalk';
-import wrapAnsi from 'wrap-ansi';
-
-const input = 'The quick brown ' + chalk.red('fox jumped over ') +
- 'the lazy ' + chalk.green('dog and then ran away with the unicorn.');
-
-console.log(wrapAnsi(input, 20));
-```
-
-
-
-## API
-
-### wrapAnsi(string, columns, options?)
-
-Wrap words to the specified column width.
-
-#### string
-
-Type: `string`
-
-String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). Newline characters will be normalized to `\n`.
-
-#### columns
-
-Type: `number`
-
-Number of columns to wrap the text to.
-
-#### options
-
-Type: `object`
-
-##### hard
-
-Type: `boolean`\
-Default: `false`
-
-By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width.
-
-##### wordWrap
-
-Type: `boolean`\
-Default: `true`
-
-By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary.
-
-##### trim
-
-Type: `boolean`\
-Default: `true`
-
-Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim.
-
-## Related
-
-- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes
-- [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal
-- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
-- [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures.
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-- [Benjamin Coe](https://github.com/bcoe)
-
----
-
-
diff --git a/website/node_modules/@isaacs/cliui/package.json b/website/node_modules/@isaacs/cliui/package.json
deleted file mode 100644
index 7a952532..00000000
--- a/website/node_modules/@isaacs/cliui/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "name": "@isaacs/cliui",
- "version": "8.0.2",
- "description": "easily create complex multi-column command-line-interfaces",
- "main": "build/index.cjs",
- "exports": {
- ".": [
- {
- "import": "./index.mjs",
- "require": "./build/index.cjs"
- },
- "./build/index.cjs"
- ]
- },
- "type": "module",
- "module": "./index.mjs",
- "scripts": {
- "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'",
- "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'",
- "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs",
- "test": "c8 mocha ./test/*.cjs",
- "test:esm": "c8 mocha ./test/**/*.mjs",
- "postest": "check",
- "coverage": "c8 report --check-coverage",
- "precompile": "rimraf build",
- "compile": "tsc",
- "postcompile": "npm run build:cjs",
- "build:cjs": "rollup -c",
- "prepare": "npm run compile"
- },
- "repository": "yargs/cliui",
- "standard": {
- "ignore": [
- "**/example/**"
- ],
- "globals": [
- "it"
- ]
- },
- "keywords": [
- "cli",
- "command-line",
- "layout",
- "design",
- "console",
- "wrap",
- "table"
- ],
- "author": "Ben Coe ",
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "devDependencies": {
- "@types/node": "^14.0.27",
- "@typescript-eslint/eslint-plugin": "^4.0.0",
- "@typescript-eslint/parser": "^4.0.0",
- "c8": "^7.3.0",
- "chai": "^4.2.0",
- "chalk": "^4.1.0",
- "cross-env": "^7.0.2",
- "eslint": "^7.6.0",
- "eslint-plugin-import": "^2.22.0",
- "eslint-plugin-node": "^11.1.0",
- "gts": "^3.0.0",
- "mocha": "^10.0.0",
- "rimraf": "^3.0.2",
- "rollup": "^2.23.1",
- "rollup-plugin-ts": "^3.0.2",
- "standardx": "^7.0.0",
- "typescript": "^4.0.0"
- },
- "files": [
- "build",
- "index.mjs",
- "!*.d.ts"
- ],
- "engines": {
- "node": ">=12"
- }
-}
diff --git a/website/node_modules/@jridgewell/gen-mapping/LICENSE b/website/node_modules/@jridgewell/gen-mapping/LICENSE
deleted file mode 100644
index 352f0715..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2022 Justin Ridgewell
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@jridgewell/gen-mapping/README.md b/website/node_modules/@jridgewell/gen-mapping/README.md
deleted file mode 100644
index 4066cdbb..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/README.md
+++ /dev/null
@@ -1,227 +0,0 @@
-# @jridgewell/gen-mapping
-
-> Generate source maps
-
-`gen-mapping` allows you to generate a source map during transpilation or minification.
-With a source map, you're able to trace the original location in the source file, either in Chrome's
-DevTools or using a library like [`@jridgewell/trace-mapping`][trace-mapping].
-
-You may already be familiar with the [`source-map`][source-map] package's `SourceMapGenerator`. This
-provides the same `addMapping` and `setSourceContent` API.
-
-## Installation
-
-```sh
-npm install @jridgewell/gen-mapping
-```
-
-## Usage
-
-```typescript
-import { GenMapping, addMapping, setSourceContent, toEncodedMap, toDecodedMap } from '@jridgewell/gen-mapping';
-
-const map = new GenMapping({
- file: 'output.js',
- sourceRoot: 'https://example.com/',
-});
-
-setSourceContent(map, 'input.js', `function foo() {}`);
-
-addMapping(map, {
- // Lines start at line 1, columns at column 0.
- generated: { line: 1, column: 0 },
- source: 'input.js',
- original: { line: 1, column: 0 },
-});
-
-addMapping(map, {
- generated: { line: 1, column: 9 },
- source: 'input.js',
- original: { line: 1, column: 9 },
- name: 'foo',
-});
-
-assert.deepEqual(toDecodedMap(map), {
- version: 3,
- file: 'output.js',
- names: ['foo'],
- sourceRoot: 'https://example.com/',
- sources: ['input.js'],
- sourcesContent: ['function foo() {}'],
- mappings: [
- [ [0, 0, 0, 0], [9, 0, 0, 9, 0] ]
- ],
-});
-
-assert.deepEqual(toEncodedMap(map), {
- version: 3,
- file: 'output.js',
- names: ['foo'],
- sourceRoot: 'https://example.com/',
- sources: ['input.js'],
- sourcesContent: ['function foo() {}'],
- mappings: 'AAAA,SAASA',
-});
-```
-
-### Smaller Sourcemaps
-
-Not everything needs to be added to a sourcemap, and needless markings can cause signficantly
-larger file sizes. `gen-mapping` exposes `maybeAddSegment`/`maybeAddMapping` APIs that will
-intelligently determine if this marking adds useful information. If not, the marking will be
-skipped.
-
-```typescript
-import { maybeAddMapping } from '@jridgewell/gen-mapping';
-
-const map = new GenMapping();
-
-// Adding a sourceless marking at the beginning of a line isn't useful.
-maybeAddMapping(map, {
- generated: { line: 1, column: 0 },
-});
-
-// Adding a new source marking is useful.
-maybeAddMapping(map, {
- generated: { line: 1, column: 0 },
- source: 'input.js',
- original: { line: 1, column: 0 },
-});
-
-// But adding another marking pointing to the exact same original location isn't, even if the
-// generated column changed.
-maybeAddMapping(map, {
- generated: { line: 1, column: 9 },
- source: 'input.js',
- original: { line: 1, column: 0 },
-});
-
-assert.deepEqual(toEncodedMap(map), {
- version: 3,
- names: [],
- sources: ['input.js'],
- sourcesContent: [null],
- mappings: 'AAAA',
-});
-```
-
-## Benchmarks
-
-```
-node v18.0.0
-
-amp.js.map
-Memory Usage:
-gen-mapping: addSegment 5852872 bytes
-gen-mapping: addMapping 7716042 bytes
-source-map-js 6143250 bytes
-source-map-0.6.1 6124102 bytes
-source-map-0.8.0 6121173 bytes
-Smallest memory usage is gen-mapping: addSegment
-
-Adding speed:
-gen-mapping: addSegment x 441 ops/sec ±2.07% (90 runs sampled)
-gen-mapping: addMapping x 350 ops/sec ±2.40% (86 runs sampled)
-source-map-js: addMapping x 169 ops/sec ±2.42% (80 runs sampled)
-source-map-0.6.1: addMapping x 167 ops/sec ±2.56% (80 runs sampled)
-source-map-0.8.0: addMapping x 168 ops/sec ±2.52% (80 runs sampled)
-Fastest is gen-mapping: addSegment
-
-Generate speed:
-gen-mapping: decoded output x 150,824,370 ops/sec ±0.07% (102 runs sampled)
-gen-mapping: encoded output x 663 ops/sec ±0.22% (98 runs sampled)
-source-map-js: encoded output x 197 ops/sec ±0.45% (84 runs sampled)
-source-map-0.6.1: encoded output x 198 ops/sec ±0.33% (85 runs sampled)
-source-map-0.8.0: encoded output x 197 ops/sec ±0.06% (93 runs sampled)
-Fastest is gen-mapping: decoded output
-
-
-***
-
-
-babel.min.js.map
-Memory Usage:
-gen-mapping: addSegment 37578063 bytes
-gen-mapping: addMapping 37212897 bytes
-source-map-js 47638527 bytes
-source-map-0.6.1 47690503 bytes
-source-map-0.8.0 47470188 bytes
-Smallest memory usage is gen-mapping: addMapping
-
-Adding speed:
-gen-mapping: addSegment x 31.05 ops/sec ±8.31% (43 runs sampled)
-gen-mapping: addMapping x 29.83 ops/sec ±7.36% (51 runs sampled)
-source-map-js: addMapping x 20.73 ops/sec ±6.22% (38 runs sampled)
-source-map-0.6.1: addMapping x 20.03 ops/sec ±10.51% (38 runs sampled)
-source-map-0.8.0: addMapping x 19.30 ops/sec ±8.27% (37 runs sampled)
-Fastest is gen-mapping: addSegment
-
-Generate speed:
-gen-mapping: decoded output x 381,379,234 ops/sec ±0.29% (96 runs sampled)
-gen-mapping: encoded output x 95.15 ops/sec ±2.98% (72 runs sampled)
-source-map-js: encoded output x 15.20 ops/sec ±7.41% (33 runs sampled)
-source-map-0.6.1: encoded output x 16.36 ops/sec ±10.46% (31 runs sampled)
-source-map-0.8.0: encoded output x 16.06 ops/sec ±6.45% (31 runs sampled)
-Fastest is gen-mapping: decoded output
-
-
-***
-
-
-preact.js.map
-Memory Usage:
-gen-mapping: addSegment 416247 bytes
-gen-mapping: addMapping 419824 bytes
-source-map-js 1024619 bytes
-source-map-0.6.1 1146004 bytes
-source-map-0.8.0 1113250 bytes
-Smallest memory usage is gen-mapping: addSegment
-
-Adding speed:
-gen-mapping: addSegment x 13,755 ops/sec ±0.15% (98 runs sampled)
-gen-mapping: addMapping x 13,013 ops/sec ±0.11% (101 runs sampled)
-source-map-js: addMapping x 4,564 ops/sec ±0.21% (98 runs sampled)
-source-map-0.6.1: addMapping x 4,562 ops/sec ±0.11% (99 runs sampled)
-source-map-0.8.0: addMapping x 4,593 ops/sec ±0.11% (100 runs sampled)
-Fastest is gen-mapping: addSegment
-
-Generate speed:
-gen-mapping: decoded output x 379,864,020 ops/sec ±0.23% (93 runs sampled)
-gen-mapping: encoded output x 14,368 ops/sec ±4.07% (82 runs sampled)
-source-map-js: encoded output x 5,261 ops/sec ±0.21% (99 runs sampled)
-source-map-0.6.1: encoded output x 5,124 ops/sec ±0.58% (99 runs sampled)
-source-map-0.8.0: encoded output x 5,434 ops/sec ±0.33% (96 runs sampled)
-Fastest is gen-mapping: decoded output
-
-
-***
-
-
-react.js.map
-Memory Usage:
-gen-mapping: addSegment 975096 bytes
-gen-mapping: addMapping 1102981 bytes
-source-map-js 2918836 bytes
-source-map-0.6.1 2885435 bytes
-source-map-0.8.0 2874336 bytes
-Smallest memory usage is gen-mapping: addSegment
-
-Adding speed:
-gen-mapping: addSegment x 4,772 ops/sec ±0.15% (100 runs sampled)
-gen-mapping: addMapping x 4,456 ops/sec ±0.13% (97 runs sampled)
-source-map-js: addMapping x 1,618 ops/sec ±0.24% (97 runs sampled)
-source-map-0.6.1: addMapping x 1,622 ops/sec ±0.12% (99 runs sampled)
-source-map-0.8.0: addMapping x 1,631 ops/sec ±0.12% (100 runs sampled)
-Fastest is gen-mapping: addSegment
-
-Generate speed:
-gen-mapping: decoded output x 379,107,695 ops/sec ±0.07% (99 runs sampled)
-gen-mapping: encoded output x 5,421 ops/sec ±1.60% (89 runs sampled)
-source-map-js: encoded output x 2,113 ops/sec ±1.81% (98 runs sampled)
-source-map-0.6.1: encoded output x 2,126 ops/sec ±0.10% (100 runs sampled)
-source-map-0.8.0: encoded output x 2,176 ops/sec ±0.39% (98 runs sampled)
-Fastest is gen-mapping: decoded output
-```
-
-[source-map]: https://www.npmjs.com/package/source-map
-[trace-mapping]: https://github.com/jridgewell/trace-mapping
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs b/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs
deleted file mode 100644
index 5d38e383..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs
+++ /dev/null
@@ -1,230 +0,0 @@
-import { SetArray, put, remove } from '@jridgewell/set-array';
-import { encode } from '@jridgewell/sourcemap-codec';
-import { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';
-
-const COLUMN = 0;
-const SOURCES_INDEX = 1;
-const SOURCE_LINE = 2;
-const SOURCE_COLUMN = 3;
-const NAMES_INDEX = 4;
-
-const NO_NAME = -1;
-/**
- * Provides the state to generate a sourcemap.
- */
-class GenMapping {
- constructor({ file, sourceRoot } = {}) {
- this._names = new SetArray();
- this._sources = new SetArray();
- this._sourcesContent = [];
- this._mappings = [];
- this.file = file;
- this.sourceRoot = sourceRoot;
- this._ignoreList = new SetArray();
- }
-}
-/**
- * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
- * with public access modifiers.
- */
-function cast(map) {
- return map;
-}
-function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
- return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
-}
-function addMapping(map, mapping) {
- return addMappingInternal(false, map, mapping);
-}
-/**
- * Same as `addSegment`, but will only add the segment if it generates useful information in the
- * resulting map. This only works correctly if segments are added **in order**, meaning you should
- * not add a segment with a lower generated line/column than one that came before.
- */
-const maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
- return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
-};
-/**
- * Same as `addMapping`, but will only add the mapping if it generates useful information in the
- * resulting map. This only works correctly if mappings are added **in order**, meaning you should
- * not add a mapping with a lower generated line/column than one that came before.
- */
-const maybeAddMapping = (map, mapping) => {
- return addMappingInternal(true, map, mapping);
-};
-/**
- * Adds/removes the content of the source file to the source map.
- */
-function setSourceContent(map, source, content) {
- const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);
- const index = put(sources, source);
- sourcesContent[index] = content;
-}
-function setIgnore(map, source, ignore = true) {
- const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);
- const index = put(sources, source);
- if (index === sourcesContent.length)
- sourcesContent[index] = null;
- if (ignore)
- put(ignoreList, index);
- else
- remove(ignoreList, index);
-}
-/**
- * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-function toDecodedMap(map) {
- const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);
- removeEmptyFinalLines(mappings);
- return {
- version: 3,
- file: map.file || undefined,
- names: names.array,
- sourceRoot: map.sourceRoot || undefined,
- sources: sources.array,
- sourcesContent,
- mappings,
- ignoreList: ignoreList.array,
- };
-}
-/**
- * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-function toEncodedMap(map) {
- const decoded = toDecodedMap(map);
- return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) });
-}
-/**
- * Constructs a new GenMapping, using the already present mappings of the input.
- */
-function fromMap(input) {
- const map = new TraceMap(input);
- const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
- putAll(cast(gen)._names, map.names);
- putAll(cast(gen)._sources, map.sources);
- cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);
- cast(gen)._mappings = decodedMappings(map);
- if (map.ignoreList)
- putAll(cast(gen)._ignoreList, map.ignoreList);
- return gen;
-}
-/**
- * Returns an array of high-level mapping objects for every recorded segment, which could then be
- * passed to the `source-map` library.
- */
-function allMappings(map) {
- const out = [];
- const { _mappings: mappings, _sources: sources, _names: names } = cast(map);
- for (let i = 0; i < mappings.length; i++) {
- const line = mappings[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const generated = { line: i + 1, column: seg[COLUMN] };
- let source = undefined;
- let original = undefined;
- let name = undefined;
- if (seg.length !== 1) {
- source = sources.array[seg[SOURCES_INDEX]];
- original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };
- if (seg.length === 5)
- name = names.array[seg[NAMES_INDEX]];
- }
- out.push({ generated, source, original, name });
- }
- }
- return out;
-}
-// This split declaration is only so that terser can elminiate the static initialization block.
-function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
- const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);
- const line = getLine(mappings, genLine);
- const index = getColumnIndex(line, genColumn);
- if (!source) {
- if (skipable && skipSourceless(line, index))
- return;
- return insert(line, index, [genColumn]);
- }
- const sourcesIndex = put(sources, source);
- const namesIndex = name ? put(names, name) : NO_NAME;
- if (sourcesIndex === sourcesContent.length)
- sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;
- if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
- return;
- }
- return insert(line, index, name
- ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
- : [genColumn, sourcesIndex, sourceLine, sourceColumn]);
-}
-function getLine(mappings, index) {
- for (let i = mappings.length; i <= index; i++) {
- mappings[i] = [];
- }
- return mappings[index];
-}
-function getColumnIndex(line, genColumn) {
- let index = line.length;
- for (let i = index - 1; i >= 0; index = i--) {
- const current = line[i];
- if (genColumn >= current[COLUMN])
- break;
- }
- return index;
-}
-function insert(array, index, value) {
- for (let i = array.length; i > index; i--) {
- array[i] = array[i - 1];
- }
- array[index] = value;
-}
-function removeEmptyFinalLines(mappings) {
- const { length } = mappings;
- let len = length;
- for (let i = len - 1; i >= 0; len = i, i--) {
- if (mappings[i].length > 0)
- break;
- }
- if (len < length)
- mappings.length = len;
-}
-function putAll(setarr, array) {
- for (let i = 0; i < array.length; i++)
- put(setarr, array[i]);
-}
-function skipSourceless(line, index) {
- // The start of a line is already sourceless, so adding a sourceless segment to the beginning
- // doesn't generate any useful information.
- if (index === 0)
- return true;
- const prev = line[index - 1];
- // If the previous segment is also sourceless, then adding another sourceless segment doesn't
- // genrate any new information. Else, this segment will end the source/named segment and point to
- // a sourceless position, which is useful.
- return prev.length === 1;
-}
-function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
- // A source/named segment at the start of a line gives position at that genColumn
- if (index === 0)
- return false;
- const prev = line[index - 1];
- // If the previous segment is sourceless, then we're transitioning to a source.
- if (prev.length === 1)
- return false;
- // If the previous segment maps to the exact same source position, then this segment doesn't
- // provide any new position information.
- return (sourcesIndex === prev[SOURCES_INDEX] &&
- sourceLine === prev[SOURCE_LINE] &&
- sourceColumn === prev[SOURCE_COLUMN] &&
- namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));
-}
-function addMappingInternal(skipable, map, mapping) {
- const { generated, source, original, name, content } = mapping;
- if (!source) {
- return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);
- }
- return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);
-}
-
-export { GenMapping, addMapping, addSegment, allMappings, fromMap, maybeAddMapping, maybeAddSegment, setIgnore, setSourceContent, toDecodedMap, toEncodedMap };
-//# sourceMappingURL=gen-mapping.mjs.map
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map b/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map
deleted file mode 100644
index 6290b970..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"gen-mapping.mjs","sources":["../src/sourcemap-segment.ts","../src/gen-mapping.ts"],"sourcesContent":["type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n","import { SetArray, put, remove } from '@jridgewell/set-array';\nimport { encode } from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type { SourceMapInput } from '@jridgewell/trace-mapping';\nimport type { SourceMapSegment } from './sourcemap-segment';\nimport type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types';\n\nexport type { DecodedSourceMap, EncodedSourceMap, Mapping };\n\nexport type Options = {\n file?: string | null;\n sourceRoot?: string | null;\n};\n\nconst NO_NAME = -1;\n\n/**\n * Provides the state to generate a sourcemap.\n */\nexport class GenMapping {\n private declare _names: SetArray;\n private declare _sources: SetArray;\n private declare _sourcesContent: (string | null)[];\n private declare _mappings: SourceMapSegment[][];\n private declare _ignoreList: SetArray;\n declare file: string | null | undefined;\n declare sourceRoot: string | null | undefined;\n\n constructor({ file, sourceRoot }: Options = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n}\n\ninterface PublicMap {\n _names: GenMapping['_names'];\n _sources: GenMapping['_sources'];\n _sourcesContent: GenMapping['_sourcesContent'];\n _mappings: GenMapping['_mappings'];\n _ignoreList: GenMapping['_ignoreList'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: null,\n sourceLine?: null,\n sourceColumn?: null,\n name?: null,\n content?: null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name?: null,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name: string,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: string | null,\n sourceLine?: number | null,\n sourceColumn?: number | null,\n name?: string | null,\n content?: string | null,\n): void {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n}\n\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: null;\n original?: null;\n name?: null;\n content?: null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name?: null;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name: string;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: string | null;\n original?: Pos | null;\n name?: string | null;\n content?: string | null;\n },\n): void {\n return addMappingInternal(false, map, mapping as Parameters[2]);\n}\n\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nexport const maybeAddSegment: typeof addSegment = (\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n};\n\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nexport const maybeAddMapping: typeof addMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping as Parameters[2]);\n};\n\n/**\n * Adds/removes the content of the source file to the source map.\n */\nexport function setSourceContent(map: GenMapping, source: string, content: string | null): void {\n const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\n\nexport function setIgnore(map: GenMapping, source: string, ignore = true) {\n const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toDecodedMap(map: GenMapping): DecodedSourceMap {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList,\n } = cast(map);\n removeEmptyFinalLines(mappings);\n\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n ignoreList: ignoreList.array,\n };\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toEncodedMap(map: GenMapping): EncodedSourceMap {\n const decoded = toDecodedMap(map);\n return {\n ...decoded,\n mappings: encode(decoded.mappings as SourceMapSegment[][]),\n };\n}\n\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nexport function fromMap(input: SourceMapInput): GenMapping {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources as string[]);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings'];\n if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList);\n\n return gen;\n}\n\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nexport function allMappings(map: GenMapping): Mapping[] {\n const out: Mapping[] = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source: string | undefined = undefined;\n let original: Pos | undefined = undefined;\n let name: string | undefined = undefined;\n\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n\n out.push({ generated, source, original, name } as Mapping);\n }\n }\n\n return out;\n}\n\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal(\n skipable: boolean,\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: S,\n sourceLine: S extends string ? number : null | undefined,\n sourceColumn: S extends string ? number : null | undefined,\n name: S extends string ? string | null | undefined : null | undefined,\n content: S extends string ? string | null | undefined : null | undefined,\n): void {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n } = cast(map);\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n\n // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source\n // isn't nullish.\n assert(sourceLine);\n assert(sourceColumn);\n\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null;\n\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n\n return insert(\n line,\n index,\n name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn],\n );\n}\n\nfunction assert(_val: unknown): asserts _val is T {\n // noop.\n}\n\nfunction getLine(mappings: SourceMapSegment[][], index: number): SourceMapSegment[] {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n}\n\nfunction getColumnIndex(line: SourceMapSegment[], genColumn: number): number {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\n\nfunction insert(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\nfunction removeEmptyFinalLines(mappings: SourceMapSegment[][]) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\n\nfunction putAll(setarr: SetArray, array: T[]) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\n\nfunction skipSourceless(line: SourceMapSegment[], index: number): boolean {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0) return true;\n\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\n\nfunction skipSource(\n line: SourceMapSegment[],\n index: number,\n sourcesIndex: number,\n sourceLine: number,\n sourceColumn: number,\n namesIndex: number,\n): boolean {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0) return false;\n\n const prev = line[index - 1];\n\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1) return false;\n\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (\n sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)\n );\n}\n\nfunction addMappingInternal(\n skipable: boolean,\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: S;\n original: S extends string ? Pos : null | undefined;\n name: S extends string ? string | null | undefined : null | undefined;\n content: S extends string ? string | null | undefined : null | undefined;\n },\n) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null,\n );\n }\n assert(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source as string,\n original.line - 1,\n original.column,\n name,\n content,\n );\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js b/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
deleted file mode 100644
index 3bf18f3a..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
+++ /dev/null
@@ -1,246 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec'), require('@jridgewell/trace-mapping')) :
- typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec', '@jridgewell/trace-mapping'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec, global.traceMapping));
-})(this, (function (exports, setArray, sourcemapCodec, traceMapping) { 'use strict';
-
- const COLUMN = 0;
- const SOURCES_INDEX = 1;
- const SOURCE_LINE = 2;
- const SOURCE_COLUMN = 3;
- const NAMES_INDEX = 4;
-
- const NO_NAME = -1;
- /**
- * Provides the state to generate a sourcemap.
- */
- class GenMapping {
- constructor({ file, sourceRoot } = {}) {
- this._names = new setArray.SetArray();
- this._sources = new setArray.SetArray();
- this._sourcesContent = [];
- this._mappings = [];
- this.file = file;
- this.sourceRoot = sourceRoot;
- this._ignoreList = new setArray.SetArray();
- }
- }
- /**
- * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
- * with public access modifiers.
- */
- function cast(map) {
- return map;
- }
- function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
- return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
- }
- function addMapping(map, mapping) {
- return addMappingInternal(false, map, mapping);
- }
- /**
- * Same as `addSegment`, but will only add the segment if it generates useful information in the
- * resulting map. This only works correctly if segments are added **in order**, meaning you should
- * not add a segment with a lower generated line/column than one that came before.
- */
- const maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
- return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
- };
- /**
- * Same as `addMapping`, but will only add the mapping if it generates useful information in the
- * resulting map. This only works correctly if mappings are added **in order**, meaning you should
- * not add a mapping with a lower generated line/column than one that came before.
- */
- const maybeAddMapping = (map, mapping) => {
- return addMappingInternal(true, map, mapping);
- };
- /**
- * Adds/removes the content of the source file to the source map.
- */
- function setSourceContent(map, source, content) {
- const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);
- const index = setArray.put(sources, source);
- sourcesContent[index] = content;
- }
- function setIgnore(map, source, ignore = true) {
- const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);
- const index = setArray.put(sources, source);
- if (index === sourcesContent.length)
- sourcesContent[index] = null;
- if (ignore)
- setArray.put(ignoreList, index);
- else
- setArray.remove(ignoreList, index);
- }
- /**
- * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
- function toDecodedMap(map) {
- const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);
- removeEmptyFinalLines(mappings);
- return {
- version: 3,
- file: map.file || undefined,
- names: names.array,
- sourceRoot: map.sourceRoot || undefined,
- sources: sources.array,
- sourcesContent,
- mappings,
- ignoreList: ignoreList.array,
- };
- }
- /**
- * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
- function toEncodedMap(map) {
- const decoded = toDecodedMap(map);
- return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) });
- }
- /**
- * Constructs a new GenMapping, using the already present mappings of the input.
- */
- function fromMap(input) {
- const map = new traceMapping.TraceMap(input);
- const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
- putAll(cast(gen)._names, map.names);
- putAll(cast(gen)._sources, map.sources);
- cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);
- cast(gen)._mappings = traceMapping.decodedMappings(map);
- if (map.ignoreList)
- putAll(cast(gen)._ignoreList, map.ignoreList);
- return gen;
- }
- /**
- * Returns an array of high-level mapping objects for every recorded segment, which could then be
- * passed to the `source-map` library.
- */
- function allMappings(map) {
- const out = [];
- const { _mappings: mappings, _sources: sources, _names: names } = cast(map);
- for (let i = 0; i < mappings.length; i++) {
- const line = mappings[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const generated = { line: i + 1, column: seg[COLUMN] };
- let source = undefined;
- let original = undefined;
- let name = undefined;
- if (seg.length !== 1) {
- source = sources.array[seg[SOURCES_INDEX]];
- original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };
- if (seg.length === 5)
- name = names.array[seg[NAMES_INDEX]];
- }
- out.push({ generated, source, original, name });
- }
- }
- return out;
- }
- // This split declaration is only so that terser can elminiate the static initialization block.
- function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
- const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);
- const line = getLine(mappings, genLine);
- const index = getColumnIndex(line, genColumn);
- if (!source) {
- if (skipable && skipSourceless(line, index))
- return;
- return insert(line, index, [genColumn]);
- }
- const sourcesIndex = setArray.put(sources, source);
- const namesIndex = name ? setArray.put(names, name) : NO_NAME;
- if (sourcesIndex === sourcesContent.length)
- sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;
- if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
- return;
- }
- return insert(line, index, name
- ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
- : [genColumn, sourcesIndex, sourceLine, sourceColumn]);
- }
- function getLine(mappings, index) {
- for (let i = mappings.length; i <= index; i++) {
- mappings[i] = [];
- }
- return mappings[index];
- }
- function getColumnIndex(line, genColumn) {
- let index = line.length;
- for (let i = index - 1; i >= 0; index = i--) {
- const current = line[i];
- if (genColumn >= current[COLUMN])
- break;
- }
- return index;
- }
- function insert(array, index, value) {
- for (let i = array.length; i > index; i--) {
- array[i] = array[i - 1];
- }
- array[index] = value;
- }
- function removeEmptyFinalLines(mappings) {
- const { length } = mappings;
- let len = length;
- for (let i = len - 1; i >= 0; len = i, i--) {
- if (mappings[i].length > 0)
- break;
- }
- if (len < length)
- mappings.length = len;
- }
- function putAll(setarr, array) {
- for (let i = 0; i < array.length; i++)
- setArray.put(setarr, array[i]);
- }
- function skipSourceless(line, index) {
- // The start of a line is already sourceless, so adding a sourceless segment to the beginning
- // doesn't generate any useful information.
- if (index === 0)
- return true;
- const prev = line[index - 1];
- // If the previous segment is also sourceless, then adding another sourceless segment doesn't
- // genrate any new information. Else, this segment will end the source/named segment and point to
- // a sourceless position, which is useful.
- return prev.length === 1;
- }
- function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
- // A source/named segment at the start of a line gives position at that genColumn
- if (index === 0)
- return false;
- const prev = line[index - 1];
- // If the previous segment is sourceless, then we're transitioning to a source.
- if (prev.length === 1)
- return false;
- // If the previous segment maps to the exact same source position, then this segment doesn't
- // provide any new position information.
- return (sourcesIndex === prev[SOURCES_INDEX] &&
- sourceLine === prev[SOURCE_LINE] &&
- sourceColumn === prev[SOURCE_COLUMN] &&
- namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));
- }
- function addMappingInternal(skipable, map, mapping) {
- const { generated, source, original, name, content } = mapping;
- if (!source) {
- return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);
- }
- return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);
- }
-
- exports.GenMapping = GenMapping;
- exports.addMapping = addMapping;
- exports.addSegment = addSegment;
- exports.allMappings = allMappings;
- exports.fromMap = fromMap;
- exports.maybeAddMapping = maybeAddMapping;
- exports.maybeAddSegment = maybeAddSegment;
- exports.setIgnore = setIgnore;
- exports.setSourceContent = setSourceContent;
- exports.toDecodedMap = toDecodedMap;
- exports.toEncodedMap = toEncodedMap;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
-//# sourceMappingURL=gen-mapping.umd.js.map
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map b/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map
deleted file mode 100644
index 72172ac7..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"gen-mapping.umd.js","sources":["../src/sourcemap-segment.ts","../src/gen-mapping.ts"],"sourcesContent":["type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n","import { SetArray, put, remove } from '@jridgewell/set-array';\nimport { encode } from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type { SourceMapInput } from '@jridgewell/trace-mapping';\nimport type { SourceMapSegment } from './sourcemap-segment';\nimport type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types';\n\nexport type { DecodedSourceMap, EncodedSourceMap, Mapping };\n\nexport type Options = {\n file?: string | null;\n sourceRoot?: string | null;\n};\n\nconst NO_NAME = -1;\n\n/**\n * Provides the state to generate a sourcemap.\n */\nexport class GenMapping {\n private declare _names: SetArray;\n private declare _sources: SetArray;\n private declare _sourcesContent: (string | null)[];\n private declare _mappings: SourceMapSegment[][];\n private declare _ignoreList: SetArray;\n declare file: string | null | undefined;\n declare sourceRoot: string | null | undefined;\n\n constructor({ file, sourceRoot }: Options = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n}\n\ninterface PublicMap {\n _names: GenMapping['_names'];\n _sources: GenMapping['_sources'];\n _sourcesContent: GenMapping['_sourcesContent'];\n _mappings: GenMapping['_mappings'];\n _ignoreList: GenMapping['_ignoreList'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: null,\n sourceLine?: null,\n sourceColumn?: null,\n name?: null,\n content?: null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name?: null,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name: string,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: string | null,\n sourceLine?: number | null,\n sourceColumn?: number | null,\n name?: string | null,\n content?: string | null,\n): void {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n}\n\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: null;\n original?: null;\n name?: null;\n content?: null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name?: null;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name: string;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: string | null;\n original?: Pos | null;\n name?: string | null;\n content?: string | null;\n },\n): void {\n return addMappingInternal(false, map, mapping as Parameters[2]);\n}\n\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nexport const maybeAddSegment: typeof addSegment = (\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n};\n\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nexport const maybeAddMapping: typeof addMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping as Parameters[2]);\n};\n\n/**\n * Adds/removes the content of the source file to the source map.\n */\nexport function setSourceContent(map: GenMapping, source: string, content: string | null): void {\n const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\n\nexport function setIgnore(map: GenMapping, source: string, ignore = true) {\n const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toDecodedMap(map: GenMapping): DecodedSourceMap {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList,\n } = cast(map);\n removeEmptyFinalLines(mappings);\n\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n ignoreList: ignoreList.array,\n };\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toEncodedMap(map: GenMapping): EncodedSourceMap {\n const decoded = toDecodedMap(map);\n return {\n ...decoded,\n mappings: encode(decoded.mappings as SourceMapSegment[][]),\n };\n}\n\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nexport function fromMap(input: SourceMapInput): GenMapping {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources as string[]);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings'];\n if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList);\n\n return gen;\n}\n\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nexport function allMappings(map: GenMapping): Mapping[] {\n const out: Mapping[] = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source: string | undefined = undefined;\n let original: Pos | undefined = undefined;\n let name: string | undefined = undefined;\n\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n\n out.push({ generated, source, original, name } as Mapping);\n }\n }\n\n return out;\n}\n\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal(\n skipable: boolean,\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: S,\n sourceLine: S extends string ? number : null | undefined,\n sourceColumn: S extends string ? number : null | undefined,\n name: S extends string ? string | null | undefined : null | undefined,\n content: S extends string ? string | null | undefined : null | undefined,\n): void {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n } = cast(map);\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n\n // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source\n // isn't nullish.\n assert(sourceLine);\n assert(sourceColumn);\n\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null;\n\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n\n return insert(\n line,\n index,\n name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn],\n );\n}\n\nfunction assert(_val: unknown): asserts _val is T {\n // noop.\n}\n\nfunction getLine(mappings: SourceMapSegment[][], index: number): SourceMapSegment[] {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n}\n\nfunction getColumnIndex(line: SourceMapSegment[], genColumn: number): number {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\n\nfunction insert(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\nfunction removeEmptyFinalLines(mappings: SourceMapSegment[][]) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\n\nfunction putAll(setarr: SetArray, array: T[]) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\n\nfunction skipSourceless(line: SourceMapSegment[], index: number): boolean {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0) return true;\n\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\n\nfunction skipSource(\n line: SourceMapSegment[],\n index: number,\n sourcesIndex: number,\n sourceLine: number,\n sourceColumn: number,\n namesIndex: number,\n): boolean {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0) return false;\n\n const prev = line[index - 1];\n\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1) return false;\n\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (\n sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)\n );\n}\n\nfunction addMappingInternal(\n skipable: boolean,\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: S;\n original: S extends string ? Pos : null | undefined;\n name: S extends string ? string | null | undefined : null | undefined;\n content: S extends string ? string | null | undefined : null | undefined;\n },\n) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null,\n );\n }\n assert(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source as string,\n original.line - 1,\n original.column,\n name,\n content,\n );\n}\n"],"names":["SetArray","put","remove","encode","TraceMap","decodedMappings"],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts b/website/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts
deleted file mode 100644
index 398a6956..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import type { SourceMapInput } from '@jridgewell/trace-mapping';
-import type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types';
-export type { DecodedSourceMap, EncodedSourceMap, Mapping };
-export declare type Options = {
- file?: string | null;
- sourceRoot?: string | null;
-};
-/**
- * Provides the state to generate a sourcemap.
- */
-export declare class GenMapping {
- private _names;
- private _sources;
- private _sourcesContent;
- private _mappings;
- private _ignoreList;
- file: string | null | undefined;
- sourceRoot: string | null | undefined;
- constructor({ file, sourceRoot }?: Options);
-}
-/**
- * A low-level API to associate a generated position with an original source position. Line and
- * column here are 0-based, unlike `addMapping`.
- */
-export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source?: null, sourceLine?: null, sourceColumn?: null, name?: null, content?: null): void;
-export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name?: null, content?: string | null): void;
-export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name: string, content?: string | null): void;
-/**
- * A high-level API to associate a generated position with an original source position. Line is
- * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.
- */
-export declare function addMapping(map: GenMapping, mapping: {
- generated: Pos;
- source?: null;
- original?: null;
- name?: null;
- content?: null;
-}): void;
-export declare function addMapping(map: GenMapping, mapping: {
- generated: Pos;
- source: string;
- original: Pos;
- name?: null;
- content?: string | null;
-}): void;
-export declare function addMapping(map: GenMapping, mapping: {
- generated: Pos;
- source: string;
- original: Pos;
- name: string;
- content?: string | null;
-}): void;
-/**
- * Same as `addSegment`, but will only add the segment if it generates useful information in the
- * resulting map. This only works correctly if segments are added **in order**, meaning you should
- * not add a segment with a lower generated line/column than one that came before.
- */
-export declare const maybeAddSegment: typeof addSegment;
-/**
- * Same as `addMapping`, but will only add the mapping if it generates useful information in the
- * resulting map. This only works correctly if mappings are added **in order**, meaning you should
- * not add a mapping with a lower generated line/column than one that came before.
- */
-export declare const maybeAddMapping: typeof addMapping;
-/**
- * Adds/removes the content of the source file to the source map.
- */
-export declare function setSourceContent(map: GenMapping, source: string, content: string | null): void;
-export declare function setIgnore(map: GenMapping, source: string, ignore?: boolean): void;
-/**
- * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-export declare function toDecodedMap(map: GenMapping): DecodedSourceMap;
-/**
- * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-export declare function toEncodedMap(map: GenMapping): EncodedSourceMap;
-/**
- * Constructs a new GenMapping, using the already present mappings of the input.
- */
-export declare function fromMap(input: SourceMapInput): GenMapping;
-/**
- * Returns an array of high-level mapping objects for every recorded segment, which could then be
- * passed to the `source-map` library.
- */
-export declare function allMappings(map: GenMapping): Mapping[];
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts b/website/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts
deleted file mode 100644
index e187ba98..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-declare type GeneratedColumn = number;
-declare type SourcesIndex = number;
-declare type SourceLine = number;
-declare type SourceColumn = number;
-declare type NamesIndex = number;
-export declare type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];
-export declare const COLUMN = 0;
-export declare const SOURCES_INDEX = 1;
-export declare const SOURCE_LINE = 2;
-export declare const SOURCE_COLUMN = 3;
-export declare const NAMES_INDEX = 4;
-export {};
diff --git a/website/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts b/website/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts
deleted file mode 100644
index 7f0ab15f..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { SourceMapSegment } from './sourcemap-segment';
-export interface SourceMapV3 {
- file?: string | null;
- names: readonly string[];
- sourceRoot?: string;
- sources: readonly (string | null)[];
- sourcesContent?: readonly (string | null)[];
- version: 3;
- ignoreList?: readonly number[];
-}
-export interface EncodedSourceMap extends SourceMapV3 {
- mappings: string;
-}
-export interface DecodedSourceMap extends SourceMapV3 {
- mappings: readonly SourceMapSegment[][];
-}
-export interface Pos {
- line: number;
- column: number;
-}
-export declare type Mapping = {
- generated: Pos;
- source: undefined;
- original: undefined;
- name: undefined;
-} | {
- generated: Pos;
- source: string;
- original: Pos;
- name: string;
-} | {
- generated: Pos;
- source: string;
- original: Pos;
- name: undefined;
-};
diff --git a/website/node_modules/@jridgewell/gen-mapping/package.json b/website/node_modules/@jridgewell/gen-mapping/package.json
deleted file mode 100644
index f2e7fe0e..00000000
--- a/website/node_modules/@jridgewell/gen-mapping/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "@jridgewell/gen-mapping",
- "version": "0.3.5",
- "description": "Generate source maps",
- "keywords": [
- "source",
- "map"
- ],
- "author": "Justin Ridgewell ",
- "license": "MIT",
- "repository": "https://github.com/jridgewell/gen-mapping",
- "main": "dist/gen-mapping.umd.js",
- "module": "dist/gen-mapping.mjs",
- "types": "dist/types/gen-mapping.d.ts",
- "exports": {
- ".": [
- {
- "types": "./dist/types/gen-mapping.d.ts",
- "browser": "./dist/gen-mapping.umd.js",
- "require": "./dist/gen-mapping.umd.js",
- "import": "./dist/gen-mapping.mjs"
- },
- "./dist/gen-mapping.umd.js"
- ],
- "./package.json": "./package.json"
- },
- "files": [
- "dist"
- ],
- "engines": {
- "node": ">=6.0.0"
- },
- "scripts": {
- "benchmark": "run-s build:rollup benchmark:*",
- "benchmark:install": "cd benchmark && npm install",
- "benchmark:only": "node benchmark/index.mjs",
- "prebuild": "rm -rf dist",
- "build": "run-s -n build:*",
- "build:rollup": "rollup -c rollup.config.js",
- "build:ts": "tsc --project tsconfig.build.json",
- "lint": "run-s -n lint:*",
- "lint:prettier": "npm run test:lint:prettier -- --write",
- "lint:ts": "npm run test:lint:ts -- --fix",
- "test": "run-s -n test:lint test:only",
- "test:debug": "mocha --inspect-brk",
- "test:lint": "run-s -n test:lint:*",
- "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
- "test:lint:ts": "eslint '{src,test}/**/*.ts'",
- "test:only": "c8 mocha",
- "test:watch": "mocha --watch",
- "prepublishOnly": "npm run preversion",
- "preversion": "run-s test build"
- },
- "devDependencies": {
- "@rollup/plugin-typescript": "8.3.2",
- "@types/mocha": "9.1.1",
- "@types/node": "17.0.29",
- "@typescript-eslint/eslint-plugin": "5.21.0",
- "@typescript-eslint/parser": "5.21.0",
- "benchmark": "2.1.4",
- "c8": "7.11.2",
- "eslint": "8.14.0",
- "eslint-config-prettier": "8.5.0",
- "mocha": "9.2.2",
- "npm-run-all": "4.1.5",
- "prettier": "2.6.2",
- "rollup": "2.70.2",
- "tsx": "4.7.1",
- "typescript": "4.6.3"
- },
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
-}
diff --git a/website/node_modules/@jridgewell/resolve-uri/LICENSE b/website/node_modules/@jridgewell/resolve-uri/LICENSE
deleted file mode 100644
index 0a81b2ad..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2019 Justin Ridgewell
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/resolve-uri/README.md b/website/node_modules/@jridgewell/resolve-uri/README.md
deleted file mode 100644
index 2fe70df7..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# @jridgewell/resolve-uri
-
-> Resolve a URI relative to an optional base URI
-
-Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths.
-
-## Installation
-
-```sh
-npm install @jridgewell/resolve-uri
-```
-
-## Usage
-
-```typescript
-function resolve(input: string, base?: string): string;
-```
-
-```js
-import resolve from '@jridgewell/resolve-uri';
-
-resolve('foo', 'https://example.com'); // => 'https://example.com/foo'
-```
-
-| Input | Base | Resolution | Explanation |
-|-----------------------|-------------------------|--------------------------------|--------------------------------------------------------------|
-| `https://example.com` | _any_ | `https://example.com/` | Input is normalized only |
-| `//example.com` | `https://base.com/` | `https://example.com/` | Input inherits the base's protocol |
-| `//example.com` | _rest_ | `//example.com/` | Input is normalized only |
-| `/example` | `https://base.com/` | `https://base.com/example` | Input inherits the base's origin |
-| `/example` | `//base.com/` | `//base.com/example` | Input inherits the base's host and remains protocol relative |
-| `/example` | _rest_ | `/example` | Input is normalized only |
-| `example` | `https://base.com/dir/` | `https://base.com/dir/example` | Input is joined with the base |
-| `example` | `https://base.com/file` | `https://base.com/example` | Input is joined with the base without its file |
-| `example` | `//base.com/dir/` | `//base.com/dir/example` | Input is joined with the base's last directory |
-| `example` | `//base.com/file` | `//base.com/example` | Input is joined with the base without its file |
-| `example` | `/base/dir/` | `/base/dir/example` | Input is joined with the base's last directory |
-| `example` | `/base/file` | `/base/example` | Input is joined with the base without its file |
-| `example` | `base/dir/` | `base/dir/example` | Input is joined with the base's last directory |
-| `example` | `base/file` | `base/example` | Input is joined with the base without its file |
diff --git a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs b/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
deleted file mode 100644
index e958e881..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
+++ /dev/null
@@ -1,232 +0,0 @@
-// Matches the scheme of a URL, eg "http://"
-const schemeRegex = /^[\w+.-]+:\/\//;
-/**
- * Matches the parts of a URL:
- * 1. Scheme, including ":", guaranteed.
- * 2. User/password, including "@", optional.
- * 3. Host, guaranteed.
- * 4. Port, including ":", optional.
- * 5. Path, including "/", optional.
- * 6. Query, including "?", optional.
- * 7. Hash, including "#", optional.
- */
-const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
-/**
- * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
- * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
- *
- * 1. Host, optional.
- * 2. Path, which may include "/", guaranteed.
- * 3. Query, including "?", optional.
- * 4. Hash, including "#", optional.
- */
-const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
-function isAbsoluteUrl(input) {
- return schemeRegex.test(input);
-}
-function isSchemeRelativeUrl(input) {
- return input.startsWith('//');
-}
-function isAbsolutePath(input) {
- return input.startsWith('/');
-}
-function isFileUrl(input) {
- return input.startsWith('file:');
-}
-function isRelative(input) {
- return /^[.?#]/.test(input);
-}
-function parseAbsoluteUrl(input) {
- const match = urlRegex.exec(input);
- return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
-}
-function parseFileUrl(input) {
- const match = fileRegex.exec(input);
- const path = match[2];
- return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
-}
-function makeUrl(scheme, user, host, port, path, query, hash) {
- return {
- scheme,
- user,
- host,
- port,
- path,
- query,
- hash,
- type: 7 /* Absolute */,
- };
-}
-function parseUrl(input) {
- if (isSchemeRelativeUrl(input)) {
- const url = parseAbsoluteUrl('http:' + input);
- url.scheme = '';
- url.type = 6 /* SchemeRelative */;
- return url;
- }
- if (isAbsolutePath(input)) {
- const url = parseAbsoluteUrl('http://foo.com' + input);
- url.scheme = '';
- url.host = '';
- url.type = 5 /* AbsolutePath */;
- return url;
- }
- if (isFileUrl(input))
- return parseFileUrl(input);
- if (isAbsoluteUrl(input))
- return parseAbsoluteUrl(input);
- const url = parseAbsoluteUrl('http://foo.com/' + input);
- url.scheme = '';
- url.host = '';
- url.type = input
- ? input.startsWith('?')
- ? 3 /* Query */
- : input.startsWith('#')
- ? 2 /* Hash */
- : 4 /* RelativePath */
- : 1 /* Empty */;
- return url;
-}
-function stripPathFilename(path) {
- // If a path ends with a parent directory "..", then it's a relative path with excess parent
- // paths. It's not a file, so we can't strip it.
- if (path.endsWith('/..'))
- return path;
- const index = path.lastIndexOf('/');
- return path.slice(0, index + 1);
-}
-function mergePaths(url, base) {
- normalizePath(base, base.type);
- // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
- // path).
- if (url.path === '/') {
- url.path = base.path;
- }
- else {
- // Resolution happens relative to the base path's directory, not the file.
- url.path = stripPathFilename(base.path) + url.path;
- }
-}
-/**
- * The path can have empty directories "//", unneeded parents "foo/..", or current directory
- * "foo/.". We need to normalize to a standard representation.
- */
-function normalizePath(url, type) {
- const rel = type <= 4 /* RelativePath */;
- const pieces = url.path.split('/');
- // We need to preserve the first piece always, so that we output a leading slash. The item at
- // pieces[0] is an empty string.
- let pointer = 1;
- // Positive is the number of real directories we've output, used for popping a parent directory.
- // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
- let positive = 0;
- // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
- // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
- // real directory, we won't need to append, unless the other conditions happen again.
- let addTrailingSlash = false;
- for (let i = 1; i < pieces.length; i++) {
- const piece = pieces[i];
- // An empty directory, could be a trailing slash, or just a double "//" in the path.
- if (!piece) {
- addTrailingSlash = true;
- continue;
- }
- // If we encounter a real directory, then we don't need to append anymore.
- addTrailingSlash = false;
- // A current directory, which we can always drop.
- if (piece === '.')
- continue;
- // A parent directory, we need to see if there are any real directories we can pop. Else, we
- // have an excess of parents, and we'll need to keep the "..".
- if (piece === '..') {
- if (positive) {
- addTrailingSlash = true;
- positive--;
- pointer--;
- }
- else if (rel) {
- // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
- // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
- pieces[pointer++] = piece;
- }
- continue;
- }
- // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
- // any popped or dropped directories.
- pieces[pointer++] = piece;
- positive++;
- }
- let path = '';
- for (let i = 1; i < pointer; i++) {
- path += '/' + pieces[i];
- }
- if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
- path += '/';
- }
- url.path = path;
-}
-/**
- * Attempts to resolve `input` URL/path relative to `base`.
- */
-function resolve(input, base) {
- if (!input && !base)
- return '';
- const url = parseUrl(input);
- let inputType = url.type;
- if (base && inputType !== 7 /* Absolute */) {
- const baseUrl = parseUrl(base);
- const baseType = baseUrl.type;
- switch (inputType) {
- case 1 /* Empty */:
- url.hash = baseUrl.hash;
- // fall through
- case 2 /* Hash */:
- url.query = baseUrl.query;
- // fall through
- case 3 /* Query */:
- case 4 /* RelativePath */:
- mergePaths(url, baseUrl);
- // fall through
- case 5 /* AbsolutePath */:
- // The host, user, and port are joined, you can't copy one without the others.
- url.user = baseUrl.user;
- url.host = baseUrl.host;
- url.port = baseUrl.port;
- // fall through
- case 6 /* SchemeRelative */:
- // The input doesn't have a schema at least, so we need to copy at least that over.
- url.scheme = baseUrl.scheme;
- }
- if (baseType > inputType)
- inputType = baseType;
- }
- normalizePath(url, inputType);
- const queryHash = url.query + url.hash;
- switch (inputType) {
- // This is impossible, because of the empty checks at the start of the function.
- // case UrlType.Empty:
- case 2 /* Hash */:
- case 3 /* Query */:
- return queryHash;
- case 4 /* RelativePath */: {
- // The first char is always a "/", and we need it to be relative.
- const path = url.path.slice(1);
- if (!path)
- return queryHash || '.';
- if (isRelative(base || input) && !isRelative(path)) {
- // If base started with a leading ".", or there is no base and input started with a ".",
- // then we need to ensure that the relative path starts with a ".". We don't know if
- // relative starts with a "..", though, so check before prepending.
- return './' + path + queryHash;
- }
- return path + queryHash;
- }
- case 5 /* AbsolutePath */:
- return url.path + queryHash;
- default:
- return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
- }
-}
-
-export { resolve as default };
-//# sourceMappingURL=resolve-uri.mjs.map
diff --git a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map b/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
deleted file mode 100644
index 1de97d01..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"resolve-uri.mjs","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js b/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
deleted file mode 100644
index a783049b..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
+++ /dev/null
@@ -1,240 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.resolveURI = factory());
-})(this, (function () { 'use strict';
-
- // Matches the scheme of a URL, eg "http://"
- const schemeRegex = /^[\w+.-]+:\/\//;
- /**
- * Matches the parts of a URL:
- * 1. Scheme, including ":", guaranteed.
- * 2. User/password, including "@", optional.
- * 3. Host, guaranteed.
- * 4. Port, including ":", optional.
- * 5. Path, including "/", optional.
- * 6. Query, including "?", optional.
- * 7. Hash, including "#", optional.
- */
- const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
- /**
- * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
- * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
- *
- * 1. Host, optional.
- * 2. Path, which may include "/", guaranteed.
- * 3. Query, including "?", optional.
- * 4. Hash, including "#", optional.
- */
- const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
- function isAbsoluteUrl(input) {
- return schemeRegex.test(input);
- }
- function isSchemeRelativeUrl(input) {
- return input.startsWith('//');
- }
- function isAbsolutePath(input) {
- return input.startsWith('/');
- }
- function isFileUrl(input) {
- return input.startsWith('file:');
- }
- function isRelative(input) {
- return /^[.?#]/.test(input);
- }
- function parseAbsoluteUrl(input) {
- const match = urlRegex.exec(input);
- return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
- }
- function parseFileUrl(input) {
- const match = fileRegex.exec(input);
- const path = match[2];
- return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
- }
- function makeUrl(scheme, user, host, port, path, query, hash) {
- return {
- scheme,
- user,
- host,
- port,
- path,
- query,
- hash,
- type: 7 /* Absolute */,
- };
- }
- function parseUrl(input) {
- if (isSchemeRelativeUrl(input)) {
- const url = parseAbsoluteUrl('http:' + input);
- url.scheme = '';
- url.type = 6 /* SchemeRelative */;
- return url;
- }
- if (isAbsolutePath(input)) {
- const url = parseAbsoluteUrl('http://foo.com' + input);
- url.scheme = '';
- url.host = '';
- url.type = 5 /* AbsolutePath */;
- return url;
- }
- if (isFileUrl(input))
- return parseFileUrl(input);
- if (isAbsoluteUrl(input))
- return parseAbsoluteUrl(input);
- const url = parseAbsoluteUrl('http://foo.com/' + input);
- url.scheme = '';
- url.host = '';
- url.type = input
- ? input.startsWith('?')
- ? 3 /* Query */
- : input.startsWith('#')
- ? 2 /* Hash */
- : 4 /* RelativePath */
- : 1 /* Empty */;
- return url;
- }
- function stripPathFilename(path) {
- // If a path ends with a parent directory "..", then it's a relative path with excess parent
- // paths. It's not a file, so we can't strip it.
- if (path.endsWith('/..'))
- return path;
- const index = path.lastIndexOf('/');
- return path.slice(0, index + 1);
- }
- function mergePaths(url, base) {
- normalizePath(base, base.type);
- // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
- // path).
- if (url.path === '/') {
- url.path = base.path;
- }
- else {
- // Resolution happens relative to the base path's directory, not the file.
- url.path = stripPathFilename(base.path) + url.path;
- }
- }
- /**
- * The path can have empty directories "//", unneeded parents "foo/..", or current directory
- * "foo/.". We need to normalize to a standard representation.
- */
- function normalizePath(url, type) {
- const rel = type <= 4 /* RelativePath */;
- const pieces = url.path.split('/');
- // We need to preserve the first piece always, so that we output a leading slash. The item at
- // pieces[0] is an empty string.
- let pointer = 1;
- // Positive is the number of real directories we've output, used for popping a parent directory.
- // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
- let positive = 0;
- // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
- // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
- // real directory, we won't need to append, unless the other conditions happen again.
- let addTrailingSlash = false;
- for (let i = 1; i < pieces.length; i++) {
- const piece = pieces[i];
- // An empty directory, could be a trailing slash, or just a double "//" in the path.
- if (!piece) {
- addTrailingSlash = true;
- continue;
- }
- // If we encounter a real directory, then we don't need to append anymore.
- addTrailingSlash = false;
- // A current directory, which we can always drop.
- if (piece === '.')
- continue;
- // A parent directory, we need to see if there are any real directories we can pop. Else, we
- // have an excess of parents, and we'll need to keep the "..".
- if (piece === '..') {
- if (positive) {
- addTrailingSlash = true;
- positive--;
- pointer--;
- }
- else if (rel) {
- // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
- // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
- pieces[pointer++] = piece;
- }
- continue;
- }
- // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
- // any popped or dropped directories.
- pieces[pointer++] = piece;
- positive++;
- }
- let path = '';
- for (let i = 1; i < pointer; i++) {
- path += '/' + pieces[i];
- }
- if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
- path += '/';
- }
- url.path = path;
- }
- /**
- * Attempts to resolve `input` URL/path relative to `base`.
- */
- function resolve(input, base) {
- if (!input && !base)
- return '';
- const url = parseUrl(input);
- let inputType = url.type;
- if (base && inputType !== 7 /* Absolute */) {
- const baseUrl = parseUrl(base);
- const baseType = baseUrl.type;
- switch (inputType) {
- case 1 /* Empty */:
- url.hash = baseUrl.hash;
- // fall through
- case 2 /* Hash */:
- url.query = baseUrl.query;
- // fall through
- case 3 /* Query */:
- case 4 /* RelativePath */:
- mergePaths(url, baseUrl);
- // fall through
- case 5 /* AbsolutePath */:
- // The host, user, and port are joined, you can't copy one without the others.
- url.user = baseUrl.user;
- url.host = baseUrl.host;
- url.port = baseUrl.port;
- // fall through
- case 6 /* SchemeRelative */:
- // The input doesn't have a schema at least, so we need to copy at least that over.
- url.scheme = baseUrl.scheme;
- }
- if (baseType > inputType)
- inputType = baseType;
- }
- normalizePath(url, inputType);
- const queryHash = url.query + url.hash;
- switch (inputType) {
- // This is impossible, because of the empty checks at the start of the function.
- // case UrlType.Empty:
- case 2 /* Hash */:
- case 3 /* Query */:
- return queryHash;
- case 4 /* RelativePath */: {
- // The first char is always a "/", and we need it to be relative.
- const path = url.path.slice(1);
- if (!path)
- return queryHash || '.';
- if (isRelative(base || input) && !isRelative(path)) {
- // If base started with a leading ".", or there is no base and input started with a ".",
- // then we need to ensure that the relative path starts with a ".". We don't know if
- // relative starts with a "..", though, so check before prepending.
- return './' + path + queryHash;
- }
- return path + queryHash;
- }
- case 5 /* AbsolutePath */:
- return url.path + queryHash;
- default:
- return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
- }
- }
-
- return resolve;
-
-}));
-//# sourceMappingURL=resolve-uri.umd.js.map
diff --git a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map b/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
deleted file mode 100644
index 70a37f21..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"resolve-uri.umd.js","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts b/website/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
deleted file mode 100644
index b7f0b3b2..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Attempts to resolve `input` URL/path relative to `base`.
- */
-export default function resolve(input: string, base: string | undefined): string;
diff --git a/website/node_modules/@jridgewell/resolve-uri/package.json b/website/node_modules/@jridgewell/resolve-uri/package.json
deleted file mode 100644
index 02a4c518..00000000
--- a/website/node_modules/@jridgewell/resolve-uri/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "@jridgewell/resolve-uri",
- "version": "3.1.2",
- "description": "Resolve a URI relative to an optional base URI",
- "keywords": [
- "resolve",
- "uri",
- "url",
- "path"
- ],
- "author": "Justin Ridgewell ",
- "license": "MIT",
- "repository": "https://github.com/jridgewell/resolve-uri",
- "main": "dist/resolve-uri.umd.js",
- "module": "dist/resolve-uri.mjs",
- "types": "dist/types/resolve-uri.d.ts",
- "exports": {
- ".": [
- {
- "types": "./dist/types/resolve-uri.d.ts",
- "browser": "./dist/resolve-uri.umd.js",
- "require": "./dist/resolve-uri.umd.js",
- "import": "./dist/resolve-uri.mjs"
- },
- "./dist/resolve-uri.umd.js"
- ],
- "./package.json": "./package.json"
- },
- "files": [
- "dist"
- ],
- "engines": {
- "node": ">=6.0.0"
- },
- "scripts": {
- "prebuild": "rm -rf dist",
- "build": "run-s -n build:*",
- "build:rollup": "rollup -c rollup.config.js",
- "build:ts": "tsc --project tsconfig.build.json",
- "lint": "run-s -n lint:*",
- "lint:prettier": "npm run test:lint:prettier -- --write",
- "lint:ts": "npm run test:lint:ts -- --fix",
- "pretest": "run-s build:rollup",
- "test": "run-s -n test:lint test:only",
- "test:debug": "mocha --inspect-brk",
- "test:lint": "run-s -n test:lint:*",
- "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
- "test:lint:ts": "eslint '{src,test}/**/*.ts'",
- "test:only": "mocha",
- "test:coverage": "c8 mocha",
- "test:watch": "mocha --watch",
- "prepublishOnly": "npm run preversion",
- "preversion": "run-s test build"
- },
- "devDependencies": {
- "@jridgewell/resolve-uri-latest": "npm:@jridgewell/resolve-uri@*",
- "@rollup/plugin-typescript": "8.3.0",
- "@typescript-eslint/eslint-plugin": "5.10.0",
- "@typescript-eslint/parser": "5.10.0",
- "c8": "7.11.0",
- "eslint": "8.7.0",
- "eslint-config-prettier": "8.3.0",
- "mocha": "9.2.0",
- "npm-run-all": "4.1.5",
- "prettier": "2.5.1",
- "rollup": "2.66.0",
- "typescript": "4.5.5"
- }
-}
diff --git a/website/node_modules/@jridgewell/set-array/LICENSE b/website/node_modules/@jridgewell/set-array/LICENSE
deleted file mode 100644
index 352f0715..00000000
--- a/website/node_modules/@jridgewell/set-array/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2022 Justin Ridgewell
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@jridgewell/set-array/README.md b/website/node_modules/@jridgewell/set-array/README.md
deleted file mode 100644
index 2ed155ff..00000000
--- a/website/node_modules/@jridgewell/set-array/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# @jridgewell/set-array
-
-> Like a Set, but provides the index of the `key` in the backing array
-
-This is designed to allow synchronizing a second array with the contents of the backing array, like
-how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, and there
-are never duplicates.
-
-## Installation
-
-```sh
-npm install @jridgewell/set-array
-```
-
-## Usage
-
-```js
-import { SetArray, get, put, pop } from '@jridgewell/set-array';
-
-const sa = new SetArray();
-
-let index = put(sa, 'first');
-assert.strictEqual(index, 0);
-
-index = put(sa, 'second');
-assert.strictEqual(index, 1);
-
-assert.deepEqual(sa.array, [ 'first', 'second' ]);
-
-index = get(sa, 'first');
-assert.strictEqual(index, 0);
-
-pop(sa);
-index = get(sa, 'second');
-assert.strictEqual(index, undefined);
-assert.deepEqual(sa.array, [ 'first' ]);
-```
diff --git a/website/node_modules/@jridgewell/set-array/dist/set-array.mjs b/website/node_modules/@jridgewell/set-array/dist/set-array.mjs
deleted file mode 100644
index 8a2d60b8..00000000
--- a/website/node_modules/@jridgewell/set-array/dist/set-array.mjs
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
- * index of the `key` in the backing array.
- *
- * This is designed to allow synchronizing a second array with the contents of the backing array,
- * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
- * and there are never duplicates.
- */
-class SetArray {
- constructor() {
- this._indexes = { __proto__: null };
- this.array = [];
- }
-}
-/**
- * Typescript doesn't allow friend access to private fields, so this just casts the set into a type
- * with public access modifiers.
- */
-function cast(set) {
- return set;
-}
-/**
- * Gets the index associated with `key` in the backing array, if it is already present.
- */
-function get(setarr, key) {
- return cast(setarr)._indexes[key];
-}
-/**
- * Puts `key` into the backing array, if it is not already present. Returns
- * the index of the `key` in the backing array.
- */
-function put(setarr, key) {
- // The key may or may not be present. If it is present, it's a number.
- const index = get(setarr, key);
- if (index !== undefined)
- return index;
- const { array, _indexes: indexes } = cast(setarr);
- const length = array.push(key);
- return (indexes[key] = length - 1);
-}
-/**
- * Pops the last added item out of the SetArray.
- */
-function pop(setarr) {
- const { array, _indexes: indexes } = cast(setarr);
- if (array.length === 0)
- return;
- const last = array.pop();
- indexes[last] = undefined;
-}
-/**
- * Removes the key, if it exists in the set.
- */
-function remove(setarr, key) {
- const index = get(setarr, key);
- if (index === undefined)
- return;
- const { array, _indexes: indexes } = cast(setarr);
- for (let i = index + 1; i < array.length; i++) {
- const k = array[i];
- array[i - 1] = k;
- indexes[k]--;
- }
- indexes[key] = undefined;
- array.pop();
-}
-
-export { SetArray, get, pop, put, remove };
-//# sourceMappingURL=set-array.mjs.map
diff --git a/website/node_modules/@jridgewell/set-array/dist/set-array.mjs.map b/website/node_modules/@jridgewell/set-array/dist/set-array.mjs.map
deleted file mode 100644
index 9276dfa2..00000000
--- a/website/node_modules/@jridgewell/set-array/dist/set-array.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"set-array.mjs","sources":["../src/set-array.ts"],"sourcesContent":["type Key = string | number | symbol;\n\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nexport class SetArray {\n private declare _indexes: Record;\n declare array: readonly T[];\n\n constructor() {\n this._indexes = { __proto__: null } as any;\n this.array = [];\n }\n}\n\ninterface PublicSet {\n array: T[];\n _indexes: SetArray['_indexes'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast(set: SetArray): PublicSet {\n return set as any;\n}\n\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nexport function get(setarr: SetArray, key: T): number | undefined {\n return cast(setarr)._indexes[key];\n}\n\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nexport function put(setarr: SetArray, key: T): number {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined) return index;\n\n const { array, _indexes: indexes } = cast(setarr);\n\n const length = array.push(key);\n return (indexes[key] = length - 1);\n}\n\n/**\n * Pops the last added item out of the SetArray.\n */\nexport function pop(setarr: SetArray): void {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0) return;\n\n const last = array.pop()!;\n indexes[last] = undefined;\n}\n\n/**\n * Removes the key, if it exists in the set.\n */\nexport function remove(setarr: SetArray, key: T): void {\n const index = get(setarr, key);\n if (index === undefined) return;\n\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]!--;\n }\n indexes[key] = undefined;\n array.pop();\n}\n"],"names":[],"mappings":"AAEA;;;;;;;;MAQa,QAAQ;IAInB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAS,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;CACF;AAOD;;;;AAIA,SAAS,IAAI,CAAgB,GAAgB;IAC3C,OAAO,GAAU,CAAC;AACpB,CAAC;AAED;;;SAGgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;IAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED;;;;SAIgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;;IAE5D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE;AACrC,CAAC;AAED;;;SAGgB,GAAG,CAAgB,MAAmB;IACpD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC5B,CAAC;AAED;;;SAGgB,MAAM,CAAgB,MAAmB,EAAE,GAAM;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAEhC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC;KACf;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,CAAC;AACd;;;;"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/set-array/dist/set-array.umd.js b/website/node_modules/@jridgewell/set-array/dist/set-array.umd.js
deleted file mode 100644
index ab498cc1..00000000
--- a/website/node_modules/@jridgewell/set-array/dist/set-array.umd.js
+++ /dev/null
@@ -1,83 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.setArray = {}));
-})(this, (function (exports) { 'use strict';
-
- /**
- * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
- * index of the `key` in the backing array.
- *
- * This is designed to allow synchronizing a second array with the contents of the backing array,
- * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
- * and there are never duplicates.
- */
- class SetArray {
- constructor() {
- this._indexes = { __proto__: null };
- this.array = [];
- }
- }
- /**
- * Typescript doesn't allow friend access to private fields, so this just casts the set into a type
- * with public access modifiers.
- */
- function cast(set) {
- return set;
- }
- /**
- * Gets the index associated with `key` in the backing array, if it is already present.
- */
- function get(setarr, key) {
- return cast(setarr)._indexes[key];
- }
- /**
- * Puts `key` into the backing array, if it is not already present. Returns
- * the index of the `key` in the backing array.
- */
- function put(setarr, key) {
- // The key may or may not be present. If it is present, it's a number.
- const index = get(setarr, key);
- if (index !== undefined)
- return index;
- const { array, _indexes: indexes } = cast(setarr);
- const length = array.push(key);
- return (indexes[key] = length - 1);
- }
- /**
- * Pops the last added item out of the SetArray.
- */
- function pop(setarr) {
- const { array, _indexes: indexes } = cast(setarr);
- if (array.length === 0)
- return;
- const last = array.pop();
- indexes[last] = undefined;
- }
- /**
- * Removes the key, if it exists in the set.
- */
- function remove(setarr, key) {
- const index = get(setarr, key);
- if (index === undefined)
- return;
- const { array, _indexes: indexes } = cast(setarr);
- for (let i = index + 1; i < array.length; i++) {
- const k = array[i];
- array[i - 1] = k;
- indexes[k]--;
- }
- indexes[key] = undefined;
- array.pop();
- }
-
- exports.SetArray = SetArray;
- exports.get = get;
- exports.pop = pop;
- exports.put = put;
- exports.remove = remove;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
-//# sourceMappingURL=set-array.umd.js.map
diff --git a/website/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map b/website/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map
deleted file mode 100644
index 9edb8bc5..00000000
--- a/website/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"set-array.umd.js","sources":["../src/set-array.ts"],"sourcesContent":["type Key = string | number | symbol;\n\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nexport class SetArray {\n private declare _indexes: Record;\n declare array: readonly T[];\n\n constructor() {\n this._indexes = { __proto__: null } as any;\n this.array = [];\n }\n}\n\ninterface PublicSet {\n array: T[];\n _indexes: SetArray['_indexes'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast(set: SetArray): PublicSet {\n return set as any;\n}\n\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nexport function get(setarr: SetArray, key: T): number | undefined {\n return cast(setarr)._indexes[key];\n}\n\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nexport function put(setarr: SetArray, key: T): number {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined) return index;\n\n const { array, _indexes: indexes } = cast(setarr);\n\n const length = array.push(key);\n return (indexes[key] = length - 1);\n}\n\n/**\n * Pops the last added item out of the SetArray.\n */\nexport function pop(setarr: SetArray): void {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0) return;\n\n const last = array.pop()!;\n indexes[last] = undefined;\n}\n\n/**\n * Removes the key, if it exists in the set.\n */\nexport function remove(setarr: SetArray, key: T): void {\n const index = get(setarr, key);\n if (index === undefined) return;\n\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]!--;\n }\n indexes[key] = undefined;\n array.pop();\n}\n"],"names":[],"mappings":";;;;;;IAEA;;;;;;;;UAQa,QAAQ;QAInB;YACE,IAAI,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAS,CAAC;YAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;KACF;IAOD;;;;IAIA,SAAS,IAAI,CAAgB,GAAgB;QAC3C,OAAO,GAAU,CAAC;IACpB,CAAC;IAED;;;aAGgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;;aAIgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;;QAE5D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE;IACrC,CAAC;IAED;;;aAGgB,GAAG,CAAgB,MAAmB;QACpD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;aAGgB,MAAM,CAAgB,MAAmB,EAAE,GAAM;QAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC;SACf;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QACzB,KAAK,CAAC,GAAG,EAAE,CAAC;IACd;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts b/website/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts
deleted file mode 100644
index 5f68e5db..00000000
--- a/website/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-declare type Key = string | number | symbol;
-/**
- * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
- * index of the `key` in the backing array.
- *
- * This is designed to allow synchronizing a second array with the contents of the backing array,
- * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
- * and there are never duplicates.
- */
-export declare class SetArray {
- private _indexes;
- array: readonly T[];
- constructor();
-}
-/**
- * Gets the index associated with `key` in the backing array, if it is already present.
- */
-export declare function get(setarr: SetArray, key: T): number | undefined;
-/**
- * Puts `key` into the backing array, if it is not already present. Returns
- * the index of the `key` in the backing array.
- */
-export declare function put(setarr: SetArray, key: T): number;
-/**
- * Pops the last added item out of the SetArray.
- */
-export declare function pop(setarr: SetArray): void;
-/**
- * Removes the key, if it exists in the set.
- */
-export declare function remove(setarr: SetArray, key: T): void;
-export {};
diff --git a/website/node_modules/@jridgewell/set-array/package.json b/website/node_modules/@jridgewell/set-array/package.json
deleted file mode 100644
index f652ca59..00000000
--- a/website/node_modules/@jridgewell/set-array/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "@jridgewell/set-array",
- "version": "1.2.1",
- "description": "Like a Set, but provides the index of the `key` in the backing array",
- "keywords": [],
- "author": "Justin Ridgewell ",
- "license": "MIT",
- "repository": "https://github.com/jridgewell/set-array",
- "main": "dist/set-array.umd.js",
- "module": "dist/set-array.mjs",
- "typings": "dist/types/set-array.d.ts",
- "exports": {
- ".": [
- {
- "types": "./dist/types/set-array.d.ts",
- "browser": "./dist/set-array.umd.js",
- "require": "./dist/set-array.umd.js",
- "import": "./dist/set-array.mjs"
- },
- "./dist/set-array.umd.js"
- ],
- "./package.json": "./package.json"
- },
- "files": [
- "dist"
- ],
- "engines": {
- "node": ">=6.0.0"
- },
- "scripts": {
- "prebuild": "rm -rf dist",
- "build": "run-s -n build:*",
- "build:rollup": "rollup -c rollup.config.js",
- "build:ts": "tsc --project tsconfig.build.json",
- "lint": "run-s -n lint:*",
- "lint:prettier": "npm run test:lint:prettier -- --write",
- "lint:ts": "npm run test:lint:ts -- --fix",
- "test": "run-s -n test:lint test:only",
- "test:debug": "mocha --inspect-brk",
- "test:lint": "run-s -n test:lint:*",
- "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
- "test:lint:ts": "eslint '{src,test}/**/*.ts'",
- "test:only": "mocha",
- "test:coverage": "c8 mocha",
- "test:watch": "mocha --watch",
- "prepublishOnly": "npm run preversion",
- "preversion": "run-s test build"
- },
- "devDependencies": {
- "@rollup/plugin-typescript": "8.3.0",
- "@types/mocha": "9.1.1",
- "@types/node": "17.0.29",
- "@typescript-eslint/eslint-plugin": "5.10.0",
- "@typescript-eslint/parser": "5.10.0",
- "c8": "7.11.0",
- "eslint": "8.7.0",
- "eslint-config-prettier": "8.3.0",
- "mocha": "9.2.0",
- "npm-run-all": "4.1.5",
- "prettier": "2.5.1",
- "rollup": "2.66.0",
- "tsx": "4.7.1",
- "typescript": "4.5.5"
- }
-}
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/LICENSE b/website/node_modules/@jridgewell/sourcemap-codec/LICENSE
deleted file mode 100644
index a331065a..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2015 Rich Harris
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/README.md b/website/node_modules/@jridgewell/sourcemap-codec/README.md
deleted file mode 100644
index 5cbb3152..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/README.md
+++ /dev/null
@@ -1,200 +0,0 @@
-# @jridgewell/sourcemap-codec
-
-Encode/decode the `mappings` property of a [sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit).
-
-
-## Why?
-
-Sourcemaps are difficult to generate and manipulate, because the `mappings` property – the part that actually links the generated code back to the original source – is encoded using an obscure method called [Variable-length quantity](https://en.wikipedia.org/wiki/Variable-length_quantity). On top of that, each segment in the mapping contains offsets rather than absolute indices, which means that you can't look at a segment in isolation – you have to understand the whole sourcemap.
-
-This package makes the process slightly easier.
-
-
-## Installation
-
-```bash
-npm install @jridgewell/sourcemap-codec
-```
-
-
-## Usage
-
-```js
-import { encode, decode } from '@jridgewell/sourcemap-codec';
-
-var decoded = decode( ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' );
-
-assert.deepEqual( decoded, [
- // the first line (of the generated code) has no mappings,
- // as shown by the starting semi-colon (which separates lines)
- [],
-
- // the second line contains four (comma-separated) segments
- [
- // segments are encoded as you'd expect:
- // [ generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex ]
-
- // i.e. the first segment begins at column 2, and maps back to the second column
- // of the second line (both zero-based) of the 0th source, and uses the 0th
- // name in the `map.names` array
- [ 2, 0, 2, 2, 0 ],
-
- // the remaining segments are 4-length rather than 5-length,
- // because they don't map a name
- [ 4, 0, 2, 4 ],
- [ 6, 0, 2, 5 ],
- [ 7, 0, 2, 7 ]
- ],
-
- // the final line contains two segments
- [
- [ 2, 1, 10, 19 ],
- [ 12, 1, 11, 20 ]
- ]
-]);
-
-var encoded = encode( decoded );
-assert.equal( encoded, ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' );
-```
-
-## Benchmarks
-
-```
-node v18.0.0
-
-amp.js.map - 45120 segments
-
-Decode Memory Usage:
-@jridgewell/sourcemap-codec 5479160 bytes
-sourcemap-codec 5659336 bytes
-source-map-0.6.1 17144440 bytes
-source-map-0.8.0 6867424 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Decode speed:
-decode: @jridgewell/sourcemap-codec x 502 ops/sec ±1.03% (90 runs sampled)
-decode: sourcemap-codec x 445 ops/sec ±0.97% (92 runs sampled)
-decode: source-map-0.6.1 x 36.01 ops/sec ±1.64% (49 runs sampled)
-decode: source-map-0.8.0 x 367 ops/sec ±0.04% (95 runs sampled)
-Fastest is decode: @jridgewell/sourcemap-codec
-
-Encode Memory Usage:
-@jridgewell/sourcemap-codec 1261620 bytes
-sourcemap-codec 9119248 bytes
-source-map-0.6.1 8968560 bytes
-source-map-0.8.0 8952952 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Encode speed:
-encode: @jridgewell/sourcemap-codec x 738 ops/sec ±0.42% (98 runs sampled)
-encode: sourcemap-codec x 238 ops/sec ±0.73% (88 runs sampled)
-encode: source-map-0.6.1 x 162 ops/sec ±0.43% (84 runs sampled)
-encode: source-map-0.8.0 x 191 ops/sec ±0.34% (90 runs sampled)
-Fastest is encode: @jridgewell/sourcemap-codec
-
-
-***
-
-
-babel.min.js.map - 347793 segments
-
-Decode Memory Usage:
-@jridgewell/sourcemap-codec 35338184 bytes
-sourcemap-codec 35922736 bytes
-source-map-0.6.1 62366360 bytes
-source-map-0.8.0 44337416 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Decode speed:
-decode: @jridgewell/sourcemap-codec x 40.35 ops/sec ±4.47% (54 runs sampled)
-decode: sourcemap-codec x 36.76 ops/sec ±3.67% (51 runs sampled)
-decode: source-map-0.6.1 x 4.44 ops/sec ±2.15% (16 runs sampled)
-decode: source-map-0.8.0 x 59.35 ops/sec ±0.05% (78 runs sampled)
-Fastest is decode: source-map-0.8.0
-
-Encode Memory Usage:
-@jridgewell/sourcemap-codec 7212604 bytes
-sourcemap-codec 21421456 bytes
-source-map-0.6.1 25286888 bytes
-source-map-0.8.0 25498744 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Encode speed:
-encode: @jridgewell/sourcemap-codec x 112 ops/sec ±0.13% (84 runs sampled)
-encode: sourcemap-codec x 30.23 ops/sec ±2.76% (53 runs sampled)
-encode: source-map-0.6.1 x 19.43 ops/sec ±3.70% (37 runs sampled)
-encode: source-map-0.8.0 x 19.40 ops/sec ±3.26% (37 runs sampled)
-Fastest is encode: @jridgewell/sourcemap-codec
-
-
-***
-
-
-preact.js.map - 1992 segments
-
-Decode Memory Usage:
-@jridgewell/sourcemap-codec 500272 bytes
-sourcemap-codec 516864 bytes
-source-map-0.6.1 1596672 bytes
-source-map-0.8.0 517272 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Decode speed:
-decode: @jridgewell/sourcemap-codec x 16,137 ops/sec ±0.17% (99 runs sampled)
-decode: sourcemap-codec x 12,139 ops/sec ±0.13% (99 runs sampled)
-decode: source-map-0.6.1 x 1,264 ops/sec ±0.12% (100 runs sampled)
-decode: source-map-0.8.0 x 9,894 ops/sec ±0.08% (101 runs sampled)
-Fastest is decode: @jridgewell/sourcemap-codec
-
-Encode Memory Usage:
-@jridgewell/sourcemap-codec 321026 bytes
-sourcemap-codec 830832 bytes
-source-map-0.6.1 586608 bytes
-source-map-0.8.0 586680 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Encode speed:
-encode: @jridgewell/sourcemap-codec x 19,876 ops/sec ±0.78% (95 runs sampled)
-encode: sourcemap-codec x 6,983 ops/sec ±0.15% (100 runs sampled)
-encode: source-map-0.6.1 x 5,070 ops/sec ±0.12% (102 runs sampled)
-encode: source-map-0.8.0 x 5,641 ops/sec ±0.17% (100 runs sampled)
-Fastest is encode: @jridgewell/sourcemap-codec
-
-
-***
-
-
-react.js.map - 5726 segments
-
-Decode Memory Usage:
-@jridgewell/sourcemap-codec 734848 bytes
-sourcemap-codec 954200 bytes
-source-map-0.6.1 2276432 bytes
-source-map-0.8.0 955488 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Decode speed:
-decode: @jridgewell/sourcemap-codec x 5,723 ops/sec ±0.12% (98 runs sampled)
-decode: sourcemap-codec x 4,555 ops/sec ±0.09% (101 runs sampled)
-decode: source-map-0.6.1 x 437 ops/sec ±0.11% (93 runs sampled)
-decode: source-map-0.8.0 x 3,441 ops/sec ±0.15% (100 runs sampled)
-Fastest is decode: @jridgewell/sourcemap-codec
-
-Encode Memory Usage:
-@jridgewell/sourcemap-codec 638672 bytes
-sourcemap-codec 1109840 bytes
-source-map-0.6.1 1321224 bytes
-source-map-0.8.0 1324448 bytes
-Smallest memory usage is @jridgewell/sourcemap-codec
-
-Encode speed:
-encode: @jridgewell/sourcemap-codec x 6,801 ops/sec ±0.48% (98 runs sampled)
-encode: sourcemap-codec x 2,533 ops/sec ±0.13% (101 runs sampled)
-encode: source-map-0.6.1 x 2,248 ops/sec ±0.08% (100 runs sampled)
-encode: source-map-0.8.0 x 2,303 ops/sec ±0.15% (100 runs sampled)
-Fastest is encode: @jridgewell/sourcemap-codec
-```
-
-# License
-
-MIT
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs b/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
deleted file mode 100644
index 3dff3721..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
+++ /dev/null
@@ -1,164 +0,0 @@
-const comma = ','.charCodeAt(0);
-const semicolon = ';'.charCodeAt(0);
-const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
-const intToChar = new Uint8Array(64); // 64 possible chars.
-const charToInt = new Uint8Array(128); // z is 122 in ASCII
-for (let i = 0; i < chars.length; i++) {
- const c = chars.charCodeAt(i);
- intToChar[i] = c;
- charToInt[c] = i;
-}
-// Provide a fallback for older environments.
-const td = typeof TextDecoder !== 'undefined'
- ? /* #__PURE__ */ new TextDecoder()
- : typeof Buffer !== 'undefined'
- ? {
- decode(buf) {
- const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
- return out.toString();
- },
- }
- : {
- decode(buf) {
- let out = '';
- for (let i = 0; i < buf.length; i++) {
- out += String.fromCharCode(buf[i]);
- }
- return out;
- },
- };
-function decode(mappings) {
- const state = new Int32Array(5);
- const decoded = [];
- let index = 0;
- do {
- const semi = indexOf(mappings, index);
- const line = [];
- let sorted = true;
- let lastCol = 0;
- state[0] = 0;
- for (let i = index; i < semi; i++) {
- let seg;
- i = decodeInteger(mappings, i, state, 0); // genColumn
- const col = state[0];
- if (col < lastCol)
- sorted = false;
- lastCol = col;
- if (hasMoreVlq(mappings, i, semi)) {
- i = decodeInteger(mappings, i, state, 1); // sourcesIndex
- i = decodeInteger(mappings, i, state, 2); // sourceLine
- i = decodeInteger(mappings, i, state, 3); // sourceColumn
- if (hasMoreVlq(mappings, i, semi)) {
- i = decodeInteger(mappings, i, state, 4); // namesIndex
- seg = [col, state[1], state[2], state[3], state[4]];
- }
- else {
- seg = [col, state[1], state[2], state[3]];
- }
- }
- else {
- seg = [col];
- }
- line.push(seg);
- }
- if (!sorted)
- sort(line);
- decoded.push(line);
- index = semi + 1;
- } while (index <= mappings.length);
- return decoded;
-}
-function indexOf(mappings, index) {
- const idx = mappings.indexOf(';', index);
- return idx === -1 ? mappings.length : idx;
-}
-function decodeInteger(mappings, pos, state, j) {
- let value = 0;
- let shift = 0;
- let integer = 0;
- do {
- const c = mappings.charCodeAt(pos++);
- integer = charToInt[c];
- value |= (integer & 31) << shift;
- shift += 5;
- } while (integer & 32);
- const shouldNegate = value & 1;
- value >>>= 1;
- if (shouldNegate) {
- value = -0x80000000 | -value;
- }
- state[j] += value;
- return pos;
-}
-function hasMoreVlq(mappings, i, length) {
- if (i >= length)
- return false;
- return mappings.charCodeAt(i) !== comma;
-}
-function sort(line) {
- line.sort(sortComparator);
-}
-function sortComparator(a, b) {
- return a[0] - b[0];
-}
-function encode(decoded) {
- const state = new Int32Array(5);
- const bufLength = 1024 * 16;
- const subLength = bufLength - 36;
- const buf = new Uint8Array(bufLength);
- const sub = buf.subarray(0, subLength);
- let pos = 0;
- let out = '';
- for (let i = 0; i < decoded.length; i++) {
- const line = decoded[i];
- if (i > 0) {
- if (pos === bufLength) {
- out += td.decode(buf);
- pos = 0;
- }
- buf[pos++] = semicolon;
- }
- if (line.length === 0)
- continue;
- state[0] = 0;
- for (let j = 0; j < line.length; j++) {
- const segment = line[j];
- // We can push up to 5 ints, each int can take at most 7 chars, and we
- // may push a comma.
- if (pos > subLength) {
- out += td.decode(sub);
- buf.copyWithin(0, subLength, pos);
- pos -= subLength;
- }
- if (j > 0)
- buf[pos++] = comma;
- pos = encodeInteger(buf, pos, state, segment, 0); // genColumn
- if (segment.length === 1)
- continue;
- pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex
- pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine
- pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn
- if (segment.length === 4)
- continue;
- pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex
- }
- }
- return out + td.decode(buf.subarray(0, pos));
-}
-function encodeInteger(buf, pos, state, segment, j) {
- const next = segment[j];
- let num = next - state[j];
- state[j] = next;
- num = num < 0 ? (-num << 1) | 1 : num << 1;
- do {
- let clamped = num & 0b011111;
- num >>>= 5;
- if (num > 0)
- clamped |= 0b100000;
- buf[pos++] = intToChar[clamped];
- } while (num > 0);
- return pos;
-}
-
-export { decode, encode };
-//# sourceMappingURL=sourcemap-codec.mjs.map
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map b/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map
deleted file mode 100644
index 236fd120..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sourcemap-codec.mjs","sources":["../src/sourcemap-codec.ts"],"sourcesContent":["export type SourceMapSegment =\n | [number]\n | [number, number, number, number]\n | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nconst comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n\n// Provide a fallback for older environments.\nconst td =\n typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf: Uint8Array) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf: Uint8Array) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\n\nexport function decode(mappings: string): SourceMapMappings {\n const state: [number, number, number, number, number] = new Int32Array(5) as any;\n const decoded: SourceMapMappings = [];\n\n let index = 0;\n do {\n const semi = indexOf(mappings, index);\n const line: SourceMapLine = [];\n let sorted = true;\n let lastCol = 0;\n state[0] = 0;\n\n for (let i = index; i < semi; i++) {\n let seg: SourceMapSegment;\n\n i = decodeInteger(mappings, i, state, 0); // genColumn\n const col = state[0];\n if (col < lastCol) sorted = false;\n lastCol = col;\n\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 1); // sourcesIndex\n i = decodeInteger(mappings, i, state, 2); // sourceLine\n i = decodeInteger(mappings, i, state, 3); // sourceColumn\n\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 4); // namesIndex\n seg = [col, state[1], state[2], state[3], state[4]];\n } else {\n seg = [col, state[1], state[2], state[3]];\n }\n } else {\n seg = [col];\n }\n\n line.push(seg);\n }\n\n if (!sorted) sort(line);\n decoded.push(line);\n index = semi + 1;\n } while (index <= mappings.length);\n\n return decoded;\n}\n\nfunction indexOf(mappings: string, index: number): number {\n const idx = mappings.indexOf(';', index);\n return idx === -1 ? mappings.length : idx;\n}\n\nfunction decodeInteger(mappings: string, pos: number, state: SourceMapSegment, j: number): number {\n let value = 0;\n let shift = 0;\n let integer = 0;\n\n do {\n const c = mappings.charCodeAt(pos++);\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n\n const shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n\n state[j] += value;\n return pos;\n}\n\nfunction hasMoreVlq(mappings: string, i: number, length: number): boolean {\n if (i >= length) return false;\n return mappings.charCodeAt(i) !== comma;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly): string;\nexport function encode(decoded: Readonly): string {\n const state: [number, number, number, number, number] = new Int32Array(5) as any;\n const bufLength = 1024 * 16;\n const subLength = bufLength - 36;\n const buf = new Uint8Array(bufLength);\n const sub = buf.subarray(0, subLength);\n let pos = 0;\n let out = '';\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) {\n if (pos === bufLength) {\n out += td.decode(buf);\n pos = 0;\n }\n buf[pos++] = semicolon;\n }\n if (line.length === 0) continue;\n\n state[0] = 0;\n\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n // We can push up to 5 ints, each int can take at most 7 chars, and we\n // may push a comma.\n if (pos > subLength) {\n out += td.decode(sub);\n buf.copyWithin(0, subLength, pos);\n pos -= subLength;\n }\n if (j > 0) buf[pos++] = comma;\n\n pos = encodeInteger(buf, pos, state, segment, 0); // genColumn\n\n if (segment.length === 1) continue;\n pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex\n pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine\n pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn\n\n if (segment.length === 4) continue;\n pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex\n }\n }\n\n return out + td.decode(buf.subarray(0, pos));\n}\n\nfunction encodeInteger(\n buf: Uint8Array,\n pos: number,\n state: SourceMapSegment,\n segment: SourceMapSegment,\n j: number,\n): number {\n const next = segment[j];\n let num = next - state[j];\n state[j] = next;\n\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n let clamped = num & 0b011111;\n num >>>= 5;\n if (num > 0) clamped |= 0b100000;\n buf[pos++] = intToChar[clamped];\n } while (num > 0);\n\n return pos;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js b/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
deleted file mode 100644
index bec92a9c..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
+++ /dev/null
@@ -1,175 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.sourcemapCodec = {}));
-})(this, (function (exports) { 'use strict';
-
- const comma = ','.charCodeAt(0);
- const semicolon = ';'.charCodeAt(0);
- const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
- const intToChar = new Uint8Array(64); // 64 possible chars.
- const charToInt = new Uint8Array(128); // z is 122 in ASCII
- for (let i = 0; i < chars.length; i++) {
- const c = chars.charCodeAt(i);
- intToChar[i] = c;
- charToInt[c] = i;
- }
- // Provide a fallback for older environments.
- const td = typeof TextDecoder !== 'undefined'
- ? /* #__PURE__ */ new TextDecoder()
- : typeof Buffer !== 'undefined'
- ? {
- decode(buf) {
- const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
- return out.toString();
- },
- }
- : {
- decode(buf) {
- let out = '';
- for (let i = 0; i < buf.length; i++) {
- out += String.fromCharCode(buf[i]);
- }
- return out;
- },
- };
- function decode(mappings) {
- const state = new Int32Array(5);
- const decoded = [];
- let index = 0;
- do {
- const semi = indexOf(mappings, index);
- const line = [];
- let sorted = true;
- let lastCol = 0;
- state[0] = 0;
- for (let i = index; i < semi; i++) {
- let seg;
- i = decodeInteger(mappings, i, state, 0); // genColumn
- const col = state[0];
- if (col < lastCol)
- sorted = false;
- lastCol = col;
- if (hasMoreVlq(mappings, i, semi)) {
- i = decodeInteger(mappings, i, state, 1); // sourcesIndex
- i = decodeInteger(mappings, i, state, 2); // sourceLine
- i = decodeInteger(mappings, i, state, 3); // sourceColumn
- if (hasMoreVlq(mappings, i, semi)) {
- i = decodeInteger(mappings, i, state, 4); // namesIndex
- seg = [col, state[1], state[2], state[3], state[4]];
- }
- else {
- seg = [col, state[1], state[2], state[3]];
- }
- }
- else {
- seg = [col];
- }
- line.push(seg);
- }
- if (!sorted)
- sort(line);
- decoded.push(line);
- index = semi + 1;
- } while (index <= mappings.length);
- return decoded;
- }
- function indexOf(mappings, index) {
- const idx = mappings.indexOf(';', index);
- return idx === -1 ? mappings.length : idx;
- }
- function decodeInteger(mappings, pos, state, j) {
- let value = 0;
- let shift = 0;
- let integer = 0;
- do {
- const c = mappings.charCodeAt(pos++);
- integer = charToInt[c];
- value |= (integer & 31) << shift;
- shift += 5;
- } while (integer & 32);
- const shouldNegate = value & 1;
- value >>>= 1;
- if (shouldNegate) {
- value = -0x80000000 | -value;
- }
- state[j] += value;
- return pos;
- }
- function hasMoreVlq(mappings, i, length) {
- if (i >= length)
- return false;
- return mappings.charCodeAt(i) !== comma;
- }
- function sort(line) {
- line.sort(sortComparator);
- }
- function sortComparator(a, b) {
- return a[0] - b[0];
- }
- function encode(decoded) {
- const state = new Int32Array(5);
- const bufLength = 1024 * 16;
- const subLength = bufLength - 36;
- const buf = new Uint8Array(bufLength);
- const sub = buf.subarray(0, subLength);
- let pos = 0;
- let out = '';
- for (let i = 0; i < decoded.length; i++) {
- const line = decoded[i];
- if (i > 0) {
- if (pos === bufLength) {
- out += td.decode(buf);
- pos = 0;
- }
- buf[pos++] = semicolon;
- }
- if (line.length === 0)
- continue;
- state[0] = 0;
- for (let j = 0; j < line.length; j++) {
- const segment = line[j];
- // We can push up to 5 ints, each int can take at most 7 chars, and we
- // may push a comma.
- if (pos > subLength) {
- out += td.decode(sub);
- buf.copyWithin(0, subLength, pos);
- pos -= subLength;
- }
- if (j > 0)
- buf[pos++] = comma;
- pos = encodeInteger(buf, pos, state, segment, 0); // genColumn
- if (segment.length === 1)
- continue;
- pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex
- pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine
- pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn
- if (segment.length === 4)
- continue;
- pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex
- }
- }
- return out + td.decode(buf.subarray(0, pos));
- }
- function encodeInteger(buf, pos, state, segment, j) {
- const next = segment[j];
- let num = next - state[j];
- state[j] = next;
- num = num < 0 ? (-num << 1) | 1 : num << 1;
- do {
- let clamped = num & 0b011111;
- num >>>= 5;
- if (num > 0)
- clamped |= 0b100000;
- buf[pos++] = intToChar[clamped];
- } while (num > 0);
- return pos;
- }
-
- exports.decode = decode;
- exports.encode = encode;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
-//# sourceMappingURL=sourcemap-codec.umd.js.map
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map b/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map
deleted file mode 100644
index b6b2003c..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sourcemap-codec.umd.js","sources":["../src/sourcemap-codec.ts"],"sourcesContent":["export type SourceMapSegment =\n | [number]\n | [number, number, number, number]\n | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nconst comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n\n// Provide a fallback for older environments.\nconst td =\n typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf: Uint8Array) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf: Uint8Array) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\n\nexport function decode(mappings: string): SourceMapMappings {\n const state: [number, number, number, number, number] = new Int32Array(5) as any;\n const decoded: SourceMapMappings = [];\n\n let index = 0;\n do {\n const semi = indexOf(mappings, index);\n const line: SourceMapLine = [];\n let sorted = true;\n let lastCol = 0;\n state[0] = 0;\n\n for (let i = index; i < semi; i++) {\n let seg: SourceMapSegment;\n\n i = decodeInteger(mappings, i, state, 0); // genColumn\n const col = state[0];\n if (col < lastCol) sorted = false;\n lastCol = col;\n\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 1); // sourcesIndex\n i = decodeInteger(mappings, i, state, 2); // sourceLine\n i = decodeInteger(mappings, i, state, 3); // sourceColumn\n\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 4); // namesIndex\n seg = [col, state[1], state[2], state[3], state[4]];\n } else {\n seg = [col, state[1], state[2], state[3]];\n }\n } else {\n seg = [col];\n }\n\n line.push(seg);\n }\n\n if (!sorted) sort(line);\n decoded.push(line);\n index = semi + 1;\n } while (index <= mappings.length);\n\n return decoded;\n}\n\nfunction indexOf(mappings: string, index: number): number {\n const idx = mappings.indexOf(';', index);\n return idx === -1 ? mappings.length : idx;\n}\n\nfunction decodeInteger(mappings: string, pos: number, state: SourceMapSegment, j: number): number {\n let value = 0;\n let shift = 0;\n let integer = 0;\n\n do {\n const c = mappings.charCodeAt(pos++);\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n\n const shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n\n state[j] += value;\n return pos;\n}\n\nfunction hasMoreVlq(mappings: string, i: number, length: number): boolean {\n if (i >= length) return false;\n return mappings.charCodeAt(i) !== comma;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly): string;\nexport function encode(decoded: Readonly): string {\n const state: [number, number, number, number, number] = new Int32Array(5) as any;\n const bufLength = 1024 * 16;\n const subLength = bufLength - 36;\n const buf = new Uint8Array(bufLength);\n const sub = buf.subarray(0, subLength);\n let pos = 0;\n let out = '';\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) {\n if (pos === bufLength) {\n out += td.decode(buf);\n pos = 0;\n }\n buf[pos++] = semicolon;\n }\n if (line.length === 0) continue;\n\n state[0] = 0;\n\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n // We can push up to 5 ints, each int can take at most 7 chars, and we\n // may push a comma.\n if (pos > subLength) {\n out += td.decode(sub);\n buf.copyWithin(0, subLength, pos);\n pos -= subLength;\n }\n if (j > 0) buf[pos++] = comma;\n\n pos = encodeInteger(buf, pos, state, segment, 0); // genColumn\n\n if (segment.length === 1) continue;\n pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex\n pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine\n pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn\n\n if (segment.length === 4) continue;\n pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex\n }\n }\n\n return out + td.decode(buf.subarray(0, pos));\n}\n\nfunction encodeInteger(\n buf: Uint8Array,\n pos: number,\n state: SourceMapSegment,\n segment: SourceMapSegment,\n j: number,\n): number {\n const next = segment[j];\n let num = next - state[j];\n state[j] = next;\n\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n let clamped = num & 0b011111;\n num >>>= 5;\n if (num > 0) clamped |= 0b100000;\n buf[pos++] = intToChar[clamped];\n } while (num > 0);\n\n return pos;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts b/website/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts
deleted file mode 100644
index 410d3202..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export declare type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
-export declare type SourceMapLine = SourceMapSegment[];
-export declare type SourceMapMappings = SourceMapLine[];
-export declare function decode(mappings: string): SourceMapMappings;
-export declare function encode(decoded: SourceMapMappings): string;
-export declare function encode(decoded: Readonly): string;
diff --git a/website/node_modules/@jridgewell/sourcemap-codec/package.json b/website/node_modules/@jridgewell/sourcemap-codec/package.json
deleted file mode 100644
index 578448f1..00000000
--- a/website/node_modules/@jridgewell/sourcemap-codec/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "name": "@jridgewell/sourcemap-codec",
- "version": "1.4.15",
- "description": "Encode/decode sourcemap mappings",
- "keywords": [
- "sourcemap",
- "vlq"
- ],
- "main": "dist/sourcemap-codec.umd.js",
- "module": "dist/sourcemap-codec.mjs",
- "types": "dist/types/sourcemap-codec.d.ts",
- "files": [
- "dist"
- ],
- "exports": {
- ".": [
- {
- "types": "./dist/types/sourcemap-codec.d.ts",
- "browser": "./dist/sourcemap-codec.umd.js",
- "require": "./dist/sourcemap-codec.umd.js",
- "import": "./dist/sourcemap-codec.mjs"
- },
- "./dist/sourcemap-codec.umd.js"
- ],
- "./package.json": "./package.json"
- },
- "scripts": {
- "benchmark": "run-s build:rollup benchmark:*",
- "benchmark:install": "cd benchmark && npm install",
- "benchmark:only": "node --expose-gc benchmark/index.js",
- "build": "run-s -n build:*",
- "build:rollup": "rollup -c rollup.config.js",
- "build:ts": "tsc --project tsconfig.build.json",
- "lint": "run-s -n lint:*",
- "lint:prettier": "npm run test:lint:prettier -- --write",
- "lint:ts": "npm run test:lint:ts -- --fix",
- "prebuild": "rm -rf dist",
- "prepublishOnly": "npm run preversion",
- "preversion": "run-s test build",
- "pretest": "run-s build:rollup",
- "test": "run-s -n test:lint test:only",
- "test:debug": "mocha --inspect-brk",
- "test:lint": "run-s -n test:lint:*",
- "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
- "test:lint:ts": "eslint '{src,test}/**/*.ts'",
- "test:only": "mocha",
- "test:coverage": "c8 mocha",
- "test:watch": "mocha --watch"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jridgewell/sourcemap-codec.git"
- },
- "author": "Rich Harris",
- "license": "MIT",
- "devDependencies": {
- "@rollup/plugin-typescript": "8.3.0",
- "@types/node": "17.0.15",
- "@typescript-eslint/eslint-plugin": "5.10.0",
- "@typescript-eslint/parser": "5.10.0",
- "benchmark": "2.1.4",
- "c8": "7.11.2",
- "eslint": "8.7.0",
- "eslint-config-prettier": "8.3.0",
- "mocha": "9.2.0",
- "npm-run-all": "4.1.5",
- "prettier": "2.5.1",
- "rollup": "2.64.0",
- "source-map": "0.6.1",
- "source-map-js": "1.0.2",
- "sourcemap-codec": "1.4.8",
- "typescript": "4.5.4"
- }
-}
diff --git a/website/node_modules/@jridgewell/trace-mapping/LICENSE b/website/node_modules/@jridgewell/trace-mapping/LICENSE
deleted file mode 100644
index 37bb488f..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2022 Justin Ridgewell
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@jridgewell/trace-mapping/README.md b/website/node_modules/@jridgewell/trace-mapping/README.md
deleted file mode 100644
index 969558d7..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/README.md
+++ /dev/null
@@ -1,257 +0,0 @@
-# @jridgewell/trace-mapping
-
-> Trace the original position through a source map
-
-`trace-mapping` allows you to take the line and column of an output file and trace it to the
-original location in the source file through a source map.
-
-You may already be familiar with the [`source-map`][source-map] package's `SourceMapConsumer`. This
-provides the same `originalPositionFor` and `generatedPositionFor` API, without requiring WASM.
-
-## Installation
-
-```sh
-npm install @jridgewell/trace-mapping
-```
-
-## Usage
-
-```typescript
-import {
- TraceMap,
- originalPositionFor,
- generatedPositionFor,
- sourceContentFor,
- isIgnored,
-} from '@jridgewell/trace-mapping';
-
-const tracer = new TraceMap({
- version: 3,
- sources: ['input.js'],
- sourcesContent: ['content of input.js'],
- names: ['foo'],
- mappings: 'KAyCIA',
- ignoreList: [],
-});
-
-// Lines start at line 1, columns at column 0.
-const traced = originalPositionFor(tracer, { line: 1, column: 5 });
-assert.deepEqual(traced, {
- source: 'input.js',
- line: 42,
- column: 4,
- name: 'foo',
-});
-
-const content = sourceContentFor(tracer, traced.source);
-assert.strictEqual(content, 'content for input.js');
-
-const generated = generatedPositionFor(tracer, {
- source: 'input.js',
- line: 42,
- column: 4,
-});
-assert.deepEqual(generated, {
- line: 1,
- column: 5,
-});
-
-const ignored = isIgnored(tracer, 'input.js');
-assert.equal(ignored, false);
-```
-
-We also provide a lower level API to get the actual segment that matches our line and column. Unlike
-`originalPositionFor`, `traceSegment` uses a 0-base for `line`:
-
-```typescript
-import { traceSegment } from '@jridgewell/trace-mapping';
-
-// line is 0-base.
-const traced = traceSegment(tracer, /* line */ 0, /* column */ 5);
-
-// Segments are [outputColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
-// Again, line is 0-base and so is sourceLine
-assert.deepEqual(traced, [5, 0, 41, 4, 0]);
-```
-
-### SectionedSourceMaps
-
-The sourcemap spec defines a special `sections` field that's designed to handle concatenation of
-output code with associated sourcemaps. This type of sourcemap is rarely used (no major build tool
-produces it), but if you are hand coding a concatenation you may need it. We provide an `AnyMap`
-helper that can receive either a regular sourcemap or a `SectionedSourceMap` and returns a
-`TraceMap` instance:
-
-```typescript
-import { AnyMap } from '@jridgewell/trace-mapping';
-const fooOutput = 'foo';
-const barOutput = 'bar';
-const output = [fooOutput, barOutput].join('\n');
-
-const sectioned = new AnyMap({
- version: 3,
- sections: [
- {
- // 0-base line and column
- offset: { line: 0, column: 0 },
- // fooOutput's sourcemap
- map: {
- version: 3,
- sources: ['foo.js'],
- names: ['foo'],
- mappings: 'AAAAA',
- },
- },
- {
- // barOutput's sourcemap will not affect the first line, only the second
- offset: { line: 1, column: 0 },
- map: {
- version: 3,
- sources: ['bar.js'],
- names: ['bar'],
- mappings: 'AAAAA',
- },
- },
- ],
-});
-
-const traced = originalPositionFor(sectioned, {
- line: 2,
- column: 0,
-});
-
-assert.deepEqual(traced, {
- source: 'bar.js',
- line: 1,
- column: 0,
- name: 'bar',
-});
-```
-
-## Benchmarks
-
-```
-node v18.0.0
-
-amp.js.map - 45120 segments
-
-Memory Usage:
-trace-mapping decoded 562400 bytes
-trace-mapping encoded 5706544 bytes
-source-map-js 10717664 bytes
-source-map-0.6.1 17446384 bytes
-source-map-0.8.0 9701757 bytes
-Smallest memory usage is trace-mapping decoded
-
-Init speed:
-trace-mapping: decoded JSON input x 180 ops/sec ±0.34% (85 runs sampled)
-trace-mapping: encoded JSON input x 364 ops/sec ±1.77% (89 runs sampled)
-trace-mapping: decoded Object input x 3,116 ops/sec ±0.50% (96 runs sampled)
-trace-mapping: encoded Object input x 410 ops/sec ±2.62% (85 runs sampled)
-source-map-js: encoded Object input x 84.23 ops/sec ±0.91% (73 runs sampled)
-source-map-0.6.1: encoded Object input x 37.21 ops/sec ±2.08% (51 runs sampled)
-Fastest is trace-mapping: decoded Object input
-
-Trace speed:
-trace-mapping: decoded originalPositionFor x 3,952,212 ops/sec ±0.17% (98 runs sampled)
-trace-mapping: encoded originalPositionFor x 3,487,468 ops/sec ±1.58% (90 runs sampled)
-source-map-js: encoded originalPositionFor x 827,730 ops/sec ±0.78% (97 runs sampled)
-source-map-0.6.1: encoded originalPositionFor x 748,991 ops/sec ±0.53% (94 runs sampled)
-source-map-0.8.0: encoded originalPositionFor x 2,532,894 ops/sec ±0.57% (95 runs sampled)
-Fastest is trace-mapping: decoded originalPositionFor
-
-
-***
-
-
-babel.min.js.map - 347793 segments
-
-Memory Usage:
-trace-mapping decoded 89832 bytes
-trace-mapping encoded 35474640 bytes
-source-map-js 51257176 bytes
-source-map-0.6.1 63515664 bytes
-source-map-0.8.0 42933752 bytes
-Smallest memory usage is trace-mapping decoded
-
-Init speed:
-trace-mapping: decoded JSON input x 15.41 ops/sec ±8.65% (34 runs sampled)
-trace-mapping: encoded JSON input x 28.20 ops/sec ±12.87% (42 runs sampled)
-trace-mapping: decoded Object input x 964 ops/sec ±0.36% (99 runs sampled)
-trace-mapping: encoded Object input x 31.77 ops/sec ±13.79% (45 runs sampled)
-source-map-js: encoded Object input x 6.45 ops/sec ±5.16% (21 runs sampled)
-source-map-0.6.1: encoded Object input x 4.07 ops/sec ±5.24% (15 runs sampled)
-Fastest is trace-mapping: decoded Object input
-
-Trace speed:
-trace-mapping: decoded originalPositionFor x 7,183,038 ops/sec ±0.58% (95 runs sampled)
-trace-mapping: encoded originalPositionFor x 5,192,185 ops/sec ±0.41% (100 runs sampled)
-source-map-js: encoded originalPositionFor x 4,259,489 ops/sec ±0.79% (94 runs sampled)
-source-map-0.6.1: encoded originalPositionFor x 3,742,629 ops/sec ±0.71% (95 runs sampled)
-source-map-0.8.0: encoded originalPositionFor x 6,270,211 ops/sec ±0.64% (94 runs sampled)
-Fastest is trace-mapping: decoded originalPositionFor
-
-
-***
-
-
-preact.js.map - 1992 segments
-
-Memory Usage:
-trace-mapping decoded 37128 bytes
-trace-mapping encoded 247280 bytes
-source-map-js 1143536 bytes
-source-map-0.6.1 1290992 bytes
-source-map-0.8.0 96544 bytes
-Smallest memory usage is trace-mapping decoded
-
-Init speed:
-trace-mapping: decoded JSON input x 3,483 ops/sec ±0.30% (98 runs sampled)
-trace-mapping: encoded JSON input x 6,092 ops/sec ±0.18% (97 runs sampled)
-trace-mapping: decoded Object input x 249,076 ops/sec ±0.24% (98 runs sampled)
-trace-mapping: encoded Object input x 14,555 ops/sec ±0.48% (100 runs sampled)
-source-map-js: encoded Object input x 2,447 ops/sec ±0.36% (99 runs sampled)
-source-map-0.6.1: encoded Object input x 1,201 ops/sec ±0.57% (96 runs sampled)
-Fastest is trace-mapping: decoded Object input
-
-Trace speed:
-trace-mapping: decoded originalPositionFor x 7,620,192 ops/sec ±0.09% (99 runs sampled)
-trace-mapping: encoded originalPositionFor x 6,872,554 ops/sec ±0.30% (97 runs sampled)
-source-map-js: encoded originalPositionFor x 2,489,570 ops/sec ±0.35% (94 runs sampled)
-source-map-0.6.1: encoded originalPositionFor x 1,698,633 ops/sec ±0.28% (98 runs sampled)
-source-map-0.8.0: encoded originalPositionFor x 4,015,644 ops/sec ±0.22% (98 runs sampled)
-Fastest is trace-mapping: decoded originalPositionFor
-
-
-***
-
-
-react.js.map - 5726 segments
-
-Memory Usage:
-trace-mapping decoded 16176 bytes
-trace-mapping encoded 681552 bytes
-source-map-js 2418352 bytes
-source-map-0.6.1 2443672 bytes
-source-map-0.8.0 111768 bytes
-Smallest memory usage is trace-mapping decoded
-
-Init speed:
-trace-mapping: decoded JSON input x 1,720 ops/sec ±0.34% (98 runs sampled)
-trace-mapping: encoded JSON input x 4,406 ops/sec ±0.35% (100 runs sampled)
-trace-mapping: decoded Object input x 92,122 ops/sec ±0.10% (99 runs sampled)
-trace-mapping: encoded Object input x 5,385 ops/sec ±0.37% (99 runs sampled)
-source-map-js: encoded Object input x 794 ops/sec ±0.40% (98 runs sampled)
-source-map-0.6.1: encoded Object input x 416 ops/sec ±0.54% (91 runs sampled)
-Fastest is trace-mapping: decoded Object input
-
-Trace speed:
-trace-mapping: decoded originalPositionFor x 32,759,519 ops/sec ±0.33% (100 runs sampled)
-trace-mapping: encoded originalPositionFor x 31,116,306 ops/sec ±0.33% (97 runs sampled)
-source-map-js: encoded originalPositionFor x 17,458,435 ops/sec ±0.44% (97 runs sampled)
-source-map-0.6.1: encoded originalPositionFor x 12,687,097 ops/sec ±0.43% (95 runs sampled)
-source-map-0.8.0: encoded originalPositionFor x 23,538,275 ops/sec ±0.38% (95 runs sampled)
-Fastest is trace-mapping: decoded originalPositionFor
-```
-
-[source-map]: https://www.npmjs.com/package/source-map
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs b/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
deleted file mode 100644
index 8238e0ae..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
+++ /dev/null
@@ -1,580 +0,0 @@
-import { encode, decode } from '@jridgewell/sourcemap-codec';
-import resolveUri from '@jridgewell/resolve-uri';
-
-function resolve(input, base) {
- // The base is always treated as a directory, if it's not empty.
- // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327
- // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401
- if (base && !base.endsWith('/'))
- base += '/';
- return resolveUri(input, base);
-}
-
-/**
- * Removes everything after the last "/", but leaves the slash.
- */
-function stripFilename(path) {
- if (!path)
- return '';
- const index = path.lastIndexOf('/');
- return path.slice(0, index + 1);
-}
-
-const COLUMN = 0;
-const SOURCES_INDEX = 1;
-const SOURCE_LINE = 2;
-const SOURCE_COLUMN = 3;
-const NAMES_INDEX = 4;
-const REV_GENERATED_LINE = 1;
-const REV_GENERATED_COLUMN = 2;
-
-function maybeSort(mappings, owned) {
- const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);
- if (unsortedIndex === mappings.length)
- return mappings;
- // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If
- // not, we do not want to modify the consumer's input array.
- if (!owned)
- mappings = mappings.slice();
- for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {
- mappings[i] = sortSegments(mappings[i], owned);
- }
- return mappings;
-}
-function nextUnsortedSegmentLine(mappings, start) {
- for (let i = start; i < mappings.length; i++) {
- if (!isSorted(mappings[i]))
- return i;
- }
- return mappings.length;
-}
-function isSorted(line) {
- for (let j = 1; j < line.length; j++) {
- if (line[j][COLUMN] < line[j - 1][COLUMN]) {
- return false;
- }
- }
- return true;
-}
-function sortSegments(line, owned) {
- if (!owned)
- line = line.slice();
- return line.sort(sortComparator);
-}
-function sortComparator(a, b) {
- return a[COLUMN] - b[COLUMN];
-}
-
-let found = false;
-/**
- * A binary search implementation that returns the index if a match is found.
- * If no match is found, then the left-index (the index associated with the item that comes just
- * before the desired index) is returned. To maintain proper sort order, a splice would happen at
- * the next index:
- *
- * ```js
- * const array = [1, 3];
- * const needle = 2;
- * const index = binarySearch(array, needle, (item, needle) => item - needle);
- *
- * assert.equal(index, 0);
- * array.splice(index + 1, 0, needle);
- * assert.deepEqual(array, [1, 2, 3]);
- * ```
- */
-function binarySearch(haystack, needle, low, high) {
- while (low <= high) {
- const mid = low + ((high - low) >> 1);
- const cmp = haystack[mid][COLUMN] - needle;
- if (cmp === 0) {
- found = true;
- return mid;
- }
- if (cmp < 0) {
- low = mid + 1;
- }
- else {
- high = mid - 1;
- }
- }
- found = false;
- return low - 1;
-}
-function upperBound(haystack, needle, index) {
- for (let i = index + 1; i < haystack.length; index = i++) {
- if (haystack[i][COLUMN] !== needle)
- break;
- }
- return index;
-}
-function lowerBound(haystack, needle, index) {
- for (let i = index - 1; i >= 0; index = i--) {
- if (haystack[i][COLUMN] !== needle)
- break;
- }
- return index;
-}
-function memoizedState() {
- return {
- lastKey: -1,
- lastNeedle: -1,
- lastIndex: -1,
- };
-}
-/**
- * This overly complicated beast is just to record the last tested line/column and the resulting
- * index, allowing us to skip a few tests if mappings are monotonically increasing.
- */
-function memoizedBinarySearch(haystack, needle, state, key) {
- const { lastKey, lastNeedle, lastIndex } = state;
- let low = 0;
- let high = haystack.length - 1;
- if (key === lastKey) {
- if (needle === lastNeedle) {
- found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;
- return lastIndex;
- }
- if (needle >= lastNeedle) {
- // lastIndex may be -1 if the previous needle was not found.
- low = lastIndex === -1 ? 0 : lastIndex;
- }
- else {
- high = lastIndex;
- }
- }
- state.lastKey = key;
- state.lastNeedle = needle;
- return (state.lastIndex = binarySearch(haystack, needle, low, high));
-}
-
-// Rebuilds the original source files, with mappings that are ordered by source line/column instead
-// of generated line/column.
-function buildBySources(decoded, memos) {
- const sources = memos.map(buildNullArray);
- for (let i = 0; i < decoded.length; i++) {
- const line = decoded[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- if (seg.length === 1)
- continue;
- const sourceIndex = seg[SOURCES_INDEX];
- const sourceLine = seg[SOURCE_LINE];
- const sourceColumn = seg[SOURCE_COLUMN];
- const originalSource = sources[sourceIndex];
- const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = []));
- const memo = memos[sourceIndex];
- // The binary search either found a match, or it found the left-index just before where the
- // segment should go. Either way, we want to insert after that. And there may be multiple
- // generated segments associated with an original location, so there may need to move several
- // indexes before we find where we need to insert.
- let index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));
- memo.lastIndex = ++index;
- insert(originalLine, index, [sourceColumn, i, seg[COLUMN]]);
- }
- }
- return sources;
-}
-function insert(array, index, value) {
- for (let i = array.length; i > index; i--) {
- array[i] = array[i - 1];
- }
- array[index] = value;
-}
-// Null arrays allow us to use ordered index keys without actually allocating contiguous memory like
-// a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.
-// Numeric properties on objects are magically sorted in ascending order by the engine regardless of
-// the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending
-// order when iterating with for-in.
-function buildNullArray() {
- return { __proto__: null };
-}
-
-const AnyMap = function (map, mapUrl) {
- const parsed = parse(map);
- if (!('sections' in parsed)) {
- return new TraceMap(parsed, mapUrl);
- }
- const mappings = [];
- const sources = [];
- const sourcesContent = [];
- const names = [];
- const ignoreList = [];
- recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, ignoreList, 0, 0, Infinity, Infinity);
- const joined = {
- version: 3,
- file: parsed.file,
- names,
- sources,
- sourcesContent,
- mappings,
- ignoreList,
- };
- return presortedDecodedMap(joined);
-};
-function parse(map) {
- return typeof map === 'string' ? JSON.parse(map) : map;
-}
-function recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {
- const { sections } = input;
- for (let i = 0; i < sections.length; i++) {
- const { map, offset } = sections[i];
- let sl = stopLine;
- let sc = stopColumn;
- if (i + 1 < sections.length) {
- const nextOffset = sections[i + 1].offset;
- sl = Math.min(stopLine, lineOffset + nextOffset.line);
- if (sl === stopLine) {
- sc = Math.min(stopColumn, columnOffset + nextOffset.column);
- }
- else if (sl < stopLine) {
- sc = columnOffset + nextOffset.column;
- }
- }
- addSection(map, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset + offset.line, columnOffset + offset.column, sl, sc);
- }
-}
-function addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {
- const parsed = parse(input);
- if ('sections' in parsed)
- return recurse(...arguments);
- const map = new TraceMap(parsed, mapUrl);
- const sourcesOffset = sources.length;
- const namesOffset = names.length;
- const decoded = decodedMappings(map);
- const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;
- append(sources, resolvedSources);
- append(names, map.names);
- if (contents)
- append(sourcesContent, contents);
- else
- for (let i = 0; i < resolvedSources.length; i++)
- sourcesContent.push(null);
- if (ignores)
- for (let i = 0; i < ignores.length; i++)
- ignoreList.push(ignores[i] + sourcesOffset);
- for (let i = 0; i < decoded.length; i++) {
- const lineI = lineOffset + i;
- // We can only add so many lines before we step into the range that the next section's map
- // controls. When we get to the last line, then we'll start checking the segments to see if
- // they've crossed into the column range. But it may not have any columns that overstep, so we
- // still need to check that we don't overstep lines, too.
- if (lineI > stopLine)
- return;
- // The out line may already exist in mappings (if we're continuing the line started by a
- // previous section). Or, we may have jumped ahead several lines to start this section.
- const out = getLine(mappings, lineI);
- // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the
- // map can be multiple lines), it doesn't.
- const cOffset = i === 0 ? columnOffset : 0;
- const line = decoded[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const column = cOffset + seg[COLUMN];
- // If this segment steps into the column range that the next section's map controls, we need
- // to stop early.
- if (lineI === stopLine && column >= stopColumn)
- return;
- if (seg.length === 1) {
- out.push([column]);
- continue;
- }
- const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];
- const sourceLine = seg[SOURCE_LINE];
- const sourceColumn = seg[SOURCE_COLUMN];
- out.push(seg.length === 4
- ? [column, sourcesIndex, sourceLine, sourceColumn]
- : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]);
- }
- }
-}
-function append(arr, other) {
- for (let i = 0; i < other.length; i++)
- arr.push(other[i]);
-}
-function getLine(arr, index) {
- for (let i = arr.length; i <= index; i++)
- arr[i] = [];
- return arr[index];
-}
-
-const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';
-const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';
-const LEAST_UPPER_BOUND = -1;
-const GREATEST_LOWER_BOUND = 1;
-class TraceMap {
- constructor(map, mapUrl) {
- const isString = typeof map === 'string';
- if (!isString && map._decodedMemo)
- return map;
- const parsed = (isString ? JSON.parse(map) : map);
- const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;
- this.version = version;
- this.file = file;
- this.names = names || [];
- this.sourceRoot = sourceRoot;
- this.sources = sources;
- this.sourcesContent = sourcesContent;
- this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || undefined;
- const from = resolve(sourceRoot || '', stripFilename(mapUrl));
- this.resolvedSources = sources.map((s) => resolve(s || '', from));
- const { mappings } = parsed;
- if (typeof mappings === 'string') {
- this._encoded = mappings;
- this._decoded = undefined;
- }
- else {
- this._encoded = undefined;
- this._decoded = maybeSort(mappings, isString);
- }
- this._decodedMemo = memoizedState();
- this._bySources = undefined;
- this._bySourceMemos = undefined;
- }
-}
-/**
- * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
- * with public access modifiers.
- */
-function cast(map) {
- return map;
-}
-/**
- * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
- */
-function encodedMappings(map) {
- var _a;
- var _b;
- return ((_a = (_b = cast(map))._encoded) !== null && _a !== void 0 ? _a : (_b._encoded = encode(cast(map)._decoded)));
-}
-/**
- * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
- */
-function decodedMappings(map) {
- var _a;
- return ((_a = cast(map))._decoded || (_a._decoded = decode(cast(map)._encoded)));
-}
-/**
- * A low-level API to find the segment associated with a generated line/column (think, from a
- * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.
- */
-function traceSegment(map, line, column) {
- const decoded = decodedMappings(map);
- // It's common for parent source maps to have pointers to lines that have no
- // mapping (like a "//# sourceMappingURL=") at the end of the child file.
- if (line >= decoded.length)
- return null;
- const segments = decoded[line];
- const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line, column, GREATEST_LOWER_BOUND);
- return index === -1 ? null : segments[index];
-}
-/**
- * A higher-level API to find the source/line/column associated with a generated line/column
- * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in
- * `source-map` library.
- */
-function originalPositionFor(map, needle) {
- let { line, column, bias } = needle;
- line--;
- if (line < 0)
- throw new Error(LINE_GTR_ZERO);
- if (column < 0)
- throw new Error(COL_GTR_EQ_ZERO);
- const decoded = decodedMappings(map);
- // It's common for parent source maps to have pointers to lines that have no
- // mapping (like a "//# sourceMappingURL=") at the end of the child file.
- if (line >= decoded.length)
- return OMapping(null, null, null, null);
- const segments = decoded[line];
- const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
- if (index === -1)
- return OMapping(null, null, null, null);
- const segment = segments[index];
- if (segment.length === 1)
- return OMapping(null, null, null, null);
- const { names, resolvedSources } = map;
- return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null);
-}
-/**
- * Finds the generated line/column position of the provided source/line/column source position.
- */
-function generatedPositionFor(map, needle) {
- const { source, line, column, bias } = needle;
- return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);
-}
-/**
- * Finds all generated line/column positions of the provided source/line/column source position.
- */
-function allGeneratedPositionsFor(map, needle) {
- const { source, line, column, bias } = needle;
- // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.
- return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);
-}
-/**
- * Iterates each mapping in generated position order.
- */
-function eachMapping(map, cb) {
- const decoded = decodedMappings(map);
- const { names, resolvedSources } = map;
- for (let i = 0; i < decoded.length; i++) {
- const line = decoded[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const generatedLine = i + 1;
- const generatedColumn = seg[0];
- let source = null;
- let originalLine = null;
- let originalColumn = null;
- let name = null;
- if (seg.length !== 1) {
- source = resolvedSources[seg[1]];
- originalLine = seg[2] + 1;
- originalColumn = seg[3];
- }
- if (seg.length === 5)
- name = names[seg[4]];
- cb({
- generatedLine,
- generatedColumn,
- source,
- originalLine,
- originalColumn,
- name,
- });
- }
- }
-}
-function sourceIndex(map, source) {
- const { sources, resolvedSources } = map;
- let index = sources.indexOf(source);
- if (index === -1)
- index = resolvedSources.indexOf(source);
- return index;
-}
-/**
- * Retrieves the source content for a particular source, if its found. Returns null if not.
- */
-function sourceContentFor(map, source) {
- const { sourcesContent } = map;
- if (sourcesContent == null)
- return null;
- const index = sourceIndex(map, source);
- return index === -1 ? null : sourcesContent[index];
-}
-/**
- * Determines if the source is marked to ignore by the source map.
- */
-function isIgnored(map, source) {
- const { ignoreList } = map;
- if (ignoreList == null)
- return false;
- const index = sourceIndex(map, source);
- return index === -1 ? false : ignoreList.includes(index);
-}
-/**
- * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
- * maps.
- */
-function presortedDecodedMap(map, mapUrl) {
- const tracer = new TraceMap(clone(map, []), mapUrl);
- cast(tracer)._decoded = map.mappings;
- return tracer;
-}
-/**
- * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-function decodedMap(map) {
- return clone(map, decodedMappings(map));
-}
-/**
- * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-function encodedMap(map) {
- return clone(map, encodedMappings(map));
-}
-function clone(map, mappings) {
- return {
- version: map.version,
- file: map.file,
- names: map.names,
- sourceRoot: map.sourceRoot,
- sources: map.sources,
- sourcesContent: map.sourcesContent,
- mappings,
- ignoreList: map.ignoreList || map.x_google_ignoreList,
- };
-}
-function OMapping(source, line, column, name) {
- return { source, line, column, name };
-}
-function GMapping(line, column) {
- return { line, column };
-}
-function traceSegmentInternal(segments, memo, line, column, bias) {
- let index = memoizedBinarySearch(segments, column, memo, line);
- if (found) {
- index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);
- }
- else if (bias === LEAST_UPPER_BOUND)
- index++;
- if (index === -1 || index === segments.length)
- return -1;
- return index;
-}
-function sliceGeneratedPositions(segments, memo, line, column, bias) {
- let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);
- // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in
- // insertion order) segment that matched. Even if we did respect the bias when tracing, we would
- // still need to call `lowerBound()` to find the first segment, which is slower than just looking
- // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the
- // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to
- // match LEAST_UPPER_BOUND.
- if (!found && bias === LEAST_UPPER_BOUND)
- min++;
- if (min === -1 || min === segments.length)
- return [];
- // We may have found the segment that started at an earlier column. If this is the case, then we
- // need to slice all generated segments that match _that_ column, because all such segments span
- // to our desired column.
- const matchedColumn = found ? column : segments[min][COLUMN];
- // The binary search is not guaranteed to find the lower bound when a match wasn't found.
- if (!found)
- min = lowerBound(segments, matchedColumn, min);
- const max = upperBound(segments, matchedColumn, min);
- const result = [];
- for (; min <= max; min++) {
- const segment = segments[min];
- result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));
- }
- return result;
-}
-function generatedPosition(map, source, line, column, bias, all) {
- var _a;
- line--;
- if (line < 0)
- throw new Error(LINE_GTR_ZERO);
- if (column < 0)
- throw new Error(COL_GTR_EQ_ZERO);
- const { sources, resolvedSources } = map;
- let sourceIndex = sources.indexOf(source);
- if (sourceIndex === -1)
- sourceIndex = resolvedSources.indexOf(source);
- if (sourceIndex === -1)
- return all ? [] : GMapping(null, null);
- const generated = ((_a = cast(map))._bySources || (_a._bySources = buildBySources(decodedMappings(map), (cast(map)._bySourceMemos = sources.map(memoizedState)))));
- const segments = generated[sourceIndex][line];
- if (segments == null)
- return all ? [] : GMapping(null, null);
- const memo = cast(map)._bySourceMemos[sourceIndex];
- if (all)
- return sliceGeneratedPositions(segments, memo, line, column, bias);
- const index = traceSegmentInternal(segments, memo, line, column, bias);
- if (index === -1)
- return GMapping(null, null);
- const segment = segments[index];
- return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);
-}
-
-export { AnyMap, GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap, allGeneratedPositionsFor, decodedMap, decodedMappings, eachMapping, encodedMap, encodedMappings, generatedPositionFor, isIgnored, originalPositionFor, presortedDecodedMap, sourceContentFor, traceSegment };
-//# sourceMappingURL=trace-mapping.mjs.map
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map b/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map
deleted file mode 100644
index 016e4ee4..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"trace-mapping.mjs","sources":["../src/resolve.ts","../src/strip-filename.ts","../src/sourcemap-segment.ts","../src/sort.ts","../src/binary-search.ts","../src/by-source.ts","../src/any-map.ts","../src/trace-mapping.ts"],"sourcesContent":["import resolveUri from '@jridgewell/resolve-uri';\n\nexport default function resolve(input: string, base: string | undefined): string {\n // The base is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n if (base && !base.endsWith('/')) base += '/';\n\n return resolveUri(input, base);\n}\n","/**\n * Removes everything after the last \"/\", but leaves the slash.\n */\nexport default function stripFilename(path: string | undefined | null): string {\n if (!path) return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n","type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\ntype GeneratedLine = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n\nexport const REV_GENERATED_LINE = 1;\nexport const REV_GENERATED_COLUMN = 2;\n","import { COLUMN } from './sourcemap-segment';\n\nimport type { SourceMapSegment } from './sourcemap-segment';\n\nexport default function maybeSort(\n mappings: SourceMapSegment[][],\n owned: boolean,\n): SourceMapSegment[][] {\n const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);\n if (unsortedIndex === mappings.length) return mappings;\n\n // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If\n // not, we do not want to modify the consumer's input array.\n if (!owned) mappings = mappings.slice();\n\n for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\n\nfunction nextUnsortedSegmentLine(mappings: SourceMapSegment[][], start: number): number {\n for (let i = start; i < mappings.length; i++) {\n if (!isSorted(mappings[i])) return i;\n }\n return mappings.length;\n}\n\nfunction isSorted(line: SourceMapSegment[]): boolean {\n for (let j = 1; j < line.length; j++) {\n if (line[j][COLUMN] < line[j - 1][COLUMN]) {\n return false;\n }\n }\n return true;\n}\n\nfunction sortSegments(line: SourceMapSegment[], owned: boolean): SourceMapSegment[] {\n if (!owned) line = line.slice();\n return line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[COLUMN] - b[COLUMN];\n}\n","import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';\nimport { COLUMN } from './sourcemap-segment';\n\nexport type MemoState = {\n lastKey: number;\n lastNeedle: number;\n lastIndex: number;\n};\n\nexport let found = false;\n\n/**\n * A binary search implementation that returns the index if a match is found.\n * If no match is found, then the left-index (the index associated with the item that comes just\n * before the desired index) is returned. To maintain proper sort order, a splice would happen at\n * the next index:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, 0);\n * array.splice(index + 1, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nexport function binarySearch(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n low: number,\n high: number,\n): number {\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = haystack[mid][COLUMN] - needle;\n\n if (cmp === 0) {\n found = true;\n return mid;\n }\n\n if (cmp < 0) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n found = false;\n return low - 1;\n}\n\nexport function upperBound(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n index: number,\n): number {\n for (let i = index + 1; i < haystack.length; index = i++) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\n\nexport function lowerBound(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n index: number,\n): number {\n for (let i = index - 1; i >= 0; index = i--) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\n\nexport function memoizedState(): MemoState {\n return {\n lastKey: -1,\n lastNeedle: -1,\n lastIndex: -1,\n };\n}\n\n/**\n * This overly complicated beast is just to record the last tested line/column and the resulting\n * index, allowing us to skip a few tests if mappings are monotonically increasing.\n */\nexport function memoizedBinarySearch(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n state: MemoState,\n key: number,\n): number {\n const { lastKey, lastNeedle, lastIndex } = state;\n\n let low = 0;\n let high = haystack.length - 1;\n if (key === lastKey) {\n if (needle === lastNeedle) {\n found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;\n return lastIndex;\n }\n\n if (needle >= lastNeedle) {\n // lastIndex may be -1 if the previous needle was not found.\n low = lastIndex === -1 ? 0 : lastIndex;\n } else {\n high = lastIndex;\n }\n }\n state.lastKey = key;\n state.lastNeedle = needle;\n\n return (state.lastIndex = binarySearch(haystack, needle, low, high));\n}\n","import { COLUMN, SOURCES_INDEX, SOURCE_LINE, SOURCE_COLUMN } from './sourcemap-segment';\nimport { memoizedBinarySearch, upperBound } from './binary-search';\n\nimport type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';\nimport type { MemoState } from './binary-search';\n\nexport type Source = {\n __proto__: null;\n [line: number]: Exclude[];\n};\n\n// Rebuilds the original source files, with mappings that are ordered by source line/column instead\n// of generated line/column.\nexport default function buildBySources(\n decoded: readonly SourceMapSegment[][],\n memos: MemoState[],\n): Source[] {\n const sources: Source[] = memos.map(buildNullArray);\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n if (seg.length === 1) continue;\n\n const sourceIndex = seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n const originalSource = sources[sourceIndex];\n const originalLine = (originalSource[sourceLine] ||= []);\n const memo = memos[sourceIndex];\n\n // The binary search either found a match, or it found the left-index just before where the\n // segment should go. Either way, we want to insert after that. And there may be multiple\n // generated segments associated with an original location, so there may need to move several\n // indexes before we find where we need to insert.\n let index = upperBound(\n originalLine,\n sourceColumn,\n memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine),\n );\n\n memo.lastIndex = ++index;\n insert(originalLine, index, [sourceColumn, i, seg[COLUMN]]);\n }\n }\n\n return sources;\n}\n\nfunction insert(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\n// Null arrays allow us to use ordered index keys without actually allocating contiguous memory like\n// a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.\n// Numeric properties on objects are magically sorted in ascending order by the engine regardless of\n// the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending\n// order when iterating with for-in.\nfunction buildNullArray(): T {\n return { __proto__: null } as T;\n}\n","import { TraceMap, presortedDecodedMap, decodedMappings } from './trace-mapping';\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type {\n DecodedSourceMap,\n DecodedSourceMapXInput,\n EncodedSourceMapXInput,\n SectionedSourceMapXInput,\n SectionedSourceMapInput,\n SectionXInput,\n} from './types';\nimport type { SourceMapSegment } from './sourcemap-segment';\n\ntype AnyMap = {\n new (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;\n (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;\n};\n\nexport const AnyMap: AnyMap = function (map, mapUrl) {\n const parsed = parse(map);\n\n if (!('sections' in parsed)) {\n return new TraceMap(parsed as DecodedSourceMapXInput | EncodedSourceMapXInput, mapUrl);\n }\n\n const mappings: SourceMapSegment[][] = [];\n const sources: string[] = [];\n const sourcesContent: (string | null)[] = [];\n const names: string[] = [];\n const ignoreList: number[] = [];\n\n recurse(\n parsed,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n 0,\n 0,\n Infinity,\n Infinity,\n );\n\n const joined: DecodedSourceMap = {\n version: 3,\n file: parsed.file,\n names,\n sources,\n sourcesContent,\n mappings,\n ignoreList,\n };\n\n return presortedDecodedMap(joined);\n} as AnyMap;\n\nfunction parse(map: T): Exclude {\n return typeof map === 'string' ? JSON.parse(map) : map;\n}\n\nfunction recurse(\n input: SectionedSourceMapXInput,\n mapUrl: string | null | undefined,\n mappings: SourceMapSegment[][],\n sources: string[],\n sourcesContent: (string | null)[],\n names: string[],\n ignoreList: number[],\n lineOffset: number,\n columnOffset: number,\n stopLine: number,\n stopColumn: number,\n) {\n const { sections } = input;\n for (let i = 0; i < sections.length; i++) {\n const { map, offset } = sections[i];\n\n let sl = stopLine;\n let sc = stopColumn;\n if (i + 1 < sections.length) {\n const nextOffset = sections[i + 1].offset;\n sl = Math.min(stopLine, lineOffset + nextOffset.line);\n\n if (sl === stopLine) {\n sc = Math.min(stopColumn, columnOffset + nextOffset.column);\n } else if (sl < stopLine) {\n sc = columnOffset + nextOffset.column;\n }\n }\n\n addSection(\n map,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n lineOffset + offset.line,\n columnOffset + offset.column,\n sl,\n sc,\n );\n }\n}\n\nfunction addSection(\n input: SectionXInput['map'],\n mapUrl: string | null | undefined,\n mappings: SourceMapSegment[][],\n sources: string[],\n sourcesContent: (string | null)[],\n names: string[],\n ignoreList: number[],\n lineOffset: number,\n columnOffset: number,\n stopLine: number,\n stopColumn: number,\n) {\n const parsed = parse(input);\n if ('sections' in parsed) return recurse(...(arguments as unknown as Parameters));\n\n const map = new TraceMap(parsed, mapUrl);\n const sourcesOffset = sources.length;\n const namesOffset = names.length;\n const decoded = decodedMappings(map);\n const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;\n\n append(sources, resolvedSources);\n append(names, map.names);\n\n if (contents) append(sourcesContent, contents);\n else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null);\n\n if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset);\n\n for (let i = 0; i < decoded.length; i++) {\n const lineI = lineOffset + i;\n\n // We can only add so many lines before we step into the range that the next section's map\n // controls. When we get to the last line, then we'll start checking the segments to see if\n // they've crossed into the column range. But it may not have any columns that overstep, so we\n // still need to check that we don't overstep lines, too.\n if (lineI > stopLine) return;\n\n // The out line may already exist in mappings (if we're continuing the line started by a\n // previous section). Or, we may have jumped ahead several lines to start this section.\n const out = getLine(mappings, lineI);\n // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the\n // map can be multiple lines), it doesn't.\n const cOffset = i === 0 ? columnOffset : 0;\n\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const column = cOffset + seg[COLUMN];\n\n // If this segment steps into the column range that the next section's map controls, we need\n // to stop early.\n if (lineI === stopLine && column >= stopColumn) return;\n\n if (seg.length === 1) {\n out.push([column]);\n continue;\n }\n\n const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n out.push(\n seg.length === 4\n ? [column, sourcesIndex, sourceLine, sourceColumn]\n : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]],\n );\n }\n }\n}\n\nfunction append(arr: T[], other: T[]) {\n for (let i = 0; i < other.length; i++) arr.push(other[i]);\n}\n\nfunction getLine(arr: T[][], index: number): T[] {\n for (let i = arr.length; i <= index; i++) arr[i] = [];\n return arr[index];\n}\n","import { encode, decode } from '@jridgewell/sourcemap-codec';\n\nimport resolve from './resolve';\nimport stripFilename from './strip-filename';\nimport maybeSort from './sort';\nimport buildBySources from './by-source';\nimport {\n memoizedState,\n memoizedBinarySearch,\n upperBound,\n lowerBound,\n found as bsFound,\n} from './binary-search';\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n REV_GENERATED_LINE,\n REV_GENERATED_COLUMN,\n} from './sourcemap-segment';\n\nimport type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';\nimport type {\n SourceMapV3,\n DecodedSourceMap,\n EncodedSourceMap,\n InvalidOriginalMapping,\n OriginalMapping,\n InvalidGeneratedMapping,\n GeneratedMapping,\n SourceMapInput,\n Needle,\n SourceNeedle,\n SourceMap,\n EachMapping,\n Bias,\n XInput,\n} from './types';\nimport type { Source } from './by-source';\nimport type { MemoState } from './binary-search';\n\nexport type { SourceMapSegment } from './sourcemap-segment';\nexport type {\n SourceMap,\n DecodedSourceMap,\n EncodedSourceMap,\n Section,\n SectionedSourceMap,\n SourceMapV3,\n Bias,\n EachMapping,\n GeneratedMapping,\n InvalidGeneratedMapping,\n InvalidOriginalMapping,\n Needle,\n OriginalMapping,\n OriginalMapping as Mapping,\n SectionedSourceMapInput,\n SourceMapInput,\n SourceNeedle,\n XInput,\n EncodedSourceMapXInput,\n DecodedSourceMapXInput,\n SectionedSourceMapXInput,\n SectionXInput,\n} from './types';\n\ninterface PublicMap {\n _encoded: TraceMap['_encoded'];\n _decoded: TraceMap['_decoded'];\n _decodedMemo: TraceMap['_decodedMemo'];\n _bySources: TraceMap['_bySources'];\n _bySourceMemos: TraceMap['_bySourceMemos'];\n}\n\nconst LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';\nconst COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';\n\nexport const LEAST_UPPER_BOUND = -1;\nexport const GREATEST_LOWER_BOUND = 1;\n\nexport { AnyMap } from './any-map';\n\nexport class TraceMap implements SourceMap {\n declare version: SourceMapV3['version'];\n declare file: SourceMapV3['file'];\n declare names: SourceMapV3['names'];\n declare sourceRoot: SourceMapV3['sourceRoot'];\n declare sources: SourceMapV3['sources'];\n declare sourcesContent: SourceMapV3['sourcesContent'];\n declare ignoreList: SourceMapV3['ignoreList'];\n\n declare resolvedSources: string[];\n private declare _encoded: string | undefined;\n\n private declare _decoded: SourceMapSegment[][] | undefined;\n private declare _decodedMemo: MemoState;\n\n private declare _bySources: Source[] | undefined;\n private declare _bySourceMemos: MemoState[] | undefined;\n\n constructor(map: SourceMapInput, mapUrl?: string | null) {\n const isString = typeof map === 'string';\n\n if (!isString && (map as unknown as { _decodedMemo: any })._decodedMemo) return map as TraceMap;\n\n const parsed = (isString ? JSON.parse(map) : map) as DecodedSourceMap | EncodedSourceMap;\n\n const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;\n this.version = version;\n this.file = file;\n this.names = names || [];\n this.sourceRoot = sourceRoot;\n this.sources = sources;\n this.sourcesContent = sourcesContent;\n this.ignoreList = parsed.ignoreList || (parsed as XInput).x_google_ignoreList || undefined;\n\n const from = resolve(sourceRoot || '', stripFilename(mapUrl));\n this.resolvedSources = sources.map((s) => resolve(s || '', from));\n\n const { mappings } = parsed;\n if (typeof mappings === 'string') {\n this._encoded = mappings;\n this._decoded = undefined;\n } else {\n this._encoded = undefined;\n this._decoded = maybeSort(mappings, isString);\n }\n\n this._decodedMemo = memoizedState();\n this._bySources = undefined;\n this._bySourceMemos = undefined;\n }\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * Returns the encoded (VLQ string) form of the SourceMap's mappings field.\n */\nexport function encodedMappings(map: TraceMap): EncodedSourceMap['mappings'] {\n return (cast(map)._encoded ??= encode(cast(map)._decoded!));\n}\n\n/**\n * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.\n */\nexport function decodedMappings(map: TraceMap): Readonly {\n return (cast(map)._decoded ||= decode(cast(map)._encoded!));\n}\n\n/**\n * A low-level API to find the segment associated with a generated line/column (think, from a\n * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.\n */\nexport function traceSegment(\n map: TraceMap,\n line: number,\n column: number,\n): Readonly | null {\n const decoded = decodedMappings(map);\n\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length) return null;\n\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n GREATEST_LOWER_BOUND,\n );\n\n return index === -1 ? null : segments[index];\n}\n\n/**\n * A higher-level API to find the source/line/column associated with a generated line/column\n * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in\n * `source-map` library.\n */\nexport function originalPositionFor(\n map: TraceMap,\n needle: Needle,\n): OriginalMapping | InvalidOriginalMapping {\n let { line, column, bias } = needle;\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n\n const decoded = decodedMappings(map);\n\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length) return OMapping(null, null, null, null);\n\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n bias || GREATEST_LOWER_BOUND,\n );\n\n if (index === -1) return OMapping(null, null, null, null);\n\n const segment = segments[index];\n if (segment.length === 1) return OMapping(null, null, null, null);\n\n const { names, resolvedSources } = map;\n return OMapping(\n resolvedSources[segment[SOURCES_INDEX]],\n segment[SOURCE_LINE] + 1,\n segment[SOURCE_COLUMN],\n segment.length === 5 ? names[segment[NAMES_INDEX]] : null,\n );\n}\n\n/**\n * Finds the generated line/column position of the provided source/line/column source position.\n */\nexport function generatedPositionFor(\n map: TraceMap,\n needle: SourceNeedle,\n): GeneratedMapping | InvalidGeneratedMapping {\n const { source, line, column, bias } = needle;\n return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);\n}\n\n/**\n * Finds all generated line/column positions of the provided source/line/column source position.\n */\nexport function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[] {\n const { source, line, column, bias } = needle;\n // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.\n return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);\n}\n\n/**\n * Iterates each mapping in generated position order.\n */\nexport function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void {\n const decoded = decodedMappings(map);\n const { names, resolvedSources } = map;\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generatedLine = i + 1;\n const generatedColumn = seg[0];\n let source = null;\n let originalLine = null;\n let originalColumn = null;\n let name = null;\n if (seg.length !== 1) {\n source = resolvedSources[seg[1]];\n originalLine = seg[2] + 1;\n originalColumn = seg[3];\n }\n if (seg.length === 5) name = names[seg[4]];\n\n cb({\n generatedLine,\n generatedColumn,\n source,\n originalLine,\n originalColumn,\n name,\n } as EachMapping);\n }\n }\n}\n\nfunction sourceIndex(map: TraceMap, source: string): number {\n const { sources, resolvedSources } = map;\n let index = sources.indexOf(source);\n if (index === -1) index = resolvedSources.indexOf(source);\n return index;\n}\n\n/**\n * Retrieves the source content for a particular source, if its found. Returns null if not.\n */\nexport function sourceContentFor(map: TraceMap, source: string): string | null {\n const { sourcesContent } = map;\n if (sourcesContent == null) return null;\n const index = sourceIndex(map, source);\n return index === -1 ? null : sourcesContent[index];\n}\n\n/**\n * Determines if the source is marked to ignore by the source map.\n */\nexport function isIgnored(map: TraceMap, source: string): boolean {\n const { ignoreList } = map;\n if (ignoreList == null) return false;\n const index = sourceIndex(map, source);\n return index === -1 ? false : ignoreList.includes(index);\n}\n\n/**\n * A helper that skips sorting of the input map's mappings array, which can be expensive for larger\n * maps.\n */\nexport function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap {\n const tracer = new TraceMap(clone(map, []), mapUrl);\n cast(tracer)._decoded = map.mappings;\n return tracer;\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function decodedMap(\n map: TraceMap,\n): Omit & { mappings: readonly SourceMapSegment[][] } {\n return clone(map, decodedMappings(map));\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function encodedMap(map: TraceMap): EncodedSourceMap {\n return clone(map, encodedMappings(map));\n}\n\nfunction clone(\n map: TraceMap | DecodedSourceMap,\n mappings: T,\n): T extends string ? EncodedSourceMap : DecodedSourceMap {\n return {\n version: map.version,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings,\n ignoreList: map.ignoreList || (map as XInput).x_google_ignoreList,\n } as any;\n}\n\nfunction OMapping(source: null, line: null, column: null, name: null): InvalidOriginalMapping;\nfunction OMapping(\n source: string,\n line: number,\n column: number,\n name: string | null,\n): OriginalMapping;\nfunction OMapping(\n source: string | null,\n line: number | null,\n column: number | null,\n name: string | null,\n): OriginalMapping | InvalidOriginalMapping {\n return { source, line, column, name } as any;\n}\n\nfunction GMapping(line: null, column: null): InvalidGeneratedMapping;\nfunction GMapping(line: number, column: number): GeneratedMapping;\nfunction GMapping(\n line: number | null,\n column: number | null,\n): GeneratedMapping | InvalidGeneratedMapping {\n return { line, column } as any;\n}\n\nfunction traceSegmentInternal(\n segments: SourceMapSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number;\nfunction traceSegmentInternal(\n segments: ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number;\nfunction traceSegmentInternal(\n segments: SourceMapSegment[] | ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number {\n let index = memoizedBinarySearch(segments, column, memo, line);\n if (bsFound) {\n index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);\n } else if (bias === LEAST_UPPER_BOUND) index++;\n\n if (index === -1 || index === segments.length) return -1;\n return index;\n}\n\nfunction sliceGeneratedPositions(\n segments: ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): GeneratedMapping[] {\n let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);\n\n // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in\n // insertion order) segment that matched. Even if we did respect the bias when tracing, we would\n // still need to call `lowerBound()` to find the first segment, which is slower than just looking\n // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the\n // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to\n // match LEAST_UPPER_BOUND.\n if (!bsFound && bias === LEAST_UPPER_BOUND) min++;\n\n if (min === -1 || min === segments.length) return [];\n\n // We may have found the segment that started at an earlier column. If this is the case, then we\n // need to slice all generated segments that match _that_ column, because all such segments span\n // to our desired column.\n const matchedColumn = bsFound ? column : segments[min][COLUMN];\n\n // The binary search is not guaranteed to find the lower bound when a match wasn't found.\n if (!bsFound) min = lowerBound(segments, matchedColumn, min);\n const max = upperBound(segments, matchedColumn, min);\n\n const result = [];\n for (; min <= max; min++) {\n const segment = segments[min];\n result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));\n }\n return result;\n}\n\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: false,\n): GeneratedMapping | InvalidGeneratedMapping;\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: true,\n): GeneratedMapping[];\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: boolean,\n): GeneratedMapping | InvalidGeneratedMapping | GeneratedMapping[] {\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n\n const { sources, resolvedSources } = map;\n let sourceIndex = sources.indexOf(source);\n if (sourceIndex === -1) sourceIndex = resolvedSources.indexOf(source);\n if (sourceIndex === -1) return all ? [] : GMapping(null, null);\n\n const generated = (cast(map)._bySources ||= buildBySources(\n decodedMappings(map),\n (cast(map)._bySourceMemos = sources.map(memoizedState)),\n ));\n\n const segments = generated[sourceIndex][line];\n if (segments == null) return all ? [] : GMapping(null, null);\n\n const memo = cast(map)._bySourceMemos![sourceIndex];\n\n if (all) return sliceGeneratedPositions(segments, memo, line, column, bias);\n\n const index = traceSegmentInternal(segments, memo, line, column, bias);\n if (index === -1) return GMapping(null, null);\n\n const segment = segments[index];\n return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);\n}\n"],"names":["bsFound"],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js b/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
deleted file mode 100644
index 3be0f36e..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
+++ /dev/null
@@ -1,600 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/sourcemap-codec'), require('@jridgewell/resolve-uri')) :
- typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/sourcemap-codec', '@jridgewell/resolve-uri'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.traceMapping = {}, global.sourcemapCodec, global.resolveURI));
-})(this, (function (exports, sourcemapCodec, resolveUri) { 'use strict';
-
- function resolve(input, base) {
- // The base is always treated as a directory, if it's not empty.
- // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327
- // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401
- if (base && !base.endsWith('/'))
- base += '/';
- return resolveUri(input, base);
- }
-
- /**
- * Removes everything after the last "/", but leaves the slash.
- */
- function stripFilename(path) {
- if (!path)
- return '';
- const index = path.lastIndexOf('/');
- return path.slice(0, index + 1);
- }
-
- const COLUMN = 0;
- const SOURCES_INDEX = 1;
- const SOURCE_LINE = 2;
- const SOURCE_COLUMN = 3;
- const NAMES_INDEX = 4;
- const REV_GENERATED_LINE = 1;
- const REV_GENERATED_COLUMN = 2;
-
- function maybeSort(mappings, owned) {
- const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);
- if (unsortedIndex === mappings.length)
- return mappings;
- // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If
- // not, we do not want to modify the consumer's input array.
- if (!owned)
- mappings = mappings.slice();
- for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {
- mappings[i] = sortSegments(mappings[i], owned);
- }
- return mappings;
- }
- function nextUnsortedSegmentLine(mappings, start) {
- for (let i = start; i < mappings.length; i++) {
- if (!isSorted(mappings[i]))
- return i;
- }
- return mappings.length;
- }
- function isSorted(line) {
- for (let j = 1; j < line.length; j++) {
- if (line[j][COLUMN] < line[j - 1][COLUMN]) {
- return false;
- }
- }
- return true;
- }
- function sortSegments(line, owned) {
- if (!owned)
- line = line.slice();
- return line.sort(sortComparator);
- }
- function sortComparator(a, b) {
- return a[COLUMN] - b[COLUMN];
- }
-
- let found = false;
- /**
- * A binary search implementation that returns the index if a match is found.
- * If no match is found, then the left-index (the index associated with the item that comes just
- * before the desired index) is returned. To maintain proper sort order, a splice would happen at
- * the next index:
- *
- * ```js
- * const array = [1, 3];
- * const needle = 2;
- * const index = binarySearch(array, needle, (item, needle) => item - needle);
- *
- * assert.equal(index, 0);
- * array.splice(index + 1, 0, needle);
- * assert.deepEqual(array, [1, 2, 3]);
- * ```
- */
- function binarySearch(haystack, needle, low, high) {
- while (low <= high) {
- const mid = low + ((high - low) >> 1);
- const cmp = haystack[mid][COLUMN] - needle;
- if (cmp === 0) {
- found = true;
- return mid;
- }
- if (cmp < 0) {
- low = mid + 1;
- }
- else {
- high = mid - 1;
- }
- }
- found = false;
- return low - 1;
- }
- function upperBound(haystack, needle, index) {
- for (let i = index + 1; i < haystack.length; index = i++) {
- if (haystack[i][COLUMN] !== needle)
- break;
- }
- return index;
- }
- function lowerBound(haystack, needle, index) {
- for (let i = index - 1; i >= 0; index = i--) {
- if (haystack[i][COLUMN] !== needle)
- break;
- }
- return index;
- }
- function memoizedState() {
- return {
- lastKey: -1,
- lastNeedle: -1,
- lastIndex: -1,
- };
- }
- /**
- * This overly complicated beast is just to record the last tested line/column and the resulting
- * index, allowing us to skip a few tests if mappings are monotonically increasing.
- */
- function memoizedBinarySearch(haystack, needle, state, key) {
- const { lastKey, lastNeedle, lastIndex } = state;
- let low = 0;
- let high = haystack.length - 1;
- if (key === lastKey) {
- if (needle === lastNeedle) {
- found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;
- return lastIndex;
- }
- if (needle >= lastNeedle) {
- // lastIndex may be -1 if the previous needle was not found.
- low = lastIndex === -1 ? 0 : lastIndex;
- }
- else {
- high = lastIndex;
- }
- }
- state.lastKey = key;
- state.lastNeedle = needle;
- return (state.lastIndex = binarySearch(haystack, needle, low, high));
- }
-
- // Rebuilds the original source files, with mappings that are ordered by source line/column instead
- // of generated line/column.
- function buildBySources(decoded, memos) {
- const sources = memos.map(buildNullArray);
- for (let i = 0; i < decoded.length; i++) {
- const line = decoded[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- if (seg.length === 1)
- continue;
- const sourceIndex = seg[SOURCES_INDEX];
- const sourceLine = seg[SOURCE_LINE];
- const sourceColumn = seg[SOURCE_COLUMN];
- const originalSource = sources[sourceIndex];
- const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = []));
- const memo = memos[sourceIndex];
- // The binary search either found a match, or it found the left-index just before where the
- // segment should go. Either way, we want to insert after that. And there may be multiple
- // generated segments associated with an original location, so there may need to move several
- // indexes before we find where we need to insert.
- let index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));
- memo.lastIndex = ++index;
- insert(originalLine, index, [sourceColumn, i, seg[COLUMN]]);
- }
- }
- return sources;
- }
- function insert(array, index, value) {
- for (let i = array.length; i > index; i--) {
- array[i] = array[i - 1];
- }
- array[index] = value;
- }
- // Null arrays allow us to use ordered index keys without actually allocating contiguous memory like
- // a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.
- // Numeric properties on objects are magically sorted in ascending order by the engine regardless of
- // the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending
- // order when iterating with for-in.
- function buildNullArray() {
- return { __proto__: null };
- }
-
- const AnyMap = function (map, mapUrl) {
- const parsed = parse(map);
- if (!('sections' in parsed)) {
- return new TraceMap(parsed, mapUrl);
- }
- const mappings = [];
- const sources = [];
- const sourcesContent = [];
- const names = [];
- const ignoreList = [];
- recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, ignoreList, 0, 0, Infinity, Infinity);
- const joined = {
- version: 3,
- file: parsed.file,
- names,
- sources,
- sourcesContent,
- mappings,
- ignoreList,
- };
- return presortedDecodedMap(joined);
- };
- function parse(map) {
- return typeof map === 'string' ? JSON.parse(map) : map;
- }
- function recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {
- const { sections } = input;
- for (let i = 0; i < sections.length; i++) {
- const { map, offset } = sections[i];
- let sl = stopLine;
- let sc = stopColumn;
- if (i + 1 < sections.length) {
- const nextOffset = sections[i + 1].offset;
- sl = Math.min(stopLine, lineOffset + nextOffset.line);
- if (sl === stopLine) {
- sc = Math.min(stopColumn, columnOffset + nextOffset.column);
- }
- else if (sl < stopLine) {
- sc = columnOffset + nextOffset.column;
- }
- }
- addSection(map, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset + offset.line, columnOffset + offset.column, sl, sc);
- }
- }
- function addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {
- const parsed = parse(input);
- if ('sections' in parsed)
- return recurse(...arguments);
- const map = new TraceMap(parsed, mapUrl);
- const sourcesOffset = sources.length;
- const namesOffset = names.length;
- const decoded = decodedMappings(map);
- const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;
- append(sources, resolvedSources);
- append(names, map.names);
- if (contents)
- append(sourcesContent, contents);
- else
- for (let i = 0; i < resolvedSources.length; i++)
- sourcesContent.push(null);
- if (ignores)
- for (let i = 0; i < ignores.length; i++)
- ignoreList.push(ignores[i] + sourcesOffset);
- for (let i = 0; i < decoded.length; i++) {
- const lineI = lineOffset + i;
- // We can only add so many lines before we step into the range that the next section's map
- // controls. When we get to the last line, then we'll start checking the segments to see if
- // they've crossed into the column range. But it may not have any columns that overstep, so we
- // still need to check that we don't overstep lines, too.
- if (lineI > stopLine)
- return;
- // The out line may already exist in mappings (if we're continuing the line started by a
- // previous section). Or, we may have jumped ahead several lines to start this section.
- const out = getLine(mappings, lineI);
- // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the
- // map can be multiple lines), it doesn't.
- const cOffset = i === 0 ? columnOffset : 0;
- const line = decoded[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const column = cOffset + seg[COLUMN];
- // If this segment steps into the column range that the next section's map controls, we need
- // to stop early.
- if (lineI === stopLine && column >= stopColumn)
- return;
- if (seg.length === 1) {
- out.push([column]);
- continue;
- }
- const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];
- const sourceLine = seg[SOURCE_LINE];
- const sourceColumn = seg[SOURCE_COLUMN];
- out.push(seg.length === 4
- ? [column, sourcesIndex, sourceLine, sourceColumn]
- : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]);
- }
- }
- }
- function append(arr, other) {
- for (let i = 0; i < other.length; i++)
- arr.push(other[i]);
- }
- function getLine(arr, index) {
- for (let i = arr.length; i <= index; i++)
- arr[i] = [];
- return arr[index];
- }
-
- const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';
- const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';
- const LEAST_UPPER_BOUND = -1;
- const GREATEST_LOWER_BOUND = 1;
- class TraceMap {
- constructor(map, mapUrl) {
- const isString = typeof map === 'string';
- if (!isString && map._decodedMemo)
- return map;
- const parsed = (isString ? JSON.parse(map) : map);
- const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;
- this.version = version;
- this.file = file;
- this.names = names || [];
- this.sourceRoot = sourceRoot;
- this.sources = sources;
- this.sourcesContent = sourcesContent;
- this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || undefined;
- const from = resolve(sourceRoot || '', stripFilename(mapUrl));
- this.resolvedSources = sources.map((s) => resolve(s || '', from));
- const { mappings } = parsed;
- if (typeof mappings === 'string') {
- this._encoded = mappings;
- this._decoded = undefined;
- }
- else {
- this._encoded = undefined;
- this._decoded = maybeSort(mappings, isString);
- }
- this._decodedMemo = memoizedState();
- this._bySources = undefined;
- this._bySourceMemos = undefined;
- }
- }
- /**
- * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
- * with public access modifiers.
- */
- function cast(map) {
- return map;
- }
- /**
- * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
- */
- function encodedMappings(map) {
- var _a;
- var _b;
- return ((_a = (_b = cast(map))._encoded) !== null && _a !== void 0 ? _a : (_b._encoded = sourcemapCodec.encode(cast(map)._decoded)));
- }
- /**
- * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
- */
- function decodedMappings(map) {
- var _a;
- return ((_a = cast(map))._decoded || (_a._decoded = sourcemapCodec.decode(cast(map)._encoded)));
- }
- /**
- * A low-level API to find the segment associated with a generated line/column (think, from a
- * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.
- */
- function traceSegment(map, line, column) {
- const decoded = decodedMappings(map);
- // It's common for parent source maps to have pointers to lines that have no
- // mapping (like a "//# sourceMappingURL=") at the end of the child file.
- if (line >= decoded.length)
- return null;
- const segments = decoded[line];
- const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line, column, GREATEST_LOWER_BOUND);
- return index === -1 ? null : segments[index];
- }
- /**
- * A higher-level API to find the source/line/column associated with a generated line/column
- * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in
- * `source-map` library.
- */
- function originalPositionFor(map, needle) {
- let { line, column, bias } = needle;
- line--;
- if (line < 0)
- throw new Error(LINE_GTR_ZERO);
- if (column < 0)
- throw new Error(COL_GTR_EQ_ZERO);
- const decoded = decodedMappings(map);
- // It's common for parent source maps to have pointers to lines that have no
- // mapping (like a "//# sourceMappingURL=") at the end of the child file.
- if (line >= decoded.length)
- return OMapping(null, null, null, null);
- const segments = decoded[line];
- const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
- if (index === -1)
- return OMapping(null, null, null, null);
- const segment = segments[index];
- if (segment.length === 1)
- return OMapping(null, null, null, null);
- const { names, resolvedSources } = map;
- return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null);
- }
- /**
- * Finds the generated line/column position of the provided source/line/column source position.
- */
- function generatedPositionFor(map, needle) {
- const { source, line, column, bias } = needle;
- return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);
- }
- /**
- * Finds all generated line/column positions of the provided source/line/column source position.
- */
- function allGeneratedPositionsFor(map, needle) {
- const { source, line, column, bias } = needle;
- // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.
- return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);
- }
- /**
- * Iterates each mapping in generated position order.
- */
- function eachMapping(map, cb) {
- const decoded = decodedMappings(map);
- const { names, resolvedSources } = map;
- for (let i = 0; i < decoded.length; i++) {
- const line = decoded[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const generatedLine = i + 1;
- const generatedColumn = seg[0];
- let source = null;
- let originalLine = null;
- let originalColumn = null;
- let name = null;
- if (seg.length !== 1) {
- source = resolvedSources[seg[1]];
- originalLine = seg[2] + 1;
- originalColumn = seg[3];
- }
- if (seg.length === 5)
- name = names[seg[4]];
- cb({
- generatedLine,
- generatedColumn,
- source,
- originalLine,
- originalColumn,
- name,
- });
- }
- }
- }
- function sourceIndex(map, source) {
- const { sources, resolvedSources } = map;
- let index = sources.indexOf(source);
- if (index === -1)
- index = resolvedSources.indexOf(source);
- return index;
- }
- /**
- * Retrieves the source content for a particular source, if its found. Returns null if not.
- */
- function sourceContentFor(map, source) {
- const { sourcesContent } = map;
- if (sourcesContent == null)
- return null;
- const index = sourceIndex(map, source);
- return index === -1 ? null : sourcesContent[index];
- }
- /**
- * Determines if the source is marked to ignore by the source map.
- */
- function isIgnored(map, source) {
- const { ignoreList } = map;
- if (ignoreList == null)
- return false;
- const index = sourceIndex(map, source);
- return index === -1 ? false : ignoreList.includes(index);
- }
- /**
- * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
- * maps.
- */
- function presortedDecodedMap(map, mapUrl) {
- const tracer = new TraceMap(clone(map, []), mapUrl);
- cast(tracer)._decoded = map.mappings;
- return tracer;
- }
- /**
- * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
- function decodedMap(map) {
- return clone(map, decodedMappings(map));
- }
- /**
- * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
- function encodedMap(map) {
- return clone(map, encodedMappings(map));
- }
- function clone(map, mappings) {
- return {
- version: map.version,
- file: map.file,
- names: map.names,
- sourceRoot: map.sourceRoot,
- sources: map.sources,
- sourcesContent: map.sourcesContent,
- mappings,
- ignoreList: map.ignoreList || map.x_google_ignoreList,
- };
- }
- function OMapping(source, line, column, name) {
- return { source, line, column, name };
- }
- function GMapping(line, column) {
- return { line, column };
- }
- function traceSegmentInternal(segments, memo, line, column, bias) {
- let index = memoizedBinarySearch(segments, column, memo, line);
- if (found) {
- index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);
- }
- else if (bias === LEAST_UPPER_BOUND)
- index++;
- if (index === -1 || index === segments.length)
- return -1;
- return index;
- }
- function sliceGeneratedPositions(segments, memo, line, column, bias) {
- let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);
- // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in
- // insertion order) segment that matched. Even if we did respect the bias when tracing, we would
- // still need to call `lowerBound()` to find the first segment, which is slower than just looking
- // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the
- // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to
- // match LEAST_UPPER_BOUND.
- if (!found && bias === LEAST_UPPER_BOUND)
- min++;
- if (min === -1 || min === segments.length)
- return [];
- // We may have found the segment that started at an earlier column. If this is the case, then we
- // need to slice all generated segments that match _that_ column, because all such segments span
- // to our desired column.
- const matchedColumn = found ? column : segments[min][COLUMN];
- // The binary search is not guaranteed to find the lower bound when a match wasn't found.
- if (!found)
- min = lowerBound(segments, matchedColumn, min);
- const max = upperBound(segments, matchedColumn, min);
- const result = [];
- for (; min <= max; min++) {
- const segment = segments[min];
- result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));
- }
- return result;
- }
- function generatedPosition(map, source, line, column, bias, all) {
- var _a;
- line--;
- if (line < 0)
- throw new Error(LINE_GTR_ZERO);
- if (column < 0)
- throw new Error(COL_GTR_EQ_ZERO);
- const { sources, resolvedSources } = map;
- let sourceIndex = sources.indexOf(source);
- if (sourceIndex === -1)
- sourceIndex = resolvedSources.indexOf(source);
- if (sourceIndex === -1)
- return all ? [] : GMapping(null, null);
- const generated = ((_a = cast(map))._bySources || (_a._bySources = buildBySources(decodedMappings(map), (cast(map)._bySourceMemos = sources.map(memoizedState)))));
- const segments = generated[sourceIndex][line];
- if (segments == null)
- return all ? [] : GMapping(null, null);
- const memo = cast(map)._bySourceMemos[sourceIndex];
- if (all)
- return sliceGeneratedPositions(segments, memo, line, column, bias);
- const index = traceSegmentInternal(segments, memo, line, column, bias);
- if (index === -1)
- return GMapping(null, null);
- const segment = segments[index];
- return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);
- }
-
- exports.AnyMap = AnyMap;
- exports.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND;
- exports.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND;
- exports.TraceMap = TraceMap;
- exports.allGeneratedPositionsFor = allGeneratedPositionsFor;
- exports.decodedMap = decodedMap;
- exports.decodedMappings = decodedMappings;
- exports.eachMapping = eachMapping;
- exports.encodedMap = encodedMap;
- exports.encodedMappings = encodedMappings;
- exports.generatedPositionFor = generatedPositionFor;
- exports.isIgnored = isIgnored;
- exports.originalPositionFor = originalPositionFor;
- exports.presortedDecodedMap = presortedDecodedMap;
- exports.sourceContentFor = sourceContentFor;
- exports.traceSegment = traceSegment;
-
-}));
-//# sourceMappingURL=trace-mapping.umd.js.map
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map b/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map
deleted file mode 100644
index c6716eaf..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"trace-mapping.umd.js","sources":["../src/resolve.ts","../src/strip-filename.ts","../src/sourcemap-segment.ts","../src/sort.ts","../src/binary-search.ts","../src/by-source.ts","../src/any-map.ts","../src/trace-mapping.ts"],"sourcesContent":["import resolveUri from '@jridgewell/resolve-uri';\n\nexport default function resolve(input: string, base: string | undefined): string {\n // The base is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n if (base && !base.endsWith('/')) base += '/';\n\n return resolveUri(input, base);\n}\n","/**\n * Removes everything after the last \"/\", but leaves the slash.\n */\nexport default function stripFilename(path: string | undefined | null): string {\n if (!path) return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n","type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\ntype GeneratedLine = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n\nexport const REV_GENERATED_LINE = 1;\nexport const REV_GENERATED_COLUMN = 2;\n","import { COLUMN } from './sourcemap-segment';\n\nimport type { SourceMapSegment } from './sourcemap-segment';\n\nexport default function maybeSort(\n mappings: SourceMapSegment[][],\n owned: boolean,\n): SourceMapSegment[][] {\n const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);\n if (unsortedIndex === mappings.length) return mappings;\n\n // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If\n // not, we do not want to modify the consumer's input array.\n if (!owned) mappings = mappings.slice();\n\n for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\n\nfunction nextUnsortedSegmentLine(mappings: SourceMapSegment[][], start: number): number {\n for (let i = start; i < mappings.length; i++) {\n if (!isSorted(mappings[i])) return i;\n }\n return mappings.length;\n}\n\nfunction isSorted(line: SourceMapSegment[]): boolean {\n for (let j = 1; j < line.length; j++) {\n if (line[j][COLUMN] < line[j - 1][COLUMN]) {\n return false;\n }\n }\n return true;\n}\n\nfunction sortSegments(line: SourceMapSegment[], owned: boolean): SourceMapSegment[] {\n if (!owned) line = line.slice();\n return line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[COLUMN] - b[COLUMN];\n}\n","import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';\nimport { COLUMN } from './sourcemap-segment';\n\nexport type MemoState = {\n lastKey: number;\n lastNeedle: number;\n lastIndex: number;\n};\n\nexport let found = false;\n\n/**\n * A binary search implementation that returns the index if a match is found.\n * If no match is found, then the left-index (the index associated with the item that comes just\n * before the desired index) is returned. To maintain proper sort order, a splice would happen at\n * the next index:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, 0);\n * array.splice(index + 1, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nexport function binarySearch(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n low: number,\n high: number,\n): number {\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = haystack[mid][COLUMN] - needle;\n\n if (cmp === 0) {\n found = true;\n return mid;\n }\n\n if (cmp < 0) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n found = false;\n return low - 1;\n}\n\nexport function upperBound(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n index: number,\n): number {\n for (let i = index + 1; i < haystack.length; index = i++) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\n\nexport function lowerBound(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n index: number,\n): number {\n for (let i = index - 1; i >= 0; index = i--) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\n\nexport function memoizedState(): MemoState {\n return {\n lastKey: -1,\n lastNeedle: -1,\n lastIndex: -1,\n };\n}\n\n/**\n * This overly complicated beast is just to record the last tested line/column and the resulting\n * index, allowing us to skip a few tests if mappings are monotonically increasing.\n */\nexport function memoizedBinarySearch(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n state: MemoState,\n key: number,\n): number {\n const { lastKey, lastNeedle, lastIndex } = state;\n\n let low = 0;\n let high = haystack.length - 1;\n if (key === lastKey) {\n if (needle === lastNeedle) {\n found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;\n return lastIndex;\n }\n\n if (needle >= lastNeedle) {\n // lastIndex may be -1 if the previous needle was not found.\n low = lastIndex === -1 ? 0 : lastIndex;\n } else {\n high = lastIndex;\n }\n }\n state.lastKey = key;\n state.lastNeedle = needle;\n\n return (state.lastIndex = binarySearch(haystack, needle, low, high));\n}\n","import { COLUMN, SOURCES_INDEX, SOURCE_LINE, SOURCE_COLUMN } from './sourcemap-segment';\nimport { memoizedBinarySearch, upperBound } from './binary-search';\n\nimport type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';\nimport type { MemoState } from './binary-search';\n\nexport type Source = {\n __proto__: null;\n [line: number]: Exclude[];\n};\n\n// Rebuilds the original source files, with mappings that are ordered by source line/column instead\n// of generated line/column.\nexport default function buildBySources(\n decoded: readonly SourceMapSegment[][],\n memos: MemoState[],\n): Source[] {\n const sources: Source[] = memos.map(buildNullArray);\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n if (seg.length === 1) continue;\n\n const sourceIndex = seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n const originalSource = sources[sourceIndex];\n const originalLine = (originalSource[sourceLine] ||= []);\n const memo = memos[sourceIndex];\n\n // The binary search either found a match, or it found the left-index just before where the\n // segment should go. Either way, we want to insert after that. And there may be multiple\n // generated segments associated with an original location, so there may need to move several\n // indexes before we find where we need to insert.\n let index = upperBound(\n originalLine,\n sourceColumn,\n memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine),\n );\n\n memo.lastIndex = ++index;\n insert(originalLine, index, [sourceColumn, i, seg[COLUMN]]);\n }\n }\n\n return sources;\n}\n\nfunction insert(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\n// Null arrays allow us to use ordered index keys without actually allocating contiguous memory like\n// a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.\n// Numeric properties on objects are magically sorted in ascending order by the engine regardless of\n// the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending\n// order when iterating with for-in.\nfunction buildNullArray(): T {\n return { __proto__: null } as T;\n}\n","import { TraceMap, presortedDecodedMap, decodedMappings } from './trace-mapping';\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type {\n DecodedSourceMap,\n DecodedSourceMapXInput,\n EncodedSourceMapXInput,\n SectionedSourceMapXInput,\n SectionedSourceMapInput,\n SectionXInput,\n} from './types';\nimport type { SourceMapSegment } from './sourcemap-segment';\n\ntype AnyMap = {\n new (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;\n (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;\n};\n\nexport const AnyMap: AnyMap = function (map, mapUrl) {\n const parsed = parse(map);\n\n if (!('sections' in parsed)) {\n return new TraceMap(parsed as DecodedSourceMapXInput | EncodedSourceMapXInput, mapUrl);\n }\n\n const mappings: SourceMapSegment[][] = [];\n const sources: string[] = [];\n const sourcesContent: (string | null)[] = [];\n const names: string[] = [];\n const ignoreList: number[] = [];\n\n recurse(\n parsed,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n 0,\n 0,\n Infinity,\n Infinity,\n );\n\n const joined: DecodedSourceMap = {\n version: 3,\n file: parsed.file,\n names,\n sources,\n sourcesContent,\n mappings,\n ignoreList,\n };\n\n return presortedDecodedMap(joined);\n} as AnyMap;\n\nfunction parse(map: T): Exclude {\n return typeof map === 'string' ? JSON.parse(map) : map;\n}\n\nfunction recurse(\n input: SectionedSourceMapXInput,\n mapUrl: string | null | undefined,\n mappings: SourceMapSegment[][],\n sources: string[],\n sourcesContent: (string | null)[],\n names: string[],\n ignoreList: number[],\n lineOffset: number,\n columnOffset: number,\n stopLine: number,\n stopColumn: number,\n) {\n const { sections } = input;\n for (let i = 0; i < sections.length; i++) {\n const { map, offset } = sections[i];\n\n let sl = stopLine;\n let sc = stopColumn;\n if (i + 1 < sections.length) {\n const nextOffset = sections[i + 1].offset;\n sl = Math.min(stopLine, lineOffset + nextOffset.line);\n\n if (sl === stopLine) {\n sc = Math.min(stopColumn, columnOffset + nextOffset.column);\n } else if (sl < stopLine) {\n sc = columnOffset + nextOffset.column;\n }\n }\n\n addSection(\n map,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n lineOffset + offset.line,\n columnOffset + offset.column,\n sl,\n sc,\n );\n }\n}\n\nfunction addSection(\n input: SectionXInput['map'],\n mapUrl: string | null | undefined,\n mappings: SourceMapSegment[][],\n sources: string[],\n sourcesContent: (string | null)[],\n names: string[],\n ignoreList: number[],\n lineOffset: number,\n columnOffset: number,\n stopLine: number,\n stopColumn: number,\n) {\n const parsed = parse(input);\n if ('sections' in parsed) return recurse(...(arguments as unknown as Parameters));\n\n const map = new TraceMap(parsed, mapUrl);\n const sourcesOffset = sources.length;\n const namesOffset = names.length;\n const decoded = decodedMappings(map);\n const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;\n\n append(sources, resolvedSources);\n append(names, map.names);\n\n if (contents) append(sourcesContent, contents);\n else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null);\n\n if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset);\n\n for (let i = 0; i < decoded.length; i++) {\n const lineI = lineOffset + i;\n\n // We can only add so many lines before we step into the range that the next section's map\n // controls. When we get to the last line, then we'll start checking the segments to see if\n // they've crossed into the column range. But it may not have any columns that overstep, so we\n // still need to check that we don't overstep lines, too.\n if (lineI > stopLine) return;\n\n // The out line may already exist in mappings (if we're continuing the line started by a\n // previous section). Or, we may have jumped ahead several lines to start this section.\n const out = getLine(mappings, lineI);\n // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the\n // map can be multiple lines), it doesn't.\n const cOffset = i === 0 ? columnOffset : 0;\n\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const column = cOffset + seg[COLUMN];\n\n // If this segment steps into the column range that the next section's map controls, we need\n // to stop early.\n if (lineI === stopLine && column >= stopColumn) return;\n\n if (seg.length === 1) {\n out.push([column]);\n continue;\n }\n\n const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n out.push(\n seg.length === 4\n ? [column, sourcesIndex, sourceLine, sourceColumn]\n : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]],\n );\n }\n }\n}\n\nfunction append(arr: T[], other: T[]) {\n for (let i = 0; i < other.length; i++) arr.push(other[i]);\n}\n\nfunction getLine(arr: T[][], index: number): T[] {\n for (let i = arr.length; i <= index; i++) arr[i] = [];\n return arr[index];\n}\n","import { encode, decode } from '@jridgewell/sourcemap-codec';\n\nimport resolve from './resolve';\nimport stripFilename from './strip-filename';\nimport maybeSort from './sort';\nimport buildBySources from './by-source';\nimport {\n memoizedState,\n memoizedBinarySearch,\n upperBound,\n lowerBound,\n found as bsFound,\n} from './binary-search';\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n REV_GENERATED_LINE,\n REV_GENERATED_COLUMN,\n} from './sourcemap-segment';\n\nimport type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';\nimport type {\n SourceMapV3,\n DecodedSourceMap,\n EncodedSourceMap,\n InvalidOriginalMapping,\n OriginalMapping,\n InvalidGeneratedMapping,\n GeneratedMapping,\n SourceMapInput,\n Needle,\n SourceNeedle,\n SourceMap,\n EachMapping,\n Bias,\n XInput,\n} from './types';\nimport type { Source } from './by-source';\nimport type { MemoState } from './binary-search';\n\nexport type { SourceMapSegment } from './sourcemap-segment';\nexport type {\n SourceMap,\n DecodedSourceMap,\n EncodedSourceMap,\n Section,\n SectionedSourceMap,\n SourceMapV3,\n Bias,\n EachMapping,\n GeneratedMapping,\n InvalidGeneratedMapping,\n InvalidOriginalMapping,\n Needle,\n OriginalMapping,\n OriginalMapping as Mapping,\n SectionedSourceMapInput,\n SourceMapInput,\n SourceNeedle,\n XInput,\n EncodedSourceMapXInput,\n DecodedSourceMapXInput,\n SectionedSourceMapXInput,\n SectionXInput,\n} from './types';\n\ninterface PublicMap {\n _encoded: TraceMap['_encoded'];\n _decoded: TraceMap['_decoded'];\n _decodedMemo: TraceMap['_decodedMemo'];\n _bySources: TraceMap['_bySources'];\n _bySourceMemos: TraceMap['_bySourceMemos'];\n}\n\nconst LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';\nconst COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';\n\nexport const LEAST_UPPER_BOUND = -1;\nexport const GREATEST_LOWER_BOUND = 1;\n\nexport { AnyMap } from './any-map';\n\nexport class TraceMap implements SourceMap {\n declare version: SourceMapV3['version'];\n declare file: SourceMapV3['file'];\n declare names: SourceMapV3['names'];\n declare sourceRoot: SourceMapV3['sourceRoot'];\n declare sources: SourceMapV3['sources'];\n declare sourcesContent: SourceMapV3['sourcesContent'];\n declare ignoreList: SourceMapV3['ignoreList'];\n\n declare resolvedSources: string[];\n private declare _encoded: string | undefined;\n\n private declare _decoded: SourceMapSegment[][] | undefined;\n private declare _decodedMemo: MemoState;\n\n private declare _bySources: Source[] | undefined;\n private declare _bySourceMemos: MemoState[] | undefined;\n\n constructor(map: SourceMapInput, mapUrl?: string | null) {\n const isString = typeof map === 'string';\n\n if (!isString && (map as unknown as { _decodedMemo: any })._decodedMemo) return map as TraceMap;\n\n const parsed = (isString ? JSON.parse(map) : map) as DecodedSourceMap | EncodedSourceMap;\n\n const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;\n this.version = version;\n this.file = file;\n this.names = names || [];\n this.sourceRoot = sourceRoot;\n this.sources = sources;\n this.sourcesContent = sourcesContent;\n this.ignoreList = parsed.ignoreList || (parsed as XInput).x_google_ignoreList || undefined;\n\n const from = resolve(sourceRoot || '', stripFilename(mapUrl));\n this.resolvedSources = sources.map((s) => resolve(s || '', from));\n\n const { mappings } = parsed;\n if (typeof mappings === 'string') {\n this._encoded = mappings;\n this._decoded = undefined;\n } else {\n this._encoded = undefined;\n this._decoded = maybeSort(mappings, isString);\n }\n\n this._decodedMemo = memoizedState();\n this._bySources = undefined;\n this._bySourceMemos = undefined;\n }\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * Returns the encoded (VLQ string) form of the SourceMap's mappings field.\n */\nexport function encodedMappings(map: TraceMap): EncodedSourceMap['mappings'] {\n return (cast(map)._encoded ??= encode(cast(map)._decoded!));\n}\n\n/**\n * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.\n */\nexport function decodedMappings(map: TraceMap): Readonly {\n return (cast(map)._decoded ||= decode(cast(map)._encoded!));\n}\n\n/**\n * A low-level API to find the segment associated with a generated line/column (think, from a\n * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.\n */\nexport function traceSegment(\n map: TraceMap,\n line: number,\n column: number,\n): Readonly | null {\n const decoded = decodedMappings(map);\n\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length) return null;\n\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n GREATEST_LOWER_BOUND,\n );\n\n return index === -1 ? null : segments[index];\n}\n\n/**\n * A higher-level API to find the source/line/column associated with a generated line/column\n * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in\n * `source-map` library.\n */\nexport function originalPositionFor(\n map: TraceMap,\n needle: Needle,\n): OriginalMapping | InvalidOriginalMapping {\n let { line, column, bias } = needle;\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n\n const decoded = decodedMappings(map);\n\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length) return OMapping(null, null, null, null);\n\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n bias || GREATEST_LOWER_BOUND,\n );\n\n if (index === -1) return OMapping(null, null, null, null);\n\n const segment = segments[index];\n if (segment.length === 1) return OMapping(null, null, null, null);\n\n const { names, resolvedSources } = map;\n return OMapping(\n resolvedSources[segment[SOURCES_INDEX]],\n segment[SOURCE_LINE] + 1,\n segment[SOURCE_COLUMN],\n segment.length === 5 ? names[segment[NAMES_INDEX]] : null,\n );\n}\n\n/**\n * Finds the generated line/column position of the provided source/line/column source position.\n */\nexport function generatedPositionFor(\n map: TraceMap,\n needle: SourceNeedle,\n): GeneratedMapping | InvalidGeneratedMapping {\n const { source, line, column, bias } = needle;\n return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);\n}\n\n/**\n * Finds all generated line/column positions of the provided source/line/column source position.\n */\nexport function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[] {\n const { source, line, column, bias } = needle;\n // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.\n return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);\n}\n\n/**\n * Iterates each mapping in generated position order.\n */\nexport function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void {\n const decoded = decodedMappings(map);\n const { names, resolvedSources } = map;\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generatedLine = i + 1;\n const generatedColumn = seg[0];\n let source = null;\n let originalLine = null;\n let originalColumn = null;\n let name = null;\n if (seg.length !== 1) {\n source = resolvedSources[seg[1]];\n originalLine = seg[2] + 1;\n originalColumn = seg[3];\n }\n if (seg.length === 5) name = names[seg[4]];\n\n cb({\n generatedLine,\n generatedColumn,\n source,\n originalLine,\n originalColumn,\n name,\n } as EachMapping);\n }\n }\n}\n\nfunction sourceIndex(map: TraceMap, source: string): number {\n const { sources, resolvedSources } = map;\n let index = sources.indexOf(source);\n if (index === -1) index = resolvedSources.indexOf(source);\n return index;\n}\n\n/**\n * Retrieves the source content for a particular source, if its found. Returns null if not.\n */\nexport function sourceContentFor(map: TraceMap, source: string): string | null {\n const { sourcesContent } = map;\n if (sourcesContent == null) return null;\n const index = sourceIndex(map, source);\n return index === -1 ? null : sourcesContent[index];\n}\n\n/**\n * Determines if the source is marked to ignore by the source map.\n */\nexport function isIgnored(map: TraceMap, source: string): boolean {\n const { ignoreList } = map;\n if (ignoreList == null) return false;\n const index = sourceIndex(map, source);\n return index === -1 ? false : ignoreList.includes(index);\n}\n\n/**\n * A helper that skips sorting of the input map's mappings array, which can be expensive for larger\n * maps.\n */\nexport function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap {\n const tracer = new TraceMap(clone(map, []), mapUrl);\n cast(tracer)._decoded = map.mappings;\n return tracer;\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function decodedMap(\n map: TraceMap,\n): Omit & { mappings: readonly SourceMapSegment[][] } {\n return clone(map, decodedMappings(map));\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function encodedMap(map: TraceMap): EncodedSourceMap {\n return clone(map, encodedMappings(map));\n}\n\nfunction clone(\n map: TraceMap | DecodedSourceMap,\n mappings: T,\n): T extends string ? EncodedSourceMap : DecodedSourceMap {\n return {\n version: map.version,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings,\n ignoreList: map.ignoreList || (map as XInput).x_google_ignoreList,\n } as any;\n}\n\nfunction OMapping(source: null, line: null, column: null, name: null): InvalidOriginalMapping;\nfunction OMapping(\n source: string,\n line: number,\n column: number,\n name: string | null,\n): OriginalMapping;\nfunction OMapping(\n source: string | null,\n line: number | null,\n column: number | null,\n name: string | null,\n): OriginalMapping | InvalidOriginalMapping {\n return { source, line, column, name } as any;\n}\n\nfunction GMapping(line: null, column: null): InvalidGeneratedMapping;\nfunction GMapping(line: number, column: number): GeneratedMapping;\nfunction GMapping(\n line: number | null,\n column: number | null,\n): GeneratedMapping | InvalidGeneratedMapping {\n return { line, column } as any;\n}\n\nfunction traceSegmentInternal(\n segments: SourceMapSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number;\nfunction traceSegmentInternal(\n segments: ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number;\nfunction traceSegmentInternal(\n segments: SourceMapSegment[] | ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number {\n let index = memoizedBinarySearch(segments, column, memo, line);\n if (bsFound) {\n index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);\n } else if (bias === LEAST_UPPER_BOUND) index++;\n\n if (index === -1 || index === segments.length) return -1;\n return index;\n}\n\nfunction sliceGeneratedPositions(\n segments: ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): GeneratedMapping[] {\n let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);\n\n // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in\n // insertion order) segment that matched. Even if we did respect the bias when tracing, we would\n // still need to call `lowerBound()` to find the first segment, which is slower than just looking\n // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the\n // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to\n // match LEAST_UPPER_BOUND.\n if (!bsFound && bias === LEAST_UPPER_BOUND) min++;\n\n if (min === -1 || min === segments.length) return [];\n\n // We may have found the segment that started at an earlier column. If this is the case, then we\n // need to slice all generated segments that match _that_ column, because all such segments span\n // to our desired column.\n const matchedColumn = bsFound ? column : segments[min][COLUMN];\n\n // The binary search is not guaranteed to find the lower bound when a match wasn't found.\n if (!bsFound) min = lowerBound(segments, matchedColumn, min);\n const max = upperBound(segments, matchedColumn, min);\n\n const result = [];\n for (; min <= max; min++) {\n const segment = segments[min];\n result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));\n }\n return result;\n}\n\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: false,\n): GeneratedMapping | InvalidGeneratedMapping;\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: true,\n): GeneratedMapping[];\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: boolean,\n): GeneratedMapping | InvalidGeneratedMapping | GeneratedMapping[] {\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n\n const { sources, resolvedSources } = map;\n let sourceIndex = sources.indexOf(source);\n if (sourceIndex === -1) sourceIndex = resolvedSources.indexOf(source);\n if (sourceIndex === -1) return all ? [] : GMapping(null, null);\n\n const generated = (cast(map)._bySources ||= buildBySources(\n decodedMappings(map),\n (cast(map)._bySourceMemos = sources.map(memoizedState)),\n ));\n\n const segments = generated[sourceIndex][line];\n if (segments == null) return all ? [] : GMapping(null, null);\n\n const memo = cast(map)._bySourceMemos![sourceIndex];\n\n if (all) return sliceGeneratedPositions(segments, memo, line, column, bias);\n\n const index = traceSegmentInternal(segments, memo, line, column, bias);\n if (index === -1) return GMapping(null, null);\n\n const segment = segments[index];\n return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);\n}\n"],"names":["encode","decode","bsFound"],"mappings":"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"}
\ No newline at end of file
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts
deleted file mode 100644
index ec775fbe..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TraceMap } from './trace-mapping';
-import type { SectionedSourceMapInput } from './types';
-type AnyMap = {
- new (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;
- (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;
-};
-export declare const AnyMap: AnyMap;
-export {};
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts
deleted file mode 100644
index ecb2873c..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';
-export type MemoState = {
- lastKey: number;
- lastNeedle: number;
- lastIndex: number;
-};
-export declare let found: boolean;
-/**
- * A binary search implementation that returns the index if a match is found.
- * If no match is found, then the left-index (the index associated with the item that comes just
- * before the desired index) is returned. To maintain proper sort order, a splice would happen at
- * the next index:
- *
- * ```js
- * const array = [1, 3];
- * const needle = 2;
- * const index = binarySearch(array, needle, (item, needle) => item - needle);
- *
- * assert.equal(index, 0);
- * array.splice(index + 1, 0, needle);
- * assert.deepEqual(array, [1, 2, 3]);
- * ```
- */
-export declare function binarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, low: number, high: number): number;
-export declare function upperBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number;
-export declare function lowerBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number;
-export declare function memoizedState(): MemoState;
-/**
- * This overly complicated beast is just to record the last tested line/column and the resulting
- * index, allowing us to skip a few tests if mappings are monotonically increasing.
- */
-export declare function memoizedBinarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, state: MemoState, key: number): number;
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts
deleted file mode 100644
index a91751cd..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';
-import type { MemoState } from './binary-search';
-export type Source = {
- __proto__: null;
- [line: number]: Exclude[];
-};
-export default function buildBySources(decoded: readonly SourceMapSegment[][], memos: MemoState[]): Source[];
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts
deleted file mode 100644
index cf7d4f8a..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export default function resolve(input: string, base: string | undefined): string;
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts
deleted file mode 100644
index 2bfb5dc1..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import type { SourceMapSegment } from './sourcemap-segment';
-export default function maybeSort(mappings: SourceMapSegment[][], owned: boolean): SourceMapSegment[][];
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts
deleted file mode 100644
index 6d4d318d..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-type GeneratedColumn = number;
-type SourcesIndex = number;
-type SourceLine = number;
-type SourceColumn = number;
-type NamesIndex = number;
-type GeneratedLine = number;
-export type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];
-export type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn];
-export declare const COLUMN = 0;
-export declare const SOURCES_INDEX = 1;
-export declare const SOURCE_LINE = 2;
-export declare const SOURCE_COLUMN = 3;
-export declare const NAMES_INDEX = 4;
-export declare const REV_GENERATED_LINE = 1;
-export declare const REV_GENERATED_COLUMN = 2;
-export {};
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts
deleted file mode 100644
index bead5c12..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Removes everything after the last "/", but leaves the slash.
- */
-export default function stripFilename(path: string | undefined | null): string;
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts
deleted file mode 100644
index f618ec36..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import type { SourceMapSegment } from './sourcemap-segment';
-import type { SourceMapV3, DecodedSourceMap, EncodedSourceMap, InvalidOriginalMapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, SourceMapInput, Needle, SourceNeedle, SourceMap, EachMapping } from './types';
-export type { SourceMapSegment } from './sourcemap-segment';
-export type { SourceMap, DecodedSourceMap, EncodedSourceMap, Section, SectionedSourceMap, SourceMapV3, Bias, EachMapping, GeneratedMapping, InvalidGeneratedMapping, InvalidOriginalMapping, Needle, OriginalMapping, OriginalMapping as Mapping, SectionedSourceMapInput, SourceMapInput, SourceNeedle, XInput, EncodedSourceMapXInput, DecodedSourceMapXInput, SectionedSourceMapXInput, SectionXInput, } from './types';
-export declare const LEAST_UPPER_BOUND = -1;
-export declare const GREATEST_LOWER_BOUND = 1;
-export { AnyMap } from './any-map';
-export declare class TraceMap implements SourceMap {
- version: SourceMapV3['version'];
- file: SourceMapV3['file'];
- names: SourceMapV3['names'];
- sourceRoot: SourceMapV3['sourceRoot'];
- sources: SourceMapV3['sources'];
- sourcesContent: SourceMapV3['sourcesContent'];
- ignoreList: SourceMapV3['ignoreList'];
- resolvedSources: string[];
- private _encoded;
- private _decoded;
- private _decodedMemo;
- private _bySources;
- private _bySourceMemos;
- constructor(map: SourceMapInput, mapUrl?: string | null);
-}
-/**
- * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
- */
-export declare function encodedMappings(map: TraceMap): EncodedSourceMap['mappings'];
-/**
- * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
- */
-export declare function decodedMappings(map: TraceMap): Readonly;
-/**
- * A low-level API to find the segment associated with a generated line/column (think, from a
- * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.
- */
-export declare function traceSegment(map: TraceMap, line: number, column: number): Readonly | null;
-/**
- * A higher-level API to find the source/line/column associated with a generated line/column
- * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in
- * `source-map` library.
- */
-export declare function originalPositionFor(map: TraceMap, needle: Needle): OriginalMapping | InvalidOriginalMapping;
-/**
- * Finds the generated line/column position of the provided source/line/column source position.
- */
-export declare function generatedPositionFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping | InvalidGeneratedMapping;
-/**
- * Finds all generated line/column positions of the provided source/line/column source position.
- */
-export declare function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[];
-/**
- * Iterates each mapping in generated position order.
- */
-export declare function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void;
-/**
- * Retrieves the source content for a particular source, if its found. Returns null if not.
- */
-export declare function sourceContentFor(map: TraceMap, source: string): string | null;
-/**
- * Determines if the source is marked to ignore by the source map.
- */
-export declare function isIgnored(map: TraceMap, source: string): boolean;
-/**
- * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
- * maps.
- */
-export declare function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap;
-/**
- * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-export declare function decodedMap(map: TraceMap): Omit & {
- mappings: readonly SourceMapSegment[][];
-};
-/**
- * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
- * a sourcemap, or to JSON.stringify.
- */
-export declare function encodedMap(map: TraceMap): EncodedSourceMap;
diff --git a/website/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts b/website/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts
deleted file mode 100644
index a94e6b25..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import type { SourceMapSegment } from './sourcemap-segment';
-import type { GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap } from './trace-mapping';
-export interface SourceMapV3 {
- file?: string | null;
- names: string[];
- sourceRoot?: string;
- sources: (string | null)[];
- sourcesContent?: (string | null)[];
- version: 3;
- ignoreList?: number[];
-}
-export interface EncodedSourceMap extends SourceMapV3 {
- mappings: string;
-}
-export interface DecodedSourceMap extends SourceMapV3 {
- mappings: SourceMapSegment[][];
-}
-export interface Section {
- offset: {
- line: number;
- column: number;
- };
- map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap;
-}
-export interface SectionedSourceMap {
- file?: string | null;
- sections: Section[];
- version: 3;
-}
-export type OriginalMapping = {
- source: string | null;
- line: number;
- column: number;
- name: string | null;
-};
-export type InvalidOriginalMapping = {
- source: null;
- line: null;
- column: null;
- name: null;
-};
-export type GeneratedMapping = {
- line: number;
- column: number;
-};
-export type InvalidGeneratedMapping = {
- line: null;
- column: null;
-};
-export type Bias = typeof GREATEST_LOWER_BOUND | typeof LEAST_UPPER_BOUND;
-export type XInput = {
- x_google_ignoreList?: SourceMapV3['ignoreList'];
-};
-export type EncodedSourceMapXInput = EncodedSourceMap & XInput;
-export type DecodedSourceMapXInput = DecodedSourceMap & XInput;
-export type SectionedSourceMapXInput = Omit & {
- sections: SectionXInput[];
-};
-export type SectionXInput = Omit & {
- map: SectionedSourceMapInput;
-};
-export type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap;
-export type SectionedSourceMapInput = SourceMapInput | SectionedSourceMapXInput;
-export type Needle = {
- line: number;
- column: number;
- bias?: Bias;
-};
-export type SourceNeedle = {
- source: string;
- line: number;
- column: number;
- bias?: Bias;
-};
-export type EachMapping = {
- generatedLine: number;
- generatedColumn: number;
- source: null;
- originalLine: null;
- originalColumn: null;
- name: null;
-} | {
- generatedLine: number;
- generatedColumn: number;
- source: string | null;
- originalLine: number;
- originalColumn: number;
- name: string | null;
-};
-export declare abstract class SourceMap {
- version: SourceMapV3['version'];
- file: SourceMapV3['file'];
- names: SourceMapV3['names'];
- sourceRoot: SourceMapV3['sourceRoot'];
- sources: SourceMapV3['sources'];
- sourcesContent: SourceMapV3['sourcesContent'];
- resolvedSources: SourceMapV3['sources'];
- ignoreList: SourceMapV3['ignoreList'];
-}
diff --git a/website/node_modules/@jridgewell/trace-mapping/package.json b/website/node_modules/@jridgewell/trace-mapping/package.json
deleted file mode 100644
index 454a1bdb..00000000
--- a/website/node_modules/@jridgewell/trace-mapping/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "name": "@jridgewell/trace-mapping",
- "version": "0.3.25",
- "description": "Trace the original position through a source map",
- "keywords": [
- "source",
- "map"
- ],
- "main": "dist/trace-mapping.umd.js",
- "module": "dist/trace-mapping.mjs",
- "types": "dist/types/trace-mapping.d.ts",
- "files": [
- "dist"
- ],
- "exports": {
- ".": [
- {
- "types": "./dist/types/trace-mapping.d.ts",
- "browser": "./dist/trace-mapping.umd.js",
- "require": "./dist/trace-mapping.umd.js",
- "import": "./dist/trace-mapping.mjs"
- },
- "./dist/trace-mapping.umd.js"
- ],
- "./package.json": "./package.json"
- },
- "author": "Justin Ridgewell ",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jridgewell/trace-mapping.git"
- },
- "license": "MIT",
- "scripts": {
- "benchmark": "run-s build:rollup benchmark:*",
- "benchmark:install": "cd benchmark && npm install",
- "benchmark:only": "node --expose-gc benchmark/index.mjs",
- "build": "run-s -n build:*",
- "build:rollup": "rollup -c rollup.config.mjs",
- "build:ts": "tsc --project tsconfig.build.json",
- "lint": "run-s -n lint:*",
- "lint:prettier": "npm run test:lint:prettier -- --write",
- "lint:ts": "npm run test:lint:ts -- --fix",
- "prebuild": "rm -rf dist",
- "prepublishOnly": "npm run preversion",
- "preversion": "run-s test build",
- "test": "run-s -n test:lint test:only",
- "test:debug": "mocha --inspect-brk",
- "test:lint": "run-s -n test:lint:*",
- "test:lint:prettier": "prettier --check '{src,test}/**/*.ts' '**/*.md'",
- "test:lint:ts": "eslint '{src,test}/**/*.ts'",
- "test:only": "c8 mocha",
- "test:watch": "mocha --watch"
- },
- "devDependencies": {
- "@rollup/plugin-typescript": "11.1.6",
- "@types/mocha": "10.0.6",
- "@types/node": "20.11.20",
- "@typescript-eslint/eslint-plugin": "6.18.1",
- "@typescript-eslint/parser": "6.18.1",
- "benchmark": "2.1.4",
- "c8": "9.0.0",
- "esbuild": "0.19.11",
- "eslint": "8.56.0",
- "eslint-config-prettier": "9.1.0",
- "eslint-plugin-no-only-tests": "3.1.0",
- "mocha": "10.3.0",
- "npm-run-all": "4.1.5",
- "prettier": "3.1.1",
- "rollup": "4.9.4",
- "tsx": "4.7.0",
- "typescript": "5.3.3"
- },
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
-}
diff --git a/website/node_modules/@nodelib/fs.scandir/LICENSE b/website/node_modules/@nodelib/fs.scandir/LICENSE
deleted file mode 100644
index 65a99946..00000000
--- a/website/node_modules/@nodelib/fs.scandir/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Denis Malinochkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@nodelib/fs.scandir/README.md b/website/node_modules/@nodelib/fs.scandir/README.md
deleted file mode 100644
index e0b218b9..00000000
--- a/website/node_modules/@nodelib/fs.scandir/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# @nodelib/fs.scandir
-
-> List files and directories inside the specified directory.
-
-## :bulb: Highlights
-
-The package is aimed at obtaining information about entries in the directory.
-
-* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional).
-* :gear: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type. See [`old` and `modern` mode](#old-and-modern-mode).
-* :link: Can safely work with broken symbolic links.
-
-## Install
-
-```console
-npm install @nodelib/fs.scandir
-```
-
-## Usage
-
-```ts
-import * as fsScandir from '@nodelib/fs.scandir';
-
-fsScandir.scandir('path', (error, stats) => { /* … */ });
-```
-
-## API
-
-### .scandir(path, [optionsOrSettings], callback)
-
-Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path with standard callback-style.
-
-```ts
-fsScandir.scandir('path', (error, entries) => { /* … */ });
-fsScandir.scandir('path', {}, (error, entries) => { /* … */ });
-fsScandir.scandir('path', new fsScandir.Settings(), (error, entries) => { /* … */ });
-```
-
-### .scandirSync(path, [optionsOrSettings])
-
-Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path.
-
-```ts
-const entries = fsScandir.scandirSync('path');
-const entries = fsScandir.scandirSync('path', {});
-const entries = fsScandir.scandirSync(('path', new fsScandir.Settings());
-```
-
-#### path
-
-* Required: `true`
-* Type: `string | Buffer | URL`
-
-A path to a file. If a URL is provided, it must use the `file:` protocol.
-
-#### optionsOrSettings
-
-* Required: `false`
-* Type: `Options | Settings`
-* Default: An instance of `Settings` class
-
-An [`Options`](#options) object or an instance of [`Settings`](#settingsoptions) class.
-
-> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
-
-### Settings([options])
-
-A class of full settings of the package.
-
-```ts
-const settings = new fsScandir.Settings({ followSymbolicLinks: false });
-
-const entries = fsScandir.scandirSync('path', settings);
-```
-
-## Entry
-
-* `name` — The name of the entry (`unknown.txt`).
-* `path` — The path of the entry relative to call directory (`root/unknown.txt`).
-* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. On Node.js below 10.10 will be emulated by [`DirentFromStats`](./src/utils/fs.ts) class.
-* `stats` (optional) — An instance of `fs.Stats` class.
-
-For example, the `scandir` call for `tools` directory with one directory inside:
-
-```ts
-{
- dirent: Dirent { name: 'typedoc', /* … */ },
- name: 'typedoc',
- path: 'tools/typedoc'
-}
-```
-
-## Options
-
-### stats
-
-* Type: `boolean`
-* Default: `false`
-
-Adds an instance of `fs.Stats` class to the [`Entry`](#entry).
-
-> :book: Always use `fs.readdir` without the `withFileTypes` option. ??TODO??
-
-### followSymbolicLinks
-
-* Type: `boolean`
-* Default: `false`
-
-Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`.
-
-### `throwErrorOnBrokenSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Throw an error when symbolic link is broken if `true` or safely use `lstat` call if `false`.
-
-### `pathSegmentSeparator`
-
-* Type: `string`
-* Default: `path.sep`
-
-By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead.
-
-### `fs`
-
-* Type: [`FileSystemAdapter`](./src/adapters/fs.ts)
-* Default: A default FS methods
-
-By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
-
-```ts
-interface FileSystemAdapter {
- lstat?: typeof fs.lstat;
- stat?: typeof fs.stat;
- lstatSync?: typeof fs.lstatSync;
- statSync?: typeof fs.statSync;
- readdir?: typeof fs.readdir;
- readdirSync?: typeof fs.readdirSync;
-}
-
-const settings = new fsScandir.Settings({
- fs: { lstat: fakeLstat }
-});
-```
-
-## `old` and `modern` mode
-
-This package has two modes that are used depending on the environment and parameters of use.
-
-### old
-
-* Node.js below `10.10` or when the `stats` option is enabled
-
-When working in the old mode, the directory is read first (`fs.readdir`), then the type of entries is determined (`fs.lstat` and/or `fs.stat` for symbolic links).
-
-### modern
-
-* Node.js 10.10+ and the `stats` option is disabled
-
-In the modern mode, reading the directory (`fs.readdir` with the `withFileTypes` option) is combined with obtaining information about its entries. An additional call for symbolic links (`fs.stat`) is still present.
-
-This mode makes fewer calls to the file system. It's faster.
-
-## Changelog
-
-See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
-
-## License
-
-This software is released under the terms of the MIT license.
diff --git a/website/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts b/website/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts
deleted file mode 100644
index 827f1db0..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import type * as fsStat from '@nodelib/fs.stat';
-import type { Dirent, ErrnoException } from '../types';
-export interface ReaddirAsynchronousMethod {
- (filepath: string, options: {
- withFileTypes: true;
- }, callback: (error: ErrnoException | null, files: Dirent[]) => void): void;
- (filepath: string, callback: (error: ErrnoException | null, files: string[]) => void): void;
-}
-export interface ReaddirSynchronousMethod {
- (filepath: string, options: {
- withFileTypes: true;
- }): Dirent[];
- (filepath: string): string[];
-}
-export declare type FileSystemAdapter = fsStat.FileSystemAdapter & {
- readdir: ReaddirAsynchronousMethod;
- readdirSync: ReaddirSynchronousMethod;
-};
-export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter;
-export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/adapters/fs.js b/website/node_modules/@nodelib/fs.scandir/out/adapters/fs.js
deleted file mode 100644
index f0fe0220..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/adapters/fs.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
-const fs = require("fs");
-exports.FILE_SYSTEM_ADAPTER = {
- lstat: fs.lstat,
- stat: fs.stat,
- lstatSync: fs.lstatSync,
- statSync: fs.statSync,
- readdir: fs.readdir,
- readdirSync: fs.readdirSync
-};
-function createFileSystemAdapter(fsMethods) {
- if (fsMethods === undefined) {
- return exports.FILE_SYSTEM_ADAPTER;
- }
- return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
-}
-exports.createFileSystemAdapter = createFileSystemAdapter;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/constants.d.ts b/website/node_modules/@nodelib/fs.scandir/out/constants.d.ts
deleted file mode 100644
index 33f17497..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/constants.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * IS `true` for Node.js 10.10 and greater.
- */
-export declare const IS_SUPPORT_READDIR_WITH_FILE_TYPES: boolean;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/constants.js b/website/node_modules/@nodelib/fs.scandir/out/constants.js
deleted file mode 100644
index 7e3d4411..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/constants.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
-const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');
-if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {
- throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);
-}
-const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);
-const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);
-const SUPPORTED_MAJOR_VERSION = 10;
-const SUPPORTED_MINOR_VERSION = 10;
-const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;
-const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;
-/**
- * IS `true` for Node.js 10.10 and greater.
- */
-exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/index.d.ts b/website/node_modules/@nodelib/fs.scandir/out/index.d.ts
deleted file mode 100644
index b9da83ed..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod } from './adapters/fs';
-import * as async from './providers/async';
-import Settings, { Options } from './settings';
-import type { Dirent, Entry } from './types';
-declare type AsyncCallback = async.AsyncCallback;
-declare function scandir(path: string, callback: AsyncCallback): void;
-declare function scandir(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
-declare namespace scandir {
- function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise;
-}
-declare function scandirSync(path: string, optionsOrSettings?: Options | Settings): Entry[];
-export { scandir, scandirSync, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod, Options };
diff --git a/website/node_modules/@nodelib/fs.scandir/out/index.js b/website/node_modules/@nodelib/fs.scandir/out/index.js
deleted file mode 100644
index 99c70d3d..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Settings = exports.scandirSync = exports.scandir = void 0;
-const async = require("./providers/async");
-const sync = require("./providers/sync");
-const settings_1 = require("./settings");
-exports.Settings = settings_1.default;
-function scandir(path, optionsOrSettingsOrCallback, callback) {
- if (typeof optionsOrSettingsOrCallback === 'function') {
- async.read(path, getSettings(), optionsOrSettingsOrCallback);
- return;
- }
- async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
-}
-exports.scandir = scandir;
-function scandirSync(path, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- return sync.read(path, settings);
-}
-exports.scandirSync = scandirSync;
-function getSettings(settingsOrOptions = {}) {
- if (settingsOrOptions instanceof settings_1.default) {
- return settingsOrOptions;
- }
- return new settings_1.default(settingsOrOptions);
-}
diff --git a/website/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts b/website/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts
deleted file mode 100644
index 5829676d..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-///
-import type Settings from '../settings';
-import type { Entry } from '../types';
-export declare type AsyncCallback = (error: NodeJS.ErrnoException, entries: Entry[]) => void;
-export declare function read(directory: string, settings: Settings, callback: AsyncCallback): void;
-export declare function readdirWithFileTypes(directory: string, settings: Settings, callback: AsyncCallback): void;
-export declare function readdir(directory: string, settings: Settings, callback: AsyncCallback): void;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/providers/async.js b/website/node_modules/@nodelib/fs.scandir/out/providers/async.js
deleted file mode 100644
index e8e2f0a9..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/providers/async.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
-const fsStat = require("@nodelib/fs.stat");
-const rpl = require("run-parallel");
-const constants_1 = require("../constants");
-const utils = require("../utils");
-const common = require("./common");
-function read(directory, settings, callback) {
- if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
- readdirWithFileTypes(directory, settings, callback);
- return;
- }
- readdir(directory, settings, callback);
-}
-exports.read = read;
-function readdirWithFileTypes(directory, settings, callback) {
- settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {
- if (readdirError !== null) {
- callFailureCallback(callback, readdirError);
- return;
- }
- const entries = dirents.map((dirent) => ({
- dirent,
- name: dirent.name,
- path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
- }));
- if (!settings.followSymbolicLinks) {
- callSuccessCallback(callback, entries);
- return;
- }
- const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));
- rpl(tasks, (rplError, rplEntries) => {
- if (rplError !== null) {
- callFailureCallback(callback, rplError);
- return;
- }
- callSuccessCallback(callback, rplEntries);
- });
- });
-}
-exports.readdirWithFileTypes = readdirWithFileTypes;
-function makeRplTaskEntry(entry, settings) {
- return (done) => {
- if (!entry.dirent.isSymbolicLink()) {
- done(null, entry);
- return;
- }
- settings.fs.stat(entry.path, (statError, stats) => {
- if (statError !== null) {
- if (settings.throwErrorOnBrokenSymbolicLink) {
- done(statError);
- return;
- }
- done(null, entry);
- return;
- }
- entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
- done(null, entry);
- });
- };
-}
-function readdir(directory, settings, callback) {
- settings.fs.readdir(directory, (readdirError, names) => {
- if (readdirError !== null) {
- callFailureCallback(callback, readdirError);
- return;
- }
- const tasks = names.map((name) => {
- const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
- return (done) => {
- fsStat.stat(path, settings.fsStatSettings, (error, stats) => {
- if (error !== null) {
- done(error);
- return;
- }
- const entry = {
- name,
- path,
- dirent: utils.fs.createDirentFromStats(name, stats)
- };
- if (settings.stats) {
- entry.stats = stats;
- }
- done(null, entry);
- });
- };
- });
- rpl(tasks, (rplError, entries) => {
- if (rplError !== null) {
- callFailureCallback(callback, rplError);
- return;
- }
- callSuccessCallback(callback, entries);
- });
- });
-}
-exports.readdir = readdir;
-function callFailureCallback(callback, error) {
- callback(error);
-}
-function callSuccessCallback(callback, result) {
- callback(null, result);
-}
diff --git a/website/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts b/website/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts
deleted file mode 100644
index 2b4d08b5..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function joinPathSegments(a: string, b: string, separator: string): string;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/providers/common.js b/website/node_modules/@nodelib/fs.scandir/out/providers/common.js
deleted file mode 100644
index 8724cb59..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/providers/common.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.joinPathSegments = void 0;
-function joinPathSegments(a, b, separator) {
- /**
- * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
- */
- if (a.endsWith(separator)) {
- return a + b;
- }
- return a + separator + b;
-}
-exports.joinPathSegments = joinPathSegments;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts b/website/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts
deleted file mode 100644
index e05c8f07..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import type Settings from '../settings';
-import type { Entry } from '../types';
-export declare function read(directory: string, settings: Settings): Entry[];
-export declare function readdirWithFileTypes(directory: string, settings: Settings): Entry[];
-export declare function readdir(directory: string, settings: Settings): Entry[];
diff --git a/website/node_modules/@nodelib/fs.scandir/out/providers/sync.js b/website/node_modules/@nodelib/fs.scandir/out/providers/sync.js
deleted file mode 100644
index 146db343..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/providers/sync.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
-const fsStat = require("@nodelib/fs.stat");
-const constants_1 = require("../constants");
-const utils = require("../utils");
-const common = require("./common");
-function read(directory, settings) {
- if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
- return readdirWithFileTypes(directory, settings);
- }
- return readdir(directory, settings);
-}
-exports.read = read;
-function readdirWithFileTypes(directory, settings) {
- const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });
- return dirents.map((dirent) => {
- const entry = {
- dirent,
- name: dirent.name,
- path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
- };
- if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {
- try {
- const stats = settings.fs.statSync(entry.path);
- entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
- }
- catch (error) {
- if (settings.throwErrorOnBrokenSymbolicLink) {
- throw error;
- }
- }
- }
- return entry;
- });
-}
-exports.readdirWithFileTypes = readdirWithFileTypes;
-function readdir(directory, settings) {
- const names = settings.fs.readdirSync(directory);
- return names.map((name) => {
- const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
- const stats = fsStat.statSync(entryPath, settings.fsStatSettings);
- const entry = {
- name,
- path: entryPath,
- dirent: utils.fs.createDirentFromStats(name, stats)
- };
- if (settings.stats) {
- entry.stats = stats;
- }
- return entry;
- });
-}
-exports.readdir = readdir;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/settings.d.ts b/website/node_modules/@nodelib/fs.scandir/out/settings.d.ts
deleted file mode 100644
index a0db1155..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/settings.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as fsStat from '@nodelib/fs.stat';
-import * as fs from './adapters/fs';
-export interface Options {
- followSymbolicLinks?: boolean;
- fs?: Partial;
- pathSegmentSeparator?: string;
- stats?: boolean;
- throwErrorOnBrokenSymbolicLink?: boolean;
-}
-export default class Settings {
- private readonly _options;
- readonly followSymbolicLinks: boolean;
- readonly fs: fs.FileSystemAdapter;
- readonly pathSegmentSeparator: string;
- readonly stats: boolean;
- readonly throwErrorOnBrokenSymbolicLink: boolean;
- readonly fsStatSettings: fsStat.Settings;
- constructor(_options?: Options);
- private _getValue;
-}
diff --git a/website/node_modules/@nodelib/fs.scandir/out/settings.js b/website/node_modules/@nodelib/fs.scandir/out/settings.js
deleted file mode 100644
index 15a3e8cd..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/settings.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const path = require("path");
-const fsStat = require("@nodelib/fs.stat");
-const fs = require("./adapters/fs");
-class Settings {
- constructor(_options = {}) {
- this._options = _options;
- this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
- this.fs = fs.createFileSystemAdapter(this._options.fs);
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
- this.stats = this._getValue(this._options.stats, false);
- this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
- this.fsStatSettings = new fsStat.Settings({
- followSymbolicLink: this.followSymbolicLinks,
- fs: this.fs,
- throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink
- });
- }
- _getValue(option, value) {
- return option !== null && option !== void 0 ? option : value;
- }
-}
-exports.default = Settings;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/types/index.d.ts b/website/node_modules/@nodelib/fs.scandir/out/types/index.d.ts
deleted file mode 100644
index f326c5e5..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/types/index.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-///
-import type * as fs from 'fs';
-export interface Entry {
- dirent: Dirent;
- name: string;
- path: string;
- stats?: Stats;
-}
-export declare type Stats = fs.Stats;
-export declare type ErrnoException = NodeJS.ErrnoException;
-export interface Dirent {
- isBlockDevice: () => boolean;
- isCharacterDevice: () => boolean;
- isDirectory: () => boolean;
- isFIFO: () => boolean;
- isFile: () => boolean;
- isSocket: () => boolean;
- isSymbolicLink: () => boolean;
- name: string;
-}
diff --git a/website/node_modules/@nodelib/fs.scandir/out/types/index.js b/website/node_modules/@nodelib/fs.scandir/out/types/index.js
deleted file mode 100644
index c8ad2e54..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/types/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/website/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts b/website/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts
deleted file mode 100644
index bb863f15..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import type { Dirent, Stats } from '../types';
-export declare function createDirentFromStats(name: string, stats: Stats): Dirent;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/utils/fs.js b/website/node_modules/@nodelib/fs.scandir/out/utils/fs.js
deleted file mode 100644
index ace7c74d..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/utils/fs.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createDirentFromStats = void 0;
-class DirentFromStats {
- constructor(name, stats) {
- this.name = name;
- this.isBlockDevice = stats.isBlockDevice.bind(stats);
- this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
- this.isDirectory = stats.isDirectory.bind(stats);
- this.isFIFO = stats.isFIFO.bind(stats);
- this.isFile = stats.isFile.bind(stats);
- this.isSocket = stats.isSocket.bind(stats);
- this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
- }
-}
-function createDirentFromStats(name, stats) {
- return new DirentFromStats(name, stats);
-}
-exports.createDirentFromStats = createDirentFromStats;
diff --git a/website/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts b/website/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts
deleted file mode 100644
index 1b41954e..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as fs from './fs';
-export { fs };
diff --git a/website/node_modules/@nodelib/fs.scandir/out/utils/index.js b/website/node_modules/@nodelib/fs.scandir/out/utils/index.js
deleted file mode 100644
index f5de129f..00000000
--- a/website/node_modules/@nodelib/fs.scandir/out/utils/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.fs = void 0;
-const fs = require("./fs");
-exports.fs = fs;
diff --git a/website/node_modules/@nodelib/fs.scandir/package.json b/website/node_modules/@nodelib/fs.scandir/package.json
deleted file mode 100644
index d3a89241..00000000
--- a/website/node_modules/@nodelib/fs.scandir/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "@nodelib/fs.scandir",
- "version": "2.1.5",
- "description": "List files and directories inside the specified directory",
- "license": "MIT",
- "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir",
- "keywords": [
- "NodeLib",
- "fs",
- "FileSystem",
- "file system",
- "scandir",
- "readdir",
- "dirent"
- ],
- "engines": {
- "node": ">= 8"
- },
- "files": [
- "out/**",
- "!out/**/*.map",
- "!out/**/*.spec.*"
- ],
- "main": "out/index.js",
- "typings": "out/index.d.ts",
- "scripts": {
- "clean": "rimraf {tsconfig.tsbuildinfo,out}",
- "lint": "eslint \"src/**/*.ts\" --cache",
- "compile": "tsc -b .",
- "compile:watch": "tsc -p . --watch --sourceMap",
- "test": "mocha \"out/**/*.spec.js\" -s 0",
- "build": "npm run clean && npm run compile && npm run lint && npm test",
- "watch": "npm run clean && npm run compile:watch"
- },
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "devDependencies": {
- "@nodelib/fs.macchiato": "1.0.4",
- "@types/run-parallel": "^1.1.0"
- },
- "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562"
-}
diff --git a/website/node_modules/@nodelib/fs.stat/LICENSE b/website/node_modules/@nodelib/fs.stat/LICENSE
deleted file mode 100644
index 65a99946..00000000
--- a/website/node_modules/@nodelib/fs.stat/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Denis Malinochkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@nodelib/fs.stat/README.md b/website/node_modules/@nodelib/fs.stat/README.md
deleted file mode 100644
index 686f0471..00000000
--- a/website/node_modules/@nodelib/fs.stat/README.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# @nodelib/fs.stat
-
-> Get the status of a file with some features.
-
-## :bulb: Highlights
-
-Wrapper around standard method `fs.lstat` and `fs.stat` with some features.
-
-* :beginner: Normally follows symbolic link.
-* :gear: Can safely work with broken symbolic link.
-
-## Install
-
-```console
-npm install @nodelib/fs.stat
-```
-
-## Usage
-
-```ts
-import * as fsStat from '@nodelib/fs.stat';
-
-fsStat.stat('path', (error, stats) => { /* … */ });
-```
-
-## API
-
-### .stat(path, [optionsOrSettings], callback)
-
-Returns an instance of `fs.Stats` class for provided path with standard callback-style.
-
-```ts
-fsStat.stat('path', (error, stats) => { /* … */ });
-fsStat.stat('path', {}, (error, stats) => { /* … */ });
-fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ });
-```
-
-### .statSync(path, [optionsOrSettings])
-
-Returns an instance of `fs.Stats` class for provided path.
-
-```ts
-const stats = fsStat.stat('path');
-const stats = fsStat.stat('path', {});
-const stats = fsStat.stat('path', new fsStat.Settings());
-```
-
-#### path
-
-* Required: `true`
-* Type: `string | Buffer | URL`
-
-A path to a file. If a URL is provided, it must use the `file:` protocol.
-
-#### optionsOrSettings
-
-* Required: `false`
-* Type: `Options | Settings`
-* Default: An instance of `Settings` class
-
-An [`Options`](#options) object or an instance of [`Settings`](#settings) class.
-
-> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
-
-### Settings([options])
-
-A class of full settings of the package.
-
-```ts
-const settings = new fsStat.Settings({ followSymbolicLink: false });
-
-const stats = fsStat.stat('path', settings);
-```
-
-## Options
-
-### `followSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`.
-
-### `markSymbolicLink`
-
-* Type: `boolean`
-* Default: `false`
-
-Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`).
-
-> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link.
-
-### `throwErrorOnBrokenSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`.
-
-### `fs`
-
-* Type: [`FileSystemAdapter`](./src/adapters/fs.ts)
-* Default: A default FS methods
-
-By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
-
-```ts
-interface FileSystemAdapter {
- lstat?: typeof fs.lstat;
- stat?: typeof fs.stat;
- lstatSync?: typeof fs.lstatSync;
- statSync?: typeof fs.statSync;
-}
-
-const settings = new fsStat.Settings({
- fs: { lstat: fakeLstat }
-});
-```
-
-## Changelog
-
-See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
-
-## License
-
-This software is released under the terms of the MIT license.
diff --git a/website/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/website/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts
deleted file mode 100644
index 3af759c9..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-///
-import * as fs from 'fs';
-import type { ErrnoException } from '../types';
-export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void;
-export declare type StatSynchronousMethod = (path: string) => fs.Stats;
-export interface FileSystemAdapter {
- lstat: StatAsynchronousMethod;
- stat: StatAsynchronousMethod;
- lstatSync: StatSynchronousMethod;
- statSync: StatSynchronousMethod;
-}
-export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter;
-export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter;
diff --git a/website/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/website/node_modules/@nodelib/fs.stat/out/adapters/fs.js
deleted file mode 100644
index 8dc08c8c..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/adapters/fs.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
-const fs = require("fs");
-exports.FILE_SYSTEM_ADAPTER = {
- lstat: fs.lstat,
- stat: fs.stat,
- lstatSync: fs.lstatSync,
- statSync: fs.statSync
-};
-function createFileSystemAdapter(fsMethods) {
- if (fsMethods === undefined) {
- return exports.FILE_SYSTEM_ADAPTER;
- }
- return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
-}
-exports.createFileSystemAdapter = createFileSystemAdapter;
diff --git a/website/node_modules/@nodelib/fs.stat/out/index.d.ts b/website/node_modules/@nodelib/fs.stat/out/index.d.ts
deleted file mode 100644
index f95db995..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs';
-import * as async from './providers/async';
-import Settings, { Options } from './settings';
-import type { Stats } from './types';
-declare type AsyncCallback = async.AsyncCallback;
-declare function stat(path: string, callback: AsyncCallback): void;
-declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
-declare namespace stat {
- function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise;
-}
-declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats;
-export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats };
diff --git a/website/node_modules/@nodelib/fs.stat/out/index.js b/website/node_modules/@nodelib/fs.stat/out/index.js
deleted file mode 100644
index b23f7510..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.statSync = exports.stat = exports.Settings = void 0;
-const async = require("./providers/async");
-const sync = require("./providers/sync");
-const settings_1 = require("./settings");
-exports.Settings = settings_1.default;
-function stat(path, optionsOrSettingsOrCallback, callback) {
- if (typeof optionsOrSettingsOrCallback === 'function') {
- async.read(path, getSettings(), optionsOrSettingsOrCallback);
- return;
- }
- async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
-}
-exports.stat = stat;
-function statSync(path, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- return sync.read(path, settings);
-}
-exports.statSync = statSync;
-function getSettings(settingsOrOptions = {}) {
- if (settingsOrOptions instanceof settings_1.default) {
- return settingsOrOptions;
- }
- return new settings_1.default(settingsOrOptions);
-}
diff --git a/website/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/website/node_modules/@nodelib/fs.stat/out/providers/async.d.ts
deleted file mode 100644
index 85423ce1..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/providers/async.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import type Settings from '../settings';
-import type { ErrnoException, Stats } from '../types';
-export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void;
-export declare function read(path: string, settings: Settings, callback: AsyncCallback): void;
diff --git a/website/node_modules/@nodelib/fs.stat/out/providers/async.js b/website/node_modules/@nodelib/fs.stat/out/providers/async.js
deleted file mode 100644
index 983ff0e6..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/providers/async.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.read = void 0;
-function read(path, settings, callback) {
- settings.fs.lstat(path, (lstatError, lstat) => {
- if (lstatError !== null) {
- callFailureCallback(callback, lstatError);
- return;
- }
- if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
- callSuccessCallback(callback, lstat);
- return;
- }
- settings.fs.stat(path, (statError, stat) => {
- if (statError !== null) {
- if (settings.throwErrorOnBrokenSymbolicLink) {
- callFailureCallback(callback, statError);
- return;
- }
- callSuccessCallback(callback, lstat);
- return;
- }
- if (settings.markSymbolicLink) {
- stat.isSymbolicLink = () => true;
- }
- callSuccessCallback(callback, stat);
- });
- });
-}
-exports.read = read;
-function callFailureCallback(callback, error) {
- callback(error);
-}
-function callSuccessCallback(callback, result) {
- callback(null, result);
-}
diff --git a/website/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/website/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts
deleted file mode 100644
index 428c3d79..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type Settings from '../settings';
-import type { Stats } from '../types';
-export declare function read(path: string, settings: Settings): Stats;
diff --git a/website/node_modules/@nodelib/fs.stat/out/providers/sync.js b/website/node_modules/@nodelib/fs.stat/out/providers/sync.js
deleted file mode 100644
index 1521c361..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/providers/sync.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.read = void 0;
-function read(path, settings) {
- const lstat = settings.fs.lstatSync(path);
- if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
- return lstat;
- }
- try {
- const stat = settings.fs.statSync(path);
- if (settings.markSymbolicLink) {
- stat.isSymbolicLink = () => true;
- }
- return stat;
- }
- catch (error) {
- if (!settings.throwErrorOnBrokenSymbolicLink) {
- return lstat;
- }
- throw error;
- }
-}
-exports.read = read;
diff --git a/website/node_modules/@nodelib/fs.stat/out/settings.d.ts b/website/node_modules/@nodelib/fs.stat/out/settings.d.ts
deleted file mode 100644
index f4b3d444..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/settings.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import * as fs from './adapters/fs';
-export interface Options {
- followSymbolicLink?: boolean;
- fs?: Partial;
- markSymbolicLink?: boolean;
- throwErrorOnBrokenSymbolicLink?: boolean;
-}
-export default class Settings {
- private readonly _options;
- readonly followSymbolicLink: boolean;
- readonly fs: fs.FileSystemAdapter;
- readonly markSymbolicLink: boolean;
- readonly throwErrorOnBrokenSymbolicLink: boolean;
- constructor(_options?: Options);
- private _getValue;
-}
diff --git a/website/node_modules/@nodelib/fs.stat/out/settings.js b/website/node_modules/@nodelib/fs.stat/out/settings.js
deleted file mode 100644
index 111ec09c..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/settings.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const fs = require("./adapters/fs");
-class Settings {
- constructor(_options = {}) {
- this._options = _options;
- this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);
- this.fs = fs.createFileSystemAdapter(this._options.fs);
- this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);
- this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
- }
- _getValue(option, value) {
- return option !== null && option !== void 0 ? option : value;
- }
-}
-exports.default = Settings;
diff --git a/website/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/website/node_modules/@nodelib/fs.stat/out/types/index.d.ts
deleted file mode 100644
index 74c08ed2..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/types/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-///
-import type * as fs from 'fs';
-export declare type Stats = fs.Stats;
-export declare type ErrnoException = NodeJS.ErrnoException;
diff --git a/website/node_modules/@nodelib/fs.stat/out/types/index.js b/website/node_modules/@nodelib/fs.stat/out/types/index.js
deleted file mode 100644
index c8ad2e54..00000000
--- a/website/node_modules/@nodelib/fs.stat/out/types/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/website/node_modules/@nodelib/fs.stat/package.json b/website/node_modules/@nodelib/fs.stat/package.json
deleted file mode 100644
index f2540c28..00000000
--- a/website/node_modules/@nodelib/fs.stat/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@nodelib/fs.stat",
- "version": "2.0.5",
- "description": "Get the status of a file with some features",
- "license": "MIT",
- "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat",
- "keywords": [
- "NodeLib",
- "fs",
- "FileSystem",
- "file system",
- "stat"
- ],
- "engines": {
- "node": ">= 8"
- },
- "files": [
- "out/**",
- "!out/**/*.map",
- "!out/**/*.spec.*"
- ],
- "main": "out/index.js",
- "typings": "out/index.d.ts",
- "scripts": {
- "clean": "rimraf {tsconfig.tsbuildinfo,out}",
- "lint": "eslint \"src/**/*.ts\" --cache",
- "compile": "tsc -b .",
- "compile:watch": "tsc -p . --watch --sourceMap",
- "test": "mocha \"out/**/*.spec.js\" -s 0",
- "build": "npm run clean && npm run compile && npm run lint && npm test",
- "watch": "npm run clean && npm run compile:watch"
- },
- "devDependencies": {
- "@nodelib/fs.macchiato": "1.0.4"
- },
- "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562"
-}
diff --git a/website/node_modules/@nodelib/fs.walk/LICENSE b/website/node_modules/@nodelib/fs.walk/LICENSE
deleted file mode 100644
index 65a99946..00000000
--- a/website/node_modules/@nodelib/fs.walk/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Denis Malinochkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@nodelib/fs.walk/README.md b/website/node_modules/@nodelib/fs.walk/README.md
deleted file mode 100644
index 6ccc08db..00000000
--- a/website/node_modules/@nodelib/fs.walk/README.md
+++ /dev/null
@@ -1,215 +0,0 @@
-# @nodelib/fs.walk
-
-> A library for efficiently walking a directory recursively.
-
-## :bulb: Highlights
-
-* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional).
-* :rocket: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type for performance reasons. See [`old` and `modern` mode](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode).
-* :gear: Built-in directories/files and error filtering system.
-* :link: Can safely work with broken symbolic links.
-
-## Install
-
-```console
-npm install @nodelib/fs.walk
-```
-
-## Usage
-
-```ts
-import * as fsWalk from '@nodelib/fs.walk';
-
-fsWalk.walk('path', (error, entries) => { /* … */ });
-```
-
-## API
-
-### .walk(path, [optionsOrSettings], callback)
-
-Reads the directory recursively and asynchronously. Requires a callback function.
-
-> :book: If you want to use the Promise API, use `util.promisify`.
-
-```ts
-fsWalk.walk('path', (error, entries) => { /* … */ });
-fsWalk.walk('path', {}, (error, entries) => { /* … */ });
-fsWalk.walk('path', new fsWalk.Settings(), (error, entries) => { /* … */ });
-```
-
-### .walkStream(path, [optionsOrSettings])
-
-Reads the directory recursively and asynchronously. [Readable Stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_streams) is used as a provider.
-
-```ts
-const stream = fsWalk.walkStream('path');
-const stream = fsWalk.walkStream('path', {});
-const stream = fsWalk.walkStream('path', new fsWalk.Settings());
-```
-
-### .walkSync(path, [optionsOrSettings])
-
-Reads the directory recursively and synchronously. Returns an array of entries.
-
-```ts
-const entries = fsWalk.walkSync('path');
-const entries = fsWalk.walkSync('path', {});
-const entries = fsWalk.walkSync('path', new fsWalk.Settings());
-```
-
-#### path
-
-* Required: `true`
-* Type: `string | Buffer | URL`
-
-A path to a file. If a URL is provided, it must use the `file:` protocol.
-
-#### optionsOrSettings
-
-* Required: `false`
-* Type: `Options | Settings`
-* Default: An instance of `Settings` class
-
-An [`Options`](#options) object or an instance of [`Settings`](#settings) class.
-
-> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
-
-### Settings([options])
-
-A class of full settings of the package.
-
-```ts
-const settings = new fsWalk.Settings({ followSymbolicLinks: true });
-
-const entries = fsWalk.walkSync('path', settings);
-```
-
-## Entry
-
-* `name` — The name of the entry (`unknown.txt`).
-* `path` — The path of the entry relative to call directory (`root/unknown.txt`).
-* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class.
-* [`stats`] — An instance of `fs.Stats` class.
-
-## Options
-
-### basePath
-
-* Type: `string`
-* Default: `undefined`
-
-By default, all paths are built relative to the root path. You can use this option to set custom root path.
-
-In the example below we read the files from the `root` directory, but in the results the root path will be `custom`.
-
-```ts
-fsWalk.walkSync('root'); // → ['root/file.txt']
-fsWalk.walkSync('root', { basePath: 'custom' }); // → ['custom/file.txt']
-```
-
-### concurrency
-
-* Type: `number`
-* Default: `Infinity`
-
-The maximum number of concurrent calls to `fs.readdir`.
-
-> :book: The higher the number, the higher performance and the load on the File System. If you want to read in quiet mode, set the value to `4 * os.cpus().length` (4 is default size of [thread pool work scheduling](http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling)).
-
-### deepFilter
-
-* Type: [`DeepFilterFunction`](./src/settings.ts)
-* Default: `undefined`
-
-A function that indicates whether the directory will be read deep or not.
-
-```ts
-// Skip all directories that starts with `node_modules`
-const filter: DeepFilterFunction = (entry) => !entry.path.startsWith('node_modules');
-```
-
-### entryFilter
-
-* Type: [`EntryFilterFunction`](./src/settings.ts)
-* Default: `undefined`
-
-A function that indicates whether the entry will be included to results or not.
-
-```ts
-// Exclude all `.js` files from results
-const filter: EntryFilterFunction = (entry) => !entry.name.endsWith('.js');
-```
-
-### errorFilter
-
-* Type: [`ErrorFilterFunction`](./src/settings.ts)
-* Default: `undefined`
-
-A function that allows you to skip errors that occur when reading directories.
-
-For example, you can skip `ENOENT` errors if required:
-
-```ts
-// Skip all ENOENT errors
-const filter: ErrorFilterFunction = (error) => error.code == 'ENOENT';
-```
-
-### stats
-
-* Type: `boolean`
-* Default: `false`
-
-Adds an instance of `fs.Stats` class to the [`Entry`](#entry).
-
-> :book: Always use `fs.readdir` with additional `fs.lstat/fs.stat` calls to determine the entry type.
-
-### followSymbolicLinks
-
-* Type: `boolean`
-* Default: `false`
-
-Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`.
-
-### `throwErrorOnBrokenSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`.
-
-### `pathSegmentSeparator`
-
-* Type: `string`
-* Default: `path.sep`
-
-By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead.
-
-### `fs`
-
-* Type: `FileSystemAdapter`
-* Default: A default FS methods
-
-By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
-
-```ts
-interface FileSystemAdapter {
- lstat: typeof fs.lstat;
- stat: typeof fs.stat;
- lstatSync: typeof fs.lstatSync;
- statSync: typeof fs.statSync;
- readdir: typeof fs.readdir;
- readdirSync: typeof fs.readdirSync;
-}
-
-const settings = new fsWalk.Settings({
- fs: { lstat: fakeLstat }
-});
-```
-
-## Changelog
-
-See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
-
-## License
-
-This software is released under the terms of the MIT license.
diff --git a/website/node_modules/@nodelib/fs.walk/out/index.d.ts b/website/node_modules/@nodelib/fs.walk/out/index.d.ts
deleted file mode 100644
index 8864c7bf..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/index.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-///
-import type { Readable } from 'stream';
-import type { Dirent, FileSystemAdapter } from '@nodelib/fs.scandir';
-import { AsyncCallback } from './providers/async';
-import Settings, { DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction, Options } from './settings';
-import type { Entry } from './types';
-declare function walk(directory: string, callback: AsyncCallback): void;
-declare function walk(directory: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
-declare namespace walk {
- function __promisify__(directory: string, optionsOrSettings?: Options | Settings): Promise;
-}
-declare function walkSync(directory: string, optionsOrSettings?: Options | Settings): Entry[];
-declare function walkStream(directory: string, optionsOrSettings?: Options | Settings): Readable;
-export { walk, walkSync, walkStream, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, Options, DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction };
diff --git a/website/node_modules/@nodelib/fs.walk/out/index.js b/website/node_modules/@nodelib/fs.walk/out/index.js
deleted file mode 100644
index 15207874..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/index.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;
-const async_1 = require("./providers/async");
-const stream_1 = require("./providers/stream");
-const sync_1 = require("./providers/sync");
-const settings_1 = require("./settings");
-exports.Settings = settings_1.default;
-function walk(directory, optionsOrSettingsOrCallback, callback) {
- if (typeof optionsOrSettingsOrCallback === 'function') {
- new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);
- return;
- }
- new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);
-}
-exports.walk = walk;
-function walkSync(directory, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- const provider = new sync_1.default(directory, settings);
- return provider.read();
-}
-exports.walkSync = walkSync;
-function walkStream(directory, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- const provider = new stream_1.default(directory, settings);
- return provider.read();
-}
-exports.walkStream = walkStream;
-function getSettings(settingsOrOptions = {}) {
- if (settingsOrOptions instanceof settings_1.default) {
- return settingsOrOptions;
- }
- return new settings_1.default(settingsOrOptions);
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/async.d.ts b/website/node_modules/@nodelib/fs.walk/out/providers/async.d.ts
deleted file mode 100644
index 0f6717d7..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/async.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import AsyncReader from '../readers/async';
-import type Settings from '../settings';
-import type { Entry, Errno } from '../types';
-export declare type AsyncCallback = (error: Errno, entries: Entry[]) => void;
-export default class AsyncProvider {
- private readonly _root;
- private readonly _settings;
- protected readonly _reader: AsyncReader;
- private readonly _storage;
- constructor(_root: string, _settings: Settings);
- read(callback: AsyncCallback): void;
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/async.js b/website/node_modules/@nodelib/fs.walk/out/providers/async.js
deleted file mode 100644
index 51d3be51..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/async.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const async_1 = require("../readers/async");
-class AsyncProvider {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._reader = new async_1.default(this._root, this._settings);
- this._storage = [];
- }
- read(callback) {
- this._reader.onError((error) => {
- callFailureCallback(callback, error);
- });
- this._reader.onEntry((entry) => {
- this._storage.push(entry);
- });
- this._reader.onEnd(() => {
- callSuccessCallback(callback, this._storage);
- });
- this._reader.read();
- }
-}
-exports.default = AsyncProvider;
-function callFailureCallback(callback, error) {
- callback(error);
-}
-function callSuccessCallback(callback, entries) {
- callback(null, entries);
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/index.d.ts b/website/node_modules/@nodelib/fs.walk/out/providers/index.d.ts
deleted file mode 100644
index 874f60c5..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import AsyncProvider from './async';
-import StreamProvider from './stream';
-import SyncProvider from './sync';
-export { AsyncProvider, StreamProvider, SyncProvider };
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/index.js b/website/node_modules/@nodelib/fs.walk/out/providers/index.js
deleted file mode 100644
index 4c2529ce..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0;
-const async_1 = require("./async");
-exports.AsyncProvider = async_1.default;
-const stream_1 = require("./stream");
-exports.StreamProvider = stream_1.default;
-const sync_1 = require("./sync");
-exports.SyncProvider = sync_1.default;
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts b/website/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts
deleted file mode 100644
index 294185f8..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-///
-import { Readable } from 'stream';
-import AsyncReader from '../readers/async';
-import type Settings from '../settings';
-export default class StreamProvider {
- private readonly _root;
- private readonly _settings;
- protected readonly _reader: AsyncReader;
- protected readonly _stream: Readable;
- constructor(_root: string, _settings: Settings);
- read(): Readable;
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/stream.js b/website/node_modules/@nodelib/fs.walk/out/providers/stream.js
deleted file mode 100644
index 51298b0f..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/stream.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const stream_1 = require("stream");
-const async_1 = require("../readers/async");
-class StreamProvider {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._reader = new async_1.default(this._root, this._settings);
- this._stream = new stream_1.Readable({
- objectMode: true,
- read: () => { },
- destroy: () => {
- if (!this._reader.isDestroyed) {
- this._reader.destroy();
- }
- }
- });
- }
- read() {
- this._reader.onError((error) => {
- this._stream.emit('error', error);
- });
- this._reader.onEntry((entry) => {
- this._stream.push(entry);
- });
- this._reader.onEnd(() => {
- this._stream.push(null);
- });
- this._reader.read();
- return this._stream;
- }
-}
-exports.default = StreamProvider;
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts b/website/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts
deleted file mode 100644
index 551c42e4..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import SyncReader from '../readers/sync';
-import type Settings from '../settings';
-import type { Entry } from '../types';
-export default class SyncProvider {
- private readonly _root;
- private readonly _settings;
- protected readonly _reader: SyncReader;
- constructor(_root: string, _settings: Settings);
- read(): Entry[];
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/providers/sync.js b/website/node_modules/@nodelib/fs.walk/out/providers/sync.js
deleted file mode 100644
index faab6ca2..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/providers/sync.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const sync_1 = require("../readers/sync");
-class SyncProvider {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._reader = new sync_1.default(this._root, this._settings);
- }
- read() {
- return this._reader.read();
- }
-}
-exports.default = SyncProvider;
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/async.d.ts b/website/node_modules/@nodelib/fs.walk/out/readers/async.d.ts
deleted file mode 100644
index 9acf4e6c..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/async.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-///
-import { EventEmitter } from 'events';
-import * as fsScandir from '@nodelib/fs.scandir';
-import type Settings from '../settings';
-import type { Entry, Errno } from '../types';
-import Reader from './reader';
-declare type EntryEventCallback = (entry: Entry) => void;
-declare type ErrorEventCallback = (error: Errno) => void;
-declare type EndEventCallback = () => void;
-export default class AsyncReader extends Reader {
- protected readonly _settings: Settings;
- protected readonly _scandir: typeof fsScandir.scandir;
- protected readonly _emitter: EventEmitter;
- private readonly _queue;
- private _isFatalError;
- private _isDestroyed;
- constructor(_root: string, _settings: Settings);
- read(): EventEmitter;
- get isDestroyed(): boolean;
- destroy(): void;
- onEntry(callback: EntryEventCallback): void;
- onError(callback: ErrorEventCallback): void;
- onEnd(callback: EndEventCallback): void;
- private _pushToQueue;
- private _worker;
- private _handleError;
- private _handleEntry;
- private _emitEntry;
-}
-export {};
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/async.js b/website/node_modules/@nodelib/fs.walk/out/readers/async.js
deleted file mode 100644
index ebe8dd57..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/async.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const events_1 = require("events");
-const fsScandir = require("@nodelib/fs.scandir");
-const fastq = require("fastq");
-const common = require("./common");
-const reader_1 = require("./reader");
-class AsyncReader extends reader_1.default {
- constructor(_root, _settings) {
- super(_root, _settings);
- this._settings = _settings;
- this._scandir = fsScandir.scandir;
- this._emitter = new events_1.EventEmitter();
- this._queue = fastq(this._worker.bind(this), this._settings.concurrency);
- this._isFatalError = false;
- this._isDestroyed = false;
- this._queue.drain = () => {
- if (!this._isFatalError) {
- this._emitter.emit('end');
- }
- };
- }
- read() {
- this._isFatalError = false;
- this._isDestroyed = false;
- setImmediate(() => {
- this._pushToQueue(this._root, this._settings.basePath);
- });
- return this._emitter;
- }
- get isDestroyed() {
- return this._isDestroyed;
- }
- destroy() {
- if (this._isDestroyed) {
- throw new Error('The reader is already destroyed');
- }
- this._isDestroyed = true;
- this._queue.killAndDrain();
- }
- onEntry(callback) {
- this._emitter.on('entry', callback);
- }
- onError(callback) {
- this._emitter.once('error', callback);
- }
- onEnd(callback) {
- this._emitter.once('end', callback);
- }
- _pushToQueue(directory, base) {
- const queueItem = { directory, base };
- this._queue.push(queueItem, (error) => {
- if (error !== null) {
- this._handleError(error);
- }
- });
- }
- _worker(item, done) {
- this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {
- if (error !== null) {
- done(error, undefined);
- return;
- }
- for (const entry of entries) {
- this._handleEntry(entry, item.base);
- }
- done(null, undefined);
- });
- }
- _handleError(error) {
- if (this._isDestroyed || !common.isFatalError(this._settings, error)) {
- return;
- }
- this._isFatalError = true;
- this._isDestroyed = true;
- this._emitter.emit('error', error);
- }
- _handleEntry(entry, base) {
- if (this._isDestroyed || this._isFatalError) {
- return;
- }
- const fullpath = entry.path;
- if (base !== undefined) {
- entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
- }
- if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
- this._emitEntry(entry);
- }
- if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
- this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
- }
- }
- _emitEntry(entry) {
- this._emitter.emit('entry', entry);
- }
-}
-exports.default = AsyncReader;
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/common.d.ts b/website/node_modules/@nodelib/fs.walk/out/readers/common.d.ts
deleted file mode 100644
index 5985f97c..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/common.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { FilterFunction } from '../settings';
-import type Settings from '../settings';
-import type { Errno } from '../types';
-export declare function isFatalError(settings: Settings, error: Errno): boolean;
-export declare function isAppliedFilter(filter: FilterFunction | null, value: T): boolean;
-export declare function replacePathSegmentSeparator(filepath: string, separator: string): string;
-export declare function joinPathSegments(a: string, b: string, separator: string): string;
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/common.js b/website/node_modules/@nodelib/fs.walk/out/readers/common.js
deleted file mode 100644
index a93572f4..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/common.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;
-function isFatalError(settings, error) {
- if (settings.errorFilter === null) {
- return true;
- }
- return !settings.errorFilter(error);
-}
-exports.isFatalError = isFatalError;
-function isAppliedFilter(filter, value) {
- return filter === null || filter(value);
-}
-exports.isAppliedFilter = isAppliedFilter;
-function replacePathSegmentSeparator(filepath, separator) {
- return filepath.split(/[/\\]/).join(separator);
-}
-exports.replacePathSegmentSeparator = replacePathSegmentSeparator;
-function joinPathSegments(a, b, separator) {
- if (a === '') {
- return b;
- }
- /**
- * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
- */
- if (a.endsWith(separator)) {
- return a + b;
- }
- return a + separator + b;
-}
-exports.joinPathSegments = joinPathSegments;
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts b/website/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts
deleted file mode 100644
index e1f383b2..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import type Settings from '../settings';
-export default class Reader {
- protected readonly _root: string;
- protected readonly _settings: Settings;
- constructor(_root: string, _settings: Settings);
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/reader.js b/website/node_modules/@nodelib/fs.walk/out/readers/reader.js
deleted file mode 100644
index 782f07cb..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/reader.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const common = require("./common");
-class Reader {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);
- }
-}
-exports.default = Reader;
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts b/website/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts
deleted file mode 100644
index af410335..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import * as fsScandir from '@nodelib/fs.scandir';
-import type { Entry } from '../types';
-import Reader from './reader';
-export default class SyncReader extends Reader {
- protected readonly _scandir: typeof fsScandir.scandirSync;
- private readonly _storage;
- private readonly _queue;
- read(): Entry[];
- private _pushToQueue;
- private _handleQueue;
- private _handleDirectory;
- private _handleError;
- private _handleEntry;
- private _pushToStorage;
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/readers/sync.js b/website/node_modules/@nodelib/fs.walk/out/readers/sync.js
deleted file mode 100644
index 9a8d5a6f..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/readers/sync.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const fsScandir = require("@nodelib/fs.scandir");
-const common = require("./common");
-const reader_1 = require("./reader");
-class SyncReader extends reader_1.default {
- constructor() {
- super(...arguments);
- this._scandir = fsScandir.scandirSync;
- this._storage = [];
- this._queue = new Set();
- }
- read() {
- this._pushToQueue(this._root, this._settings.basePath);
- this._handleQueue();
- return this._storage;
- }
- _pushToQueue(directory, base) {
- this._queue.add({ directory, base });
- }
- _handleQueue() {
- for (const item of this._queue.values()) {
- this._handleDirectory(item.directory, item.base);
- }
- }
- _handleDirectory(directory, base) {
- try {
- const entries = this._scandir(directory, this._settings.fsScandirSettings);
- for (const entry of entries) {
- this._handleEntry(entry, base);
- }
- }
- catch (error) {
- this._handleError(error);
- }
- }
- _handleError(error) {
- if (!common.isFatalError(this._settings, error)) {
- return;
- }
- throw error;
- }
- _handleEntry(entry, base) {
- const fullpath = entry.path;
- if (base !== undefined) {
- entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
- }
- if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
- this._pushToStorage(entry);
- }
- if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
- this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
- }
- }
- _pushToStorage(entry) {
- this._storage.push(entry);
- }
-}
-exports.default = SyncReader;
diff --git a/website/node_modules/@nodelib/fs.walk/out/settings.d.ts b/website/node_modules/@nodelib/fs.walk/out/settings.d.ts
deleted file mode 100644
index d1c4b45f..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/settings.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as fsScandir from '@nodelib/fs.scandir';
-import type { Entry, Errno } from './types';
-export declare type FilterFunction = (value: T) => boolean;
-export declare type DeepFilterFunction = FilterFunction;
-export declare type EntryFilterFunction = FilterFunction;
-export declare type ErrorFilterFunction = FilterFunction;
-export interface Options {
- basePath?: string;
- concurrency?: number;
- deepFilter?: DeepFilterFunction;
- entryFilter?: EntryFilterFunction;
- errorFilter?: ErrorFilterFunction;
- followSymbolicLinks?: boolean;
- fs?: Partial;
- pathSegmentSeparator?: string;
- stats?: boolean;
- throwErrorOnBrokenSymbolicLink?: boolean;
-}
-export default class Settings {
- private readonly _options;
- readonly basePath?: string;
- readonly concurrency: number;
- readonly deepFilter: DeepFilterFunction | null;
- readonly entryFilter: EntryFilterFunction | null;
- readonly errorFilter: ErrorFilterFunction | null;
- readonly pathSegmentSeparator: string;
- readonly fsScandirSettings: fsScandir.Settings;
- constructor(_options?: Options);
- private _getValue;
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/settings.js b/website/node_modules/@nodelib/fs.walk/out/settings.js
deleted file mode 100644
index d7a85c81..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/settings.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const path = require("path");
-const fsScandir = require("@nodelib/fs.scandir");
-class Settings {
- constructor(_options = {}) {
- this._options = _options;
- this.basePath = this._getValue(this._options.basePath, undefined);
- this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);
- this.deepFilter = this._getValue(this._options.deepFilter, null);
- this.entryFilter = this._getValue(this._options.entryFilter, null);
- this.errorFilter = this._getValue(this._options.errorFilter, null);
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
- this.fsScandirSettings = new fsScandir.Settings({
- followSymbolicLinks: this._options.followSymbolicLinks,
- fs: this._options.fs,
- pathSegmentSeparator: this._options.pathSegmentSeparator,
- stats: this._options.stats,
- throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink
- });
- }
- _getValue(option, value) {
- return option !== null && option !== void 0 ? option : value;
- }
-}
-exports.default = Settings;
diff --git a/website/node_modules/@nodelib/fs.walk/out/types/index.d.ts b/website/node_modules/@nodelib/fs.walk/out/types/index.d.ts
deleted file mode 100644
index 6ee9bd3f..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/types/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-///
-import type * as scandir from '@nodelib/fs.scandir';
-export declare type Entry = scandir.Entry;
-export declare type Errno = NodeJS.ErrnoException;
-export interface QueueItem {
- directory: string;
- base?: string;
-}
diff --git a/website/node_modules/@nodelib/fs.walk/out/types/index.js b/website/node_modules/@nodelib/fs.walk/out/types/index.js
deleted file mode 100644
index c8ad2e54..00000000
--- a/website/node_modules/@nodelib/fs.walk/out/types/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/website/node_modules/@nodelib/fs.walk/package.json b/website/node_modules/@nodelib/fs.walk/package.json
deleted file mode 100644
index 86bfce48..00000000
--- a/website/node_modules/@nodelib/fs.walk/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "@nodelib/fs.walk",
- "version": "1.2.8",
- "description": "A library for efficiently walking a directory recursively",
- "license": "MIT",
- "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk",
- "keywords": [
- "NodeLib",
- "fs",
- "FileSystem",
- "file system",
- "walk",
- "scanner",
- "crawler"
- ],
- "engines": {
- "node": ">= 8"
- },
- "files": [
- "out/**",
- "!out/**/*.map",
- "!out/**/*.spec.*",
- "!out/**/tests/**"
- ],
- "main": "out/index.js",
- "typings": "out/index.d.ts",
- "scripts": {
- "clean": "rimraf {tsconfig.tsbuildinfo,out}",
- "lint": "eslint \"src/**/*.ts\" --cache",
- "compile": "tsc -b .",
- "compile:watch": "tsc -p . --watch --sourceMap",
- "test": "mocha \"out/**/*.spec.js\" -s 0",
- "build": "npm run clean && npm run compile && npm run lint && npm test",
- "watch": "npm run clean && npm run compile:watch"
- },
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "devDependencies": {
- "@nodelib/fs.macchiato": "1.0.4"
- },
- "gitHead": "1e5bad48565da2b06b8600e744324ea240bf49d8"
-}
diff --git a/website/node_modules/@pkgjs/parseargs/.editorconfig b/website/node_modules/@pkgjs/parseargs/.editorconfig
deleted file mode 100644
index b1401639..00000000
--- a/website/node_modules/@pkgjs/parseargs/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-# Copied from Node.js to ease compatibility in PR.
-[*]
-charset = utf-8
-end_of_line = lf
-indent_size = 2
-indent_style = space
-insert_final_newline = true
-trim_trailing_whitespace = true
-quote_type = single
diff --git a/website/node_modules/@pkgjs/parseargs/CHANGELOG.md b/website/node_modules/@pkgjs/parseargs/CHANGELOG.md
deleted file mode 100644
index 2adc7d32..00000000
--- a/website/node_modules/@pkgjs/parseargs/CHANGELOG.md
+++ /dev/null
@@ -1,147 +0,0 @@
-# Changelog
-
-## [0.11.0](https://github.com/pkgjs/parseargs/compare/v0.10.0...v0.11.0) (2022-10-08)
-
-
-### Features
-
-* add `default` option parameter ([#142](https://github.com/pkgjs/parseargs/issues/142)) ([cd20847](https://github.com/pkgjs/parseargs/commit/cd20847a00b2f556aa9c085ac83b942c60868ec1))
-
-## [0.10.0](https://github.com/pkgjs/parseargs/compare/v0.9.1...v0.10.0) (2022-07-21)
-
-
-### Features
-
-* add parsed meta-data to returned properties ([#129](https://github.com/pkgjs/parseargs/issues/129)) ([91bfb4d](https://github.com/pkgjs/parseargs/commit/91bfb4d3f7b6937efab1b27c91c45d1205f1497e))
-
-## [0.9.1](https://github.com/pkgjs/parseargs/compare/v0.9.0...v0.9.1) (2022-06-20)
-
-
-### Bug Fixes
-
-* **runtime:** support node 14+ ([#135](https://github.com/pkgjs/parseargs/issues/135)) ([6a1c5a6](https://github.com/pkgjs/parseargs/commit/6a1c5a6f7cadf2f035e004027e2742e3c4ce554b))
-
-## [0.9.0](https://github.com/pkgjs/parseargs/compare/v0.8.0...v0.9.0) (2022-05-23)
-
-
-### ⚠ BREAKING CHANGES
-
-* drop handling of electron arguments (#121)
-
-### Code Refactoring
-
-* drop handling of electron arguments ([#121](https://github.com/pkgjs/parseargs/issues/121)) ([a2ffd53](https://github.com/pkgjs/parseargs/commit/a2ffd537c244a062371522b955acb45a404fc9f2))
-
-## [0.8.0](https://github.com/pkgjs/parseargs/compare/v0.7.1...v0.8.0) (2022-05-16)
-
-
-### ⚠ BREAKING CHANGES
-
-* switch type:string option arguments to greedy, but with error for suspect cases in strict mode (#88)
-* positionals now opt-in when strict:true (#116)
-* create result.values with null prototype (#111)
-
-### Features
-
-* create result.values with null prototype ([#111](https://github.com/pkgjs/parseargs/issues/111)) ([9d539c3](https://github.com/pkgjs/parseargs/commit/9d539c3d57f269c160e74e0656ad4fa84ff92ec2))
-* positionals now opt-in when strict:true ([#116](https://github.com/pkgjs/parseargs/issues/116)) ([3643338](https://github.com/pkgjs/parseargs/commit/364333826b746e8a7dc5505b4b22fd19ac51df3b))
-* switch type:string option arguments to greedy, but with error for suspect cases in strict mode ([#88](https://github.com/pkgjs/parseargs/issues/88)) ([c2b5e72](https://github.com/pkgjs/parseargs/commit/c2b5e72161991dfdc535909f1327cc9b970fe7e8))
-
-### [0.7.1](https://github.com/pkgjs/parseargs/compare/v0.7.0...v0.7.1) (2022-04-15)
-
-
-### Bug Fixes
-
-* resist pollution ([#106](https://github.com/pkgjs/parseargs/issues/106)) ([ecf2dec](https://github.com/pkgjs/parseargs/commit/ecf2dece0a9f2a76d789384d5d71c68ffe64022a))
-
-## [0.7.0](https://github.com/pkgjs/parseargs/compare/v0.6.0...v0.7.0) (2022-04-13)
-
-
-### Features
-
-* Add strict mode to parser ([#74](https://github.com/pkgjs/parseargs/issues/74)) ([8267d02](https://github.com/pkgjs/parseargs/commit/8267d02083a87b8b8a71fcce08348d1e031ea91c))
-
-## [0.6.0](https://github.com/pkgjs/parseargs/compare/v0.5.0...v0.6.0) (2022-04-11)
-
-
-### ⚠ BREAKING CHANGES
-
-* rework results to remove redundant `flags` property and store value true for boolean options (#83)
-* switch to existing ERR_INVALID_ARG_VALUE (#97)
-
-### Code Refactoring
-
-* rework results to remove redundant `flags` property and store value true for boolean options ([#83](https://github.com/pkgjs/parseargs/issues/83)) ([be153db](https://github.com/pkgjs/parseargs/commit/be153dbed1d488cb7b6e27df92f601ba7337713d))
-* switch to existing ERR_INVALID_ARG_VALUE ([#97](https://github.com/pkgjs/parseargs/issues/97)) ([084a23f](https://github.com/pkgjs/parseargs/commit/084a23f9fde2da030b159edb1c2385f24579ce40))
-
-## [0.5.0](https://github.com/pkgjs/parseargs/compare/v0.4.0...v0.5.0) (2022-04-10)
-
-
-### ⚠ BREAKING CHANGES
-
-* Require type to be specified for each supplied option (#95)
-
-### Features
-
-* Require type to be specified for each supplied option ([#95](https://github.com/pkgjs/parseargs/issues/95)) ([02cd018](https://github.com/pkgjs/parseargs/commit/02cd01885b8aaa59f2db8308f2d4479e64340068))
-
-## [0.4.0](https://github.com/pkgjs/parseargs/compare/v0.3.0...v0.4.0) (2022-03-12)
-
-
-### ⚠ BREAKING CHANGES
-
-* parsing, revisit short option groups, add support for combined short and value (#75)
-* restructure configuration to take options bag (#63)
-
-### Code Refactoring
-
-* parsing, revisit short option groups, add support for combined short and value ([#75](https://github.com/pkgjs/parseargs/issues/75)) ([a92600f](https://github.com/pkgjs/parseargs/commit/a92600fa6c214508ab1e016fa55879a314f541af))
-* restructure configuration to take options bag ([#63](https://github.com/pkgjs/parseargs/issues/63)) ([b412095](https://github.com/pkgjs/parseargs/commit/b4120957d90e809ee8b607b06e747d3e6a6b213e))
-
-## [0.3.0](https://github.com/pkgjs/parseargs/compare/v0.2.0...v0.3.0) (2022-02-06)
-
-
-### Features
-
-* **parser:** support short-option groups ([#59](https://github.com/pkgjs/parseargs/issues/59)) ([882067b](https://github.com/pkgjs/parseargs/commit/882067bc2d7cbc6b796f8e5a079a99bc99d4e6ba))
-
-## [0.2.0](https://github.com/pkgjs/parseargs/compare/v0.1.1...v0.2.0) (2022-02-05)
-
-
-### Features
-
-* basic support for shorts ([#50](https://github.com/pkgjs/parseargs/issues/50)) ([a2f36d7](https://github.com/pkgjs/parseargs/commit/a2f36d7da4145af1c92f76806b7fe2baf6beeceb))
-
-
-### Bug Fixes
-
-* always store value for a=b ([#43](https://github.com/pkgjs/parseargs/issues/43)) ([a85e8dc](https://github.com/pkgjs/parseargs/commit/a85e8dc06379fd2696ee195cc625de8fac6aee42))
-* support single dash as positional ([#49](https://github.com/pkgjs/parseargs/issues/49)) ([d795bf8](https://github.com/pkgjs/parseargs/commit/d795bf877d068fd67aec381f30b30b63f97109ad))
-
-### [0.1.1](https://github.com/pkgjs/parseargs/compare/v0.1.0...v0.1.1) (2022-01-25)
-
-
-### Bug Fixes
-
-* only use arrays in results for multiples ([#42](https://github.com/pkgjs/parseargs/issues/42)) ([c357584](https://github.com/pkgjs/parseargs/commit/c357584847912506319ed34a0840080116f4fd65))
-
-## 0.1.0 (2022-01-22)
-
-
-### Features
-
-* expand scenarios covered by default arguments for environments ([#20](https://github.com/pkgjs/parseargs/issues/20)) ([582ada7](https://github.com/pkgjs/parseargs/commit/582ada7be0eca3a73d6e0bd016e7ace43449fa4c))
-* update readme and include contributing guidelines ([8edd6fc](https://github.com/pkgjs/parseargs/commit/8edd6fc863cd705f6fac732724159ebe8065a2b0))
-
-
-### Bug Fixes
-
-* do not strip excess leading dashes on long option names ([#21](https://github.com/pkgjs/parseargs/issues/21)) ([f848590](https://github.com/pkgjs/parseargs/commit/f848590ebf3249ed5979ff47e003fa6e1a8ec5c0))
-* name & readme ([3f057c1](https://github.com/pkgjs/parseargs/commit/3f057c1b158a1bdbe878c64b57460c58e56e465f))
-* package.json values ([9bac300](https://github.com/pkgjs/parseargs/commit/9bac300e00cd76c77076bf9e75e44f8929512da9))
-* update readme name ([957d8d9](https://github.com/pkgjs/parseargs/commit/957d8d96e1dcb48297c0a14345d44c0123b2883e))
-
-
-### Build System
-
-* first release as minor ([421c6e2](https://github.com/pkgjs/parseargs/commit/421c6e2569a8668ad14fac5a5af5be60479a7571))
diff --git a/website/node_modules/@pkgjs/parseargs/LICENSE b/website/node_modules/@pkgjs/parseargs/LICENSE
deleted file mode 100644
index 261eeb9e..00000000
--- a/website/node_modules/@pkgjs/parseargs/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/website/node_modules/@pkgjs/parseargs/README.md b/website/node_modules/@pkgjs/parseargs/README.md
deleted file mode 100644
index 0a041927..00000000
--- a/website/node_modules/@pkgjs/parseargs/README.md
+++ /dev/null
@@ -1,413 +0,0 @@
-
-# parseArgs
-
-[![Coverage][coverage-image]][coverage-url]
-
-Polyfill of `util.parseArgs()`
-
-## `util.parseArgs([config])`
-
-
-
-> Stability: 1 - Experimental
-
-* `config` {Object} Used to provide arguments for parsing and to configure
- the parser. `config` supports the following properties:
- * `args` {string\[]} array of argument strings. **Default:** `process.argv`
- with `execPath` and `filename` removed.
- * `options` {Object} Used to describe arguments known to the parser.
- Keys of `options` are the long names of options and values are an
- {Object} accepting the following properties:
- * `type` {string} Type of argument, which must be either `boolean` or `string`.
- * `multiple` {boolean} Whether this option can be provided multiple
- times. If `true`, all values will be collected in an array. If
- `false`, values for the option are last-wins. **Default:** `false`.
- * `short` {string} A single character alias for the option.
- * `default` {string | boolean | string\[] | boolean\[]} The default option
- value when it is not set by args. It must be of the same type as the
- the `type` property. When `multiple` is `true`, it must be an array.
- * `strict` {boolean} Should an error be thrown when unknown arguments
- are encountered, or when arguments are passed that do not match the
- `type` configured in `options`.
- **Default:** `true`.
- * `allowPositionals` {boolean} Whether this command accepts positional
- arguments.
- **Default:** `false` if `strict` is `true`, otherwise `true`.
- * `tokens` {boolean} Return the parsed tokens. This is useful for extending
- the built-in behavior, from adding additional checks through to reprocessing
- the tokens in different ways.
- **Default:** `false`.
-
-* Returns: {Object} The parsed command line arguments:
- * `values` {Object} A mapping of parsed option names with their {string}
- or {boolean} values.
- * `positionals` {string\[]} Positional arguments.
- * `tokens` {Object\[] | undefined} See [parseArgs tokens](#parseargs-tokens)
- section. Only returned if `config` includes `tokens: true`.
-
-Provides a higher level API for command-line argument parsing than interacting
-with `process.argv` directly. Takes a specification for the expected arguments
-and returns a structured object with the parsed options and positionals.
-
-```mjs
-import { parseArgs } from 'node:util';
-const args = ['-f', '--bar', 'b'];
-const options = {
- foo: {
- type: 'boolean',
- short: 'f'
- },
- bar: {
- type: 'string'
- }
-};
-const {
- values,
- positionals
-} = parseArgs({ args, options });
-console.log(values, positionals);
-// Prints: [Object: null prototype] { foo: true, bar: 'b' } []
-```
-
-```cjs
-const { parseArgs } = require('node:util');
-const args = ['-f', '--bar', 'b'];
-const options = {
- foo: {
- type: 'boolean',
- short: 'f'
- },
- bar: {
- type: 'string'
- }
-};
-const {
- values,
- positionals
-} = parseArgs({ args, options });
-console.log(values, positionals);
-// Prints: [Object: null prototype] { foo: true, bar: 'b' } []
-```
-
-`util.parseArgs` is experimental and behavior may change. Join the
-conversation in [pkgjs/parseargs][] to contribute to the design.
-
-### `parseArgs` `tokens`
-
-Detailed parse information is available for adding custom behaviours by
-specifying `tokens: true` in the configuration.
-The returned tokens have properties describing:
-
-* all tokens
- * `kind` {string} One of 'option', 'positional', or 'option-terminator'.
- * `index` {number} Index of element in `args` containing token. So the
- source argument for a token is `args[token.index]`.
-* option tokens
- * `name` {string} Long name of option.
- * `rawName` {string} How option used in args, like `-f` of `--foo`.
- * `value` {string | undefined} Option value specified in args.
- Undefined for boolean options.
- * `inlineValue` {boolean | undefined} Whether option value specified inline,
- like `--foo=bar`.
-* positional tokens
- * `value` {string} The value of the positional argument in args (i.e. `args[index]`).
-* option-terminator token
-
-The returned tokens are in the order encountered in the input args. Options
-that appear more than once in args produce a token for each use. Short option
-groups like `-xy` expand to a token for each option. So `-xxx` produces
-three tokens.
-
-For example to use the returned tokens to add support for a negated option
-like `--no-color`, the tokens can be reprocessed to change the value stored
-for the negated option.
-
-```mjs
-import { parseArgs } from 'node:util';
-
-const options = {
- 'color': { type: 'boolean' },
- 'no-color': { type: 'boolean' },
- 'logfile': { type: 'string' },
- 'no-logfile': { type: 'boolean' },
-};
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-// Reprocess the option tokens and overwrite the returned values.
-tokens
- .filter((token) => token.kind === 'option')
- .forEach((token) => {
- if (token.name.startsWith('no-')) {
- // Store foo:false for --no-foo
- const positiveName = token.name.slice(3);
- values[positiveName] = false;
- delete values[token.name];
- } else {
- // Resave value so last one wins if both --foo and --no-foo.
- values[token.name] = token.value ?? true;
- }
- });
-
-const color = values.color;
-const logfile = values.logfile ?? 'default.log';
-
-console.log({ logfile, color });
-```
-
-```cjs
-const { parseArgs } = require('node:util');
-
-const options = {
- 'color': { type: 'boolean' },
- 'no-color': { type: 'boolean' },
- 'logfile': { type: 'string' },
- 'no-logfile': { type: 'boolean' },
-};
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-// Reprocess the option tokens and overwrite the returned values.
-tokens
- .filter((token) => token.kind === 'option')
- .forEach((token) => {
- if (token.name.startsWith('no-')) {
- // Store foo:false for --no-foo
- const positiveName = token.name.slice(3);
- values[positiveName] = false;
- delete values[token.name];
- } else {
- // Resave value so last one wins if both --foo and --no-foo.
- values[token.name] = token.value ?? true;
- }
- });
-
-const color = values.color;
-const logfile = values.logfile ?? 'default.log';
-
-console.log({ logfile, color });
-```
-
-Example usage showing negated options, and when an option is used
-multiple ways then last one wins.
-
-```console
-$ node negate.js
-{ logfile: 'default.log', color: undefined }
-$ node negate.js --no-logfile --no-color
-{ logfile: false, color: false }
-$ node negate.js --logfile=test.log --color
-{ logfile: 'test.log', color: true }
-$ node negate.js --no-logfile --logfile=test.log --color --no-color
-{ logfile: 'test.log', color: false }
-```
-
------
-
-
-## Table of Contents
-- [`util.parseArgs([config])`](#utilparseargsconfig)
-- [Scope](#scope)
-- [Version Matchups](#version-matchups)
-- [🚀 Getting Started](#-getting-started)
-- [🙌 Contributing](#-contributing)
-- [💡 `process.mainArgs` Proposal](#-processmainargs-proposal)
- - [Implementation:](#implementation)
-- [📃 Examples](#-examples)
-- [F.A.Qs](#faqs)
-- [Links & Resources](#links--resources)
-
------
-
-## Scope
-
-It is already possible to build great arg parsing modules on top of what Node.js provides; the prickly API is abstracted away by these modules. Thus, process.parseArgs() is not necessarily intended for library authors; it is intended for developers of simple CLI tools, ad-hoc scripts, deployed Node.js applications, and learning materials.
-
-It is exceedingly difficult to provide an API which would both be friendly to these Node.js users while being extensible enough for libraries to build upon. We chose to prioritize these use cases because these are currently not well-served by Node.js' API.
-
-----
-
-## Version Matchups
-
-| Node.js | @pkgjs/parseArgs |
-| -- | -- |
-| [v18.3.0](https://nodejs.org/docs/latest-v18.x/api/util.html#utilparseargsconfig) | [v0.9.1](https://github.com/pkgjs/parseargs/tree/v0.9.1#utilparseargsconfig) |
-| [v16.17.0](https://nodejs.org/dist/latest-v16.x/docs/api/util.html#utilparseargsconfig), [v18.7.0](https://nodejs.org/docs/latest-v18.x/api/util.html#utilparseargsconfig) | [0.10.0](https://github.com/pkgjs/parseargs/tree/v0.10.0#utilparseargsconfig) |
-
-----
-
-## 🚀 Getting Started
-
-1. **Install dependencies.**
-
- ```bash
- npm install
- ```
-
-2. **Open the index.js file and start editing!**
-
-3. **Test your code by calling parseArgs through our test file**
-
- ```bash
- npm test
- ```
-
-----
-
-## 🙌 Contributing
-
-Any person who wants to contribute to the initiative is welcome! Please first read the [Contributing Guide](CONTRIBUTING.md)
-
-Additionally, reading the [`Examples w/ Output`](#-examples-w-output) section of this document will be the best way to familiarize yourself with the target expected behavior for parseArgs() once it is fully implemented.
-
-This package was implemented using [tape](https://www.npmjs.com/package/tape) as its test harness.
-
-----
-
-## 💡 `process.mainArgs` Proposal
-
-> Note: This can be moved forward independently of the `util.parseArgs()` proposal/work.
-
-### Implementation:
-
-```javascript
-process.mainArgs = process.argv.slice(process._exec ? 1 : 2)
-```
-
-----
-
-## 📃 Examples
-
-```js
-const { parseArgs } = require('@pkgjs/parseargs');
-```
-
-```js
-const { parseArgs } = require('@pkgjs/parseargs');
-// specify the options that may be used
-const options = {
- foo: { type: 'string'},
- bar: { type: 'boolean' },
-};
-const args = ['--foo=a', '--bar'];
-const { values, positionals } = parseArgs({ args, options });
-// values = { foo: 'a', bar: true }
-// positionals = []
-```
-
-```js
-const { parseArgs } = require('@pkgjs/parseargs');
-// type:string & multiple
-const options = {
- foo: {
- type: 'string',
- multiple: true,
- },
-};
-const args = ['--foo=a', '--foo', 'b'];
-const { values, positionals } = parseArgs({ args, options });
-// values = { foo: [ 'a', 'b' ] }
-// positionals = []
-```
-
-```js
-const { parseArgs } = require('@pkgjs/parseargs');
-// shorts
-const options = {
- foo: {
- short: 'f',
- type: 'boolean'
- },
-};
-const args = ['-f', 'b'];
-const { values, positionals } = parseArgs({ args, options, allowPositionals: true });
-// values = { foo: true }
-// positionals = ['b']
-```
-
-```js
-const { parseArgs } = require('@pkgjs/parseargs');
-// unconfigured
-const options = {};
-const args = ['-f', '--foo=a', '--bar', 'b'];
-const { values, positionals } = parseArgs({ strict: false, args, options, allowPositionals: true });
-// values = { f: true, foo: 'a', bar: true }
-// positionals = ['b']
-```
-
-----
-
-## F.A.Qs
-
-- Is `cmd --foo=bar baz` the same as `cmd baz --foo=bar`?
- - yes
-- Does the parser execute a function?
- - no
-- Does the parser execute one of several functions, depending on input?
- - no
-- Can subcommands take options that are distinct from the main command?
- - no
-- Does it output generated help when no options match?
- - no
-- Does it generated short usage? Like: `usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]`
- - no (no usage/help at all)
-- Does the user provide the long usage text? For each option? For the whole command?
- - no
-- Do subcommands (if implemented) have their own usage output?
- - no
-- Does usage print if the user runs `cmd --help`?
- - no
-- Does it set `process.exitCode`?
- - no
-- Does usage print to stderr or stdout?
- - N/A
-- Does it check types? (Say, specify that an option is a boolean, number, etc.)
- - no
-- Can an option have more than one type? (string or false, for example)
- - no
-- Can the user define a type? (Say, `type: path` to call `path.resolve()` on the argument.)
- - no
-- Does a `--foo=0o22` mean 0, 22, 18, or "0o22"?
- - `"0o22"`
-- Does it coerce types?
- - no
-- Does `--no-foo` coerce to `--foo=false`? For all options? Only boolean options?
- - no, it sets `{values:{'no-foo': true}}`
-- Is `--foo` the same as `--foo=true`? Only for known booleans? Only at the end?
- - no, they are not the same. There is no special handling of `true` as a value so it is just another string.
-- Does it read environment variables? Ie, is `FOO=1 cmd` the same as `cmd --foo=1`?
- - no
-- Do unknown arguments raise an error? Are they parsed? Are they treated as positional arguments?
- - no, they are parsed, not treated as positionals
-- Does `--` signal the end of options?
- - yes
-- Is `--` included as a positional?
- - no
-- Is `program -- foo` the same as `program foo`?
- - yes, both store `{positionals:['foo']}`
-- Does the API specify whether a `--` was present/relevant?
- - no
-- Is `-bar` the same as `--bar`?
- - no, `-bar` is a short option or options, with expansion logic that follows the
- [Utility Syntax Guidelines in POSIX.1-2017](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html). `-bar` expands to `-b`, `-a`, `-r`.
-- Is `---foo` the same as `--foo`?
- - no
- - the first is a long option named `'-foo'`
- - the second is a long option named `'foo'`
-- Is `-` a positional? ie, `bash some-test.sh | tap -`
- - yes
-
-## Links & Resources
-
-* [Initial Tooling Issue](https://github.com/nodejs/tooling/issues/19)
-* [Initial Proposal](https://github.com/nodejs/node/pull/35015)
-* [parseArgs Proposal](https://github.com/nodejs/node/pull/42675)
-
-[coverage-image]: https://img.shields.io/nycrc/pkgjs/parseargs
-[coverage-url]: https://github.com/pkgjs/parseargs/blob/main/.nycrc
-[pkgjs/parseargs]: https://github.com/pkgjs/parseargs
diff --git a/website/node_modules/@pkgjs/parseargs/examples/is-default-value.js b/website/node_modules/@pkgjs/parseargs/examples/is-default-value.js
deleted file mode 100644
index 0a67972b..00000000
--- a/website/node_modules/@pkgjs/parseargs/examples/is-default-value.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-// This example shows how to understand if a default value is used or not.
-
-// 1. const { parseArgs } = require('node:util'); // from node
-// 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package
-const { parseArgs } = require('..'); // in repo
-
-const options = {
- file: { short: 'f', type: 'string', default: 'FOO' },
-};
-
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-const isFileDefault = !tokens.some((token) => token.kind === 'option' &&
- token.name === 'file'
-);
-
-console.log(values);
-console.log(`Is the file option [${values.file}] the default value? ${isFileDefault}`);
-
-// Try the following:
-// node is-default-value.js
-// node is-default-value.js -f FILE
-// node is-default-value.js --file FILE
diff --git a/website/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js b/website/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js
deleted file mode 100644
index 943e643e..00000000
--- a/website/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-// This is an example of using tokens to add a custom behaviour.
-//
-// Require the use of `=` for long options and values by blocking
-// the use of space separated values.
-// So allow `--foo=bar`, and not allow `--foo bar`.
-//
-// Note: this is not a common behaviour, most CLIs allow both forms.
-
-// 1. const { parseArgs } = require('node:util'); // from node
-// 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package
-const { parseArgs } = require('..'); // in repo
-
-const options = {
- file: { short: 'f', type: 'string' },
- log: { type: 'string' },
-};
-
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-const badToken = tokens.find((token) => token.kind === 'option' &&
- token.value != null &&
- token.rawName.startsWith('--') &&
- !token.inlineValue
-);
-if (badToken) {
- throw new Error(`Option value for '${badToken.rawName}' must be inline, like '${badToken.rawName}=VALUE'`);
-}
-
-console.log(values);
-
-// Try the following:
-// node limit-long-syntax.js -f FILE --log=LOG
-// node limit-long-syntax.js --file FILE
diff --git a/website/node_modules/@pkgjs/parseargs/examples/negate.js b/website/node_modules/@pkgjs/parseargs/examples/negate.js
deleted file mode 100644
index b6634690..00000000
--- a/website/node_modules/@pkgjs/parseargs/examples/negate.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-// This example is used in the documentation.
-
-// How might I add my own support for --no-foo?
-
-// 1. const { parseArgs } = require('node:util'); // from node
-// 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package
-const { parseArgs } = require('..'); // in repo
-
-const options = {
- 'color': { type: 'boolean' },
- 'no-color': { type: 'boolean' },
- 'logfile': { type: 'string' },
- 'no-logfile': { type: 'boolean' },
-};
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-// Reprocess the option tokens and overwrite the returned values.
-tokens
- .filter((token) => token.kind === 'option')
- .forEach((token) => {
- if (token.name.startsWith('no-')) {
- // Store foo:false for --no-foo
- const positiveName = token.name.slice(3);
- values[positiveName] = false;
- delete values[token.name];
- } else {
- // Resave value so last one wins if both --foo and --no-foo.
- values[token.name] = token.value ?? true;
- }
- });
-
-const color = values.color;
-const logfile = values.logfile ?? 'default.log';
-
-console.log({ logfile, color });
-
-// Try the following:
-// node negate.js
-// node negate.js --no-logfile --no-color
-// negate.js --logfile=test.log --color
-// node negate.js --no-logfile --logfile=test.log --color --no-color
diff --git a/website/node_modules/@pkgjs/parseargs/examples/no-repeated-options.js b/website/node_modules/@pkgjs/parseargs/examples/no-repeated-options.js
deleted file mode 100644
index 0c324688..00000000
--- a/website/node_modules/@pkgjs/parseargs/examples/no-repeated-options.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-// This is an example of using tokens to add a custom behaviour.
-//
-// Throw an error if an option is used more than once.
-
-// 1. const { parseArgs } = require('node:util'); // from node
-// 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package
-const { parseArgs } = require('..'); // in repo
-
-const options = {
- ding: { type: 'boolean', short: 'd' },
- beep: { type: 'boolean', short: 'b' }
-};
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-const seenBefore = new Set();
-tokens.forEach((token) => {
- if (token.kind !== 'option') return;
- if (seenBefore.has(token.name)) {
- throw new Error(`option '${token.name}' used multiple times`);
- }
- seenBefore.add(token.name);
-});
-
-console.log(values);
-
-// Try the following:
-// node no-repeated-options --ding --beep
-// node no-repeated-options --beep -b
-// node no-repeated-options -ddd
diff --git a/website/node_modules/@pkgjs/parseargs/examples/ordered-options.mjs b/website/node_modules/@pkgjs/parseargs/examples/ordered-options.mjs
deleted file mode 100644
index 8ab7367b..00000000
--- a/website/node_modules/@pkgjs/parseargs/examples/ordered-options.mjs
+++ /dev/null
@@ -1,41 +0,0 @@
-// This is an example of using tokens to add a custom behaviour.
-//
-// This adds a option order check so that --some-unstable-option
-// may only be used after --enable-experimental-options
-//
-// Note: this is not a common behaviour, the order of different options
-// does not usually matter.
-
-import { parseArgs } from '../index.js';
-
-function findTokenIndex(tokens, target) {
- return tokens.findIndex((token) => token.kind === 'option' &&
- token.name === target
- );
-}
-
-const experimentalName = 'enable-experimental-options';
-const unstableName = 'some-unstable-option';
-
-const options = {
- [experimentalName]: { type: 'boolean' },
- [unstableName]: { type: 'boolean' },
-};
-
-const { values, tokens } = parseArgs({ options, tokens: true });
-
-const experimentalIndex = findTokenIndex(tokens, experimentalName);
-const unstableIndex = findTokenIndex(tokens, unstableName);
-if (unstableIndex !== -1 &&
- ((experimentalIndex === -1) || (unstableIndex < experimentalIndex))) {
- throw new Error(`'--${experimentalName}' must be specified before '--${unstableName}'`);
-}
-
-console.log(values);
-
-/* eslint-disable max-len */
-// Try the following:
-// node ordered-options.mjs
-// node ordered-options.mjs --some-unstable-option
-// node ordered-options.mjs --some-unstable-option --enable-experimental-options
-// node ordered-options.mjs --enable-experimental-options --some-unstable-option
diff --git a/website/node_modules/@pkgjs/parseargs/examples/simple-hard-coded.js b/website/node_modules/@pkgjs/parseargs/examples/simple-hard-coded.js
deleted file mode 100644
index eff04c2a..00000000
--- a/website/node_modules/@pkgjs/parseargs/examples/simple-hard-coded.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-// This example is used in the documentation.
-
-// 1. const { parseArgs } = require('node:util'); // from node
-// 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package
-const { parseArgs } = require('..'); // in repo
-
-const args = ['-f', '--bar', 'b'];
-const options = {
- foo: {
- type: 'boolean',
- short: 'f'
- },
- bar: {
- type: 'string'
- }
-};
-const {
- values,
- positionals
-} = parseArgs({ args, options });
-console.log(values, positionals);
-
-// Try the following:
-// node simple-hard-coded.js
diff --git a/website/node_modules/@pkgjs/parseargs/index.js b/website/node_modules/@pkgjs/parseargs/index.js
deleted file mode 100644
index b1004c7b..00000000
--- a/website/node_modules/@pkgjs/parseargs/index.js
+++ /dev/null
@@ -1,396 +0,0 @@
-'use strict';
-
-const {
- ArrayPrototypeForEach,
- ArrayPrototypeIncludes,
- ArrayPrototypeMap,
- ArrayPrototypePush,
- ArrayPrototypePushApply,
- ArrayPrototypeShift,
- ArrayPrototypeSlice,
- ArrayPrototypeUnshiftApply,
- ObjectEntries,
- ObjectPrototypeHasOwnProperty: ObjectHasOwn,
- StringPrototypeCharAt,
- StringPrototypeIndexOf,
- StringPrototypeSlice,
- StringPrototypeStartsWith,
-} = require('./internal/primordials');
-
-const {
- validateArray,
- validateBoolean,
- validateBooleanArray,
- validateObject,
- validateString,
- validateStringArray,
- validateUnion,
-} = require('./internal/validators');
-
-const {
- kEmptyObject,
-} = require('./internal/util');
-
-const {
- findLongOptionForShort,
- isLoneLongOption,
- isLoneShortOption,
- isLongOptionAndValue,
- isOptionValue,
- isOptionLikeValue,
- isShortOptionAndValue,
- isShortOptionGroup,
- useDefaultValueOption,
- objectGetOwn,
- optionsGetOwn,
-} = require('./utils');
-
-const {
- codes: {
- ERR_INVALID_ARG_VALUE,
- ERR_PARSE_ARGS_INVALID_OPTION_VALUE,
- ERR_PARSE_ARGS_UNKNOWN_OPTION,
- ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL,
- },
-} = require('./internal/errors');
-
-function getMainArgs() {
- // Work out where to slice process.argv for user supplied arguments.
-
- // Check node options for scenarios where user CLI args follow executable.
- const execArgv = process.execArgv;
- if (ArrayPrototypeIncludes(execArgv, '-e') ||
- ArrayPrototypeIncludes(execArgv, '--eval') ||
- ArrayPrototypeIncludes(execArgv, '-p') ||
- ArrayPrototypeIncludes(execArgv, '--print')) {
- return ArrayPrototypeSlice(process.argv, 1);
- }
-
- // Normally first two arguments are executable and script, then CLI arguments
- return ArrayPrototypeSlice(process.argv, 2);
-}
-
-/**
- * In strict mode, throw for possible usage errors like --foo --bar
- *
- * @param {object} token - from tokens as available from parseArgs
- */
-function checkOptionLikeValue(token) {
- if (!token.inlineValue && isOptionLikeValue(token.value)) {
- // Only show short example if user used short option.
- const example = StringPrototypeStartsWith(token.rawName, '--') ?
- `'${token.rawName}=-XYZ'` :
- `'--${token.name}=-XYZ' or '${token.rawName}-XYZ'`;
- const errorMessage = `Option '${token.rawName}' argument is ambiguous.
-Did you forget to specify the option argument for '${token.rawName}'?
-To specify an option argument starting with a dash use ${example}.`;
- throw new ERR_PARSE_ARGS_INVALID_OPTION_VALUE(errorMessage);
- }
-}
-
-/**
- * In strict mode, throw for usage errors.
- *
- * @param {object} config - from config passed to parseArgs
- * @param {object} token - from tokens as available from parseArgs
- */
-function checkOptionUsage(config, token) {
- if (!ObjectHasOwn(config.options, token.name)) {
- throw new ERR_PARSE_ARGS_UNKNOWN_OPTION(
- token.rawName, config.allowPositionals);
- }
-
- const short = optionsGetOwn(config.options, token.name, 'short');
- const shortAndLong = `${short ? `-${short}, ` : ''}--${token.name}`;
- const type = optionsGetOwn(config.options, token.name, 'type');
- if (type === 'string' && typeof token.value !== 'string') {
- throw new ERR_PARSE_ARGS_INVALID_OPTION_VALUE(`Option '${shortAndLong} ' argument missing`);
- }
- // (Idiomatic test for undefined||null, expecting undefined.)
- if (type === 'boolean' && token.value != null) {
- throw new ERR_PARSE_ARGS_INVALID_OPTION_VALUE(`Option '${shortAndLong}' does not take an argument`);
- }
-}
-
-
-/**
- * Store the option value in `values`.
- *
- * @param {string} longOption - long option name e.g. 'foo'
- * @param {string|undefined} optionValue - value from user args
- * @param {object} options - option configs, from parseArgs({ options })
- * @param {object} values - option values returned in `values` by parseArgs
- */
-function storeOption(longOption, optionValue, options, values) {
- if (longOption === '__proto__') {
- return; // No. Just no.
- }
-
- // We store based on the option value rather than option type,
- // preserving the users intent for author to deal with.
- const newValue = optionValue ?? true;
- if (optionsGetOwn(options, longOption, 'multiple')) {
- // Always store value in array, including for boolean.
- // values[longOption] starts out not present,
- // first value is added as new array [newValue],
- // subsequent values are pushed to existing array.
- // (note: values has null prototype, so simpler usage)
- if (values[longOption]) {
- ArrayPrototypePush(values[longOption], newValue);
- } else {
- values[longOption] = [newValue];
- }
- } else {
- values[longOption] = newValue;
- }
-}
-
-/**
- * Store the default option value in `values`.
- *
- * @param {string} longOption - long option name e.g. 'foo'
- * @param {string
- * | boolean
- * | string[]
- * | boolean[]} optionValue - default value from option config
- * @param {object} values - option values returned in `values` by parseArgs
- */
-function storeDefaultOption(longOption, optionValue, values) {
- if (longOption === '__proto__') {
- return; // No. Just no.
- }
-
- values[longOption] = optionValue;
-}
-
-/**
- * Process args and turn into identified tokens:
- * - option (along with value, if any)
- * - positional
- * - option-terminator
- *
- * @param {string[]} args - from parseArgs({ args }) or mainArgs
- * @param {object} options - option configs, from parseArgs({ options })
- */
-function argsToTokens(args, options) {
- const tokens = [];
- let index = -1;
- let groupCount = 0;
-
- const remainingArgs = ArrayPrototypeSlice(args);
- while (remainingArgs.length > 0) {
- const arg = ArrayPrototypeShift(remainingArgs);
- const nextArg = remainingArgs[0];
- if (groupCount > 0)
- groupCount--;
- else
- index++;
-
- // Check if `arg` is an options terminator.
- // Guideline 10 in https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
- if (arg === '--') {
- // Everything after a bare '--' is considered a positional argument.
- ArrayPrototypePush(tokens, { kind: 'option-terminator', index });
- ArrayPrototypePushApply(
- tokens, ArrayPrototypeMap(remainingArgs, (arg) => {
- return { kind: 'positional', index: ++index, value: arg };
- })
- );
- break; // Finished processing args, leave while loop.
- }
-
- if (isLoneShortOption(arg)) {
- // e.g. '-f'
- const shortOption = StringPrototypeCharAt(arg, 1);
- const longOption = findLongOptionForShort(shortOption, options);
- let value;
- let inlineValue;
- if (optionsGetOwn(options, longOption, 'type') === 'string' &&
- isOptionValue(nextArg)) {
- // e.g. '-f', 'bar'
- value = ArrayPrototypeShift(remainingArgs);
- inlineValue = false;
- }
- ArrayPrototypePush(
- tokens,
- { kind: 'option', name: longOption, rawName: arg,
- index, value, inlineValue });
- if (value != null) ++index;
- continue;
- }
-
- if (isShortOptionGroup(arg, options)) {
- // Expand -fXzy to -f -X -z -y
- const expanded = [];
- for (let index = 1; index < arg.length; index++) {
- const shortOption = StringPrototypeCharAt(arg, index);
- const longOption = findLongOptionForShort(shortOption, options);
- if (optionsGetOwn(options, longOption, 'type') !== 'string' ||
- index === arg.length - 1) {
- // Boolean option, or last short in group. Well formed.
- ArrayPrototypePush(expanded, `-${shortOption}`);
- } else {
- // String option in middle. Yuck.
- // Expand -abfFILE to -a -b -fFILE
- ArrayPrototypePush(expanded, `-${StringPrototypeSlice(arg, index)}`);
- break; // finished short group
- }
- }
- ArrayPrototypeUnshiftApply(remainingArgs, expanded);
- groupCount = expanded.length;
- continue;
- }
-
- if (isShortOptionAndValue(arg, options)) {
- // e.g. -fFILE
- const shortOption = StringPrototypeCharAt(arg, 1);
- const longOption = findLongOptionForShort(shortOption, options);
- const value = StringPrototypeSlice(arg, 2);
- ArrayPrototypePush(
- tokens,
- { kind: 'option', name: longOption, rawName: `-${shortOption}`,
- index, value, inlineValue: true });
- continue;
- }
-
- if (isLoneLongOption(arg)) {
- // e.g. '--foo'
- const longOption = StringPrototypeSlice(arg, 2);
- let value;
- let inlineValue;
- if (optionsGetOwn(options, longOption, 'type') === 'string' &&
- isOptionValue(nextArg)) {
- // e.g. '--foo', 'bar'
- value = ArrayPrototypeShift(remainingArgs);
- inlineValue = false;
- }
- ArrayPrototypePush(
- tokens,
- { kind: 'option', name: longOption, rawName: arg,
- index, value, inlineValue });
- if (value != null) ++index;
- continue;
- }
-
- if (isLongOptionAndValue(arg)) {
- // e.g. --foo=bar
- const equalIndex = StringPrototypeIndexOf(arg, '=');
- const longOption = StringPrototypeSlice(arg, 2, equalIndex);
- const value = StringPrototypeSlice(arg, equalIndex + 1);
- ArrayPrototypePush(
- tokens,
- { kind: 'option', name: longOption, rawName: `--${longOption}`,
- index, value, inlineValue: true });
- continue;
- }
-
- ArrayPrototypePush(tokens, { kind: 'positional', index, value: arg });
- }
-
- return tokens;
-}
-
-const parseArgs = (config = kEmptyObject) => {
- const args = objectGetOwn(config, 'args') ?? getMainArgs();
- const strict = objectGetOwn(config, 'strict') ?? true;
- const allowPositionals = objectGetOwn(config, 'allowPositionals') ?? !strict;
- const returnTokens = objectGetOwn(config, 'tokens') ?? false;
- const options = objectGetOwn(config, 'options') ?? { __proto__: null };
- // Bundle these up for passing to strict-mode checks.
- const parseConfig = { args, strict, options, allowPositionals };
-
- // Validate input configuration.
- validateArray(args, 'args');
- validateBoolean(strict, 'strict');
- validateBoolean(allowPositionals, 'allowPositionals');
- validateBoolean(returnTokens, 'tokens');
- validateObject(options, 'options');
- ArrayPrototypeForEach(
- ObjectEntries(options),
- ({ 0: longOption, 1: optionConfig }) => {
- validateObject(optionConfig, `options.${longOption}`);
-
- // type is required
- const optionType = objectGetOwn(optionConfig, 'type');
- validateUnion(optionType, `options.${longOption}.type`, ['string', 'boolean']);
-
- if (ObjectHasOwn(optionConfig, 'short')) {
- const shortOption = optionConfig.short;
- validateString(shortOption, `options.${longOption}.short`);
- if (shortOption.length !== 1) {
- throw new ERR_INVALID_ARG_VALUE(
- `options.${longOption}.short`,
- shortOption,
- 'must be a single character'
- );
- }
- }
-
- const multipleOption = objectGetOwn(optionConfig, 'multiple');
- if (ObjectHasOwn(optionConfig, 'multiple')) {
- validateBoolean(multipleOption, `options.${longOption}.multiple`);
- }
-
- const defaultValue = objectGetOwn(optionConfig, 'default');
- if (defaultValue !== undefined) {
- let validator;
- switch (optionType) {
- case 'string':
- validator = multipleOption ? validateStringArray : validateString;
- break;
-
- case 'boolean':
- validator = multipleOption ? validateBooleanArray : validateBoolean;
- break;
- }
- validator(defaultValue, `options.${longOption}.default`);
- }
- }
- );
-
- // Phase 1: identify tokens
- const tokens = argsToTokens(args, options);
-
- // Phase 2: process tokens into parsed option values and positionals
- const result = {
- values: { __proto__: null },
- positionals: [],
- };
- if (returnTokens) {
- result.tokens = tokens;
- }
- ArrayPrototypeForEach(tokens, (token) => {
- if (token.kind === 'option') {
- if (strict) {
- checkOptionUsage(parseConfig, token);
- checkOptionLikeValue(token);
- }
- storeOption(token.name, token.value, options, result.values);
- } else if (token.kind === 'positional') {
- if (!allowPositionals) {
- throw new ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL(token.value);
- }
- ArrayPrototypePush(result.positionals, token.value);
- }
- });
-
- // Phase 3: fill in default values for missing args
- ArrayPrototypeForEach(ObjectEntries(options), ({ 0: longOption,
- 1: optionConfig }) => {
- const mustSetDefault = useDefaultValueOption(longOption,
- optionConfig,
- result.values);
- if (mustSetDefault) {
- storeDefaultOption(longOption,
- objectGetOwn(optionConfig, 'default'),
- result.values);
- }
- });
-
-
- return result;
-};
-
-module.exports = {
- parseArgs,
-};
diff --git a/website/node_modules/@pkgjs/parseargs/internal/errors.js b/website/node_modules/@pkgjs/parseargs/internal/errors.js
deleted file mode 100644
index e1b237b5..00000000
--- a/website/node_modules/@pkgjs/parseargs/internal/errors.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-class ERR_INVALID_ARG_TYPE extends TypeError {
- constructor(name, expected, actual) {
- super(`${name} must be ${expected} got ${actual}`);
- this.code = 'ERR_INVALID_ARG_TYPE';
- }
-}
-
-class ERR_INVALID_ARG_VALUE extends TypeError {
- constructor(arg1, arg2, expected) {
- super(`The property ${arg1} ${expected}. Received '${arg2}'`);
- this.code = 'ERR_INVALID_ARG_VALUE';
- }
-}
-
-class ERR_PARSE_ARGS_INVALID_OPTION_VALUE extends Error {
- constructor(message) {
- super(message);
- this.code = 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE';
- }
-}
-
-class ERR_PARSE_ARGS_UNKNOWN_OPTION extends Error {
- constructor(option, allowPositionals) {
- const suggestDashDash = allowPositionals ? `. To specify a positional argument starting with a '-', place it at the end of the command after '--', as in '-- ${JSON.stringify(option)}` : '';
- super(`Unknown option '${option}'${suggestDashDash}`);
- this.code = 'ERR_PARSE_ARGS_UNKNOWN_OPTION';
- }
-}
-
-class ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL extends Error {
- constructor(positional) {
- super(`Unexpected argument '${positional}'. This command does not take positional arguments`);
- this.code = 'ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL';
- }
-}
-
-module.exports = {
- codes: {
- ERR_INVALID_ARG_TYPE,
- ERR_INVALID_ARG_VALUE,
- ERR_PARSE_ARGS_INVALID_OPTION_VALUE,
- ERR_PARSE_ARGS_UNKNOWN_OPTION,
- ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL,
- }
-};
diff --git a/website/node_modules/@pkgjs/parseargs/internal/primordials.js b/website/node_modules/@pkgjs/parseargs/internal/primordials.js
deleted file mode 100644
index 63e23ab1..00000000
--- a/website/node_modules/@pkgjs/parseargs/internal/primordials.js
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
-This file is copied from https://github.com/nodejs/node/blob/v14.19.3/lib/internal/per_context/primordials.js
-under the following license:
-
-Copyright Node.js contributors. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-*/
-
-'use strict';
-
-/* eslint-disable node-core/prefer-primordials */
-
-// This file subclasses and stores the JS builtins that come from the VM
-// so that Node.js's builtin modules do not need to later look these up from
-// the global proxy, which can be mutated by users.
-
-// Use of primordials have sometimes a dramatic impact on performance, please
-// benchmark all changes made in performance-sensitive areas of the codebase.
-// See: https://github.com/nodejs/node/pull/38248
-
-const primordials = {};
-
-const {
- defineProperty: ReflectDefineProperty,
- getOwnPropertyDescriptor: ReflectGetOwnPropertyDescriptor,
- ownKeys: ReflectOwnKeys,
-} = Reflect;
-
-// `uncurryThis` is equivalent to `func => Function.prototype.call.bind(func)`.
-// It is using `bind.bind(call)` to avoid using `Function.prototype.bind`
-// and `Function.prototype.call` after it may have been mutated by users.
-const { apply, bind, call } = Function.prototype;
-const uncurryThis = bind.bind(call);
-primordials.uncurryThis = uncurryThis;
-
-// `applyBind` is equivalent to `func => Function.prototype.apply.bind(func)`.
-// It is using `bind.bind(apply)` to avoid using `Function.prototype.bind`
-// and `Function.prototype.apply` after it may have been mutated by users.
-const applyBind = bind.bind(apply);
-primordials.applyBind = applyBind;
-
-// Methods that accept a variable number of arguments, and thus it's useful to
-// also create `${prefix}${key}Apply`, which uses `Function.prototype.apply`,
-// instead of `Function.prototype.call`, and thus doesn't require iterator
-// destructuring.
-const varargsMethods = [
- // 'ArrayPrototypeConcat' is omitted, because it performs the spread
- // on its own for arrays and array-likes with a truthy
- // @@isConcatSpreadable symbol property.
- 'ArrayOf',
- 'ArrayPrototypePush',
- 'ArrayPrototypeUnshift',
- // 'FunctionPrototypeCall' is omitted, since there's 'ReflectApply'
- // and 'FunctionPrototypeApply'.
- 'MathHypot',
- 'MathMax',
- 'MathMin',
- 'StringPrototypeConcat',
- 'TypedArrayOf',
-];
-
-function getNewKey(key) {
- return typeof key === 'symbol' ?
- `Symbol${key.description[7].toUpperCase()}${key.description.slice(8)}` :
- `${key[0].toUpperCase()}${key.slice(1)}`;
-}
-
-function copyAccessor(dest, prefix, key, { enumerable, get, set }) {
- ReflectDefineProperty(dest, `${prefix}Get${key}`, {
- value: uncurryThis(get),
- enumerable
- });
- if (set !== undefined) {
- ReflectDefineProperty(dest, `${prefix}Set${key}`, {
- value: uncurryThis(set),
- enumerable
- });
- }
-}
-
-function copyPropsRenamed(src, dest, prefix) {
- for (const key of ReflectOwnKeys(src)) {
- const newKey = getNewKey(key);
- const desc = ReflectGetOwnPropertyDescriptor(src, key);
- if ('get' in desc) {
- copyAccessor(dest, prefix, newKey, desc);
- } else {
- const name = `${prefix}${newKey}`;
- ReflectDefineProperty(dest, name, desc);
- if (varargsMethods.includes(name)) {
- ReflectDefineProperty(dest, `${name}Apply`, {
- // `src` is bound as the `this` so that the static `this` points
- // to the object it was defined on,
- // e.g.: `ArrayOfApply` gets a `this` of `Array`:
- value: applyBind(desc.value, src),
- });
- }
- }
- }
-}
-
-function copyPropsRenamedBound(src, dest, prefix) {
- for (const key of ReflectOwnKeys(src)) {
- const newKey = getNewKey(key);
- const desc = ReflectGetOwnPropertyDescriptor(src, key);
- if ('get' in desc) {
- copyAccessor(dest, prefix, newKey, desc);
- } else {
- const { value } = desc;
- if (typeof value === 'function') {
- desc.value = value.bind(src);
- }
-
- const name = `${prefix}${newKey}`;
- ReflectDefineProperty(dest, name, desc);
- if (varargsMethods.includes(name)) {
- ReflectDefineProperty(dest, `${name}Apply`, {
- value: applyBind(value, src),
- });
- }
- }
- }
-}
-
-function copyPrototype(src, dest, prefix) {
- for (const key of ReflectOwnKeys(src)) {
- const newKey = getNewKey(key);
- const desc = ReflectGetOwnPropertyDescriptor(src, key);
- if ('get' in desc) {
- copyAccessor(dest, prefix, newKey, desc);
- } else {
- const { value } = desc;
- if (typeof value === 'function') {
- desc.value = uncurryThis(value);
- }
-
- const name = `${prefix}${newKey}`;
- ReflectDefineProperty(dest, name, desc);
- if (varargsMethods.includes(name)) {
- ReflectDefineProperty(dest, `${name}Apply`, {
- value: applyBind(value),
- });
- }
- }
- }
-}
-
-// Create copies of configurable value properties of the global object
-[
- 'Proxy',
- 'globalThis',
-].forEach((name) => {
- // eslint-disable-next-line no-restricted-globals
- primordials[name] = globalThis[name];
-});
-
-// Create copies of URI handling functions
-[
- decodeURI,
- decodeURIComponent,
- encodeURI,
- encodeURIComponent,
-].forEach((fn) => {
- primordials[fn.name] = fn;
-});
-
-// Create copies of the namespace objects
-[
- 'JSON',
- 'Math',
- 'Proxy',
- 'Reflect',
-].forEach((name) => {
- // eslint-disable-next-line no-restricted-globals
- copyPropsRenamed(global[name], primordials, name);
-});
-
-// Create copies of intrinsic objects
-[
- 'Array',
- 'ArrayBuffer',
- 'BigInt',
- 'BigInt64Array',
- 'BigUint64Array',
- 'Boolean',
- 'DataView',
- 'Date',
- 'Error',
- 'EvalError',
- 'Float32Array',
- 'Float64Array',
- 'Function',
- 'Int16Array',
- 'Int32Array',
- 'Int8Array',
- 'Map',
- 'Number',
- 'Object',
- 'RangeError',
- 'ReferenceError',
- 'RegExp',
- 'Set',
- 'String',
- 'Symbol',
- 'SyntaxError',
- 'TypeError',
- 'URIError',
- 'Uint16Array',
- 'Uint32Array',
- 'Uint8Array',
- 'Uint8ClampedArray',
- 'WeakMap',
- 'WeakSet',
-].forEach((name) => {
- // eslint-disable-next-line no-restricted-globals
- const original = global[name];
- primordials[name] = original;
- copyPropsRenamed(original, primordials, name);
- copyPrototype(original.prototype, primordials, `${name}Prototype`);
-});
-
-// Create copies of intrinsic objects that require a valid `this` to call
-// static methods.
-// Refs: https://www.ecma-international.org/ecma-262/#sec-promise.all
-[
- 'Promise',
-].forEach((name) => {
- // eslint-disable-next-line no-restricted-globals
- const original = global[name];
- primordials[name] = original;
- copyPropsRenamedBound(original, primordials, name);
- copyPrototype(original.prototype, primordials, `${name}Prototype`);
-});
-
-// Create copies of abstract intrinsic objects that are not directly exposed
-// on the global object.
-// Refs: https://tc39.es/ecma262/#sec-%typedarray%-intrinsic-object
-[
- { name: 'TypedArray', original: Reflect.getPrototypeOf(Uint8Array) },
- { name: 'ArrayIterator', original: {
- prototype: Reflect.getPrototypeOf(Array.prototype[Symbol.iterator]()),
- } },
- { name: 'StringIterator', original: {
- prototype: Reflect.getPrototypeOf(String.prototype[Symbol.iterator]()),
- } },
-].forEach(({ name, original }) => {
- primordials[name] = original;
- // The static %TypedArray% methods require a valid `this`, but can't be bound,
- // as they need a subclass constructor as the receiver:
- copyPrototype(original, primordials, name);
- copyPrototype(original.prototype, primordials, `${name}Prototype`);
-});
-
-/* eslint-enable node-core/prefer-primordials */
-
-const {
- ArrayPrototypeForEach,
- FunctionPrototypeCall,
- Map,
- ObjectFreeze,
- ObjectSetPrototypeOf,
- Set,
- SymbolIterator,
- WeakMap,
- WeakSet,
-} = primordials;
-
-// Because these functions are used by `makeSafe`, which is exposed
-// on the `primordials` object, it's important to use const references
-// to the primordials that they use:
-const createSafeIterator = (factory, next) => {
- class SafeIterator {
- constructor(iterable) {
- this._iterator = factory(iterable);
- }
- next() {
- return next(this._iterator);
- }
- [SymbolIterator]() {
- return this;
- }
- }
- ObjectSetPrototypeOf(SafeIterator.prototype, null);
- ObjectFreeze(SafeIterator.prototype);
- ObjectFreeze(SafeIterator);
- return SafeIterator;
-};
-
-primordials.SafeArrayIterator = createSafeIterator(
- primordials.ArrayPrototypeSymbolIterator,
- primordials.ArrayIteratorPrototypeNext
-);
-primordials.SafeStringIterator = createSafeIterator(
- primordials.StringPrototypeSymbolIterator,
- primordials.StringIteratorPrototypeNext
-);
-
-const copyProps = (src, dest) => {
- ArrayPrototypeForEach(ReflectOwnKeys(src), (key) => {
- if (!ReflectGetOwnPropertyDescriptor(dest, key)) {
- ReflectDefineProperty(
- dest,
- key,
- ReflectGetOwnPropertyDescriptor(src, key));
- }
- });
-};
-
-const makeSafe = (unsafe, safe) => {
- if (SymbolIterator in unsafe.prototype) {
- const dummy = new unsafe();
- let next; // We can reuse the same `next` method.
-
- ArrayPrototypeForEach(ReflectOwnKeys(unsafe.prototype), (key) => {
- if (!ReflectGetOwnPropertyDescriptor(safe.prototype, key)) {
- const desc = ReflectGetOwnPropertyDescriptor(unsafe.prototype, key);
- if (
- typeof desc.value === 'function' &&
- desc.value.length === 0 &&
- SymbolIterator in (FunctionPrototypeCall(desc.value, dummy) ?? {})
- ) {
- const createIterator = uncurryThis(desc.value);
- next = next ?? uncurryThis(createIterator(dummy).next);
- const SafeIterator = createSafeIterator(createIterator, next);
- desc.value = function() {
- return new SafeIterator(this);
- };
- }
- ReflectDefineProperty(safe.prototype, key, desc);
- }
- });
- } else {
- copyProps(unsafe.prototype, safe.prototype);
- }
- copyProps(unsafe, safe);
-
- ObjectSetPrototypeOf(safe.prototype, null);
- ObjectFreeze(safe.prototype);
- ObjectFreeze(safe);
- return safe;
-};
-primordials.makeSafe = makeSafe;
-
-// Subclass the constructors because we need to use their prototype
-// methods later.
-// Defining the `constructor` is necessary here to avoid the default
-// constructor which uses the user-mutable `%ArrayIteratorPrototype%.next`.
-primordials.SafeMap = makeSafe(
- Map,
- class SafeMap extends Map {
- constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
- }
-);
-primordials.SafeWeakMap = makeSafe(
- WeakMap,
- class SafeWeakMap extends WeakMap {
- constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
- }
-);
-primordials.SafeSet = makeSafe(
- Set,
- class SafeSet extends Set {
- constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
- }
-);
-primordials.SafeWeakSet = makeSafe(
- WeakSet,
- class SafeWeakSet extends WeakSet {
- constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
- }
-);
-
-ObjectSetPrototypeOf(primordials, null);
-ObjectFreeze(primordials);
-
-module.exports = primordials;
diff --git a/website/node_modules/@pkgjs/parseargs/internal/util.js b/website/node_modules/@pkgjs/parseargs/internal/util.js
deleted file mode 100644
index b9b8fe5b..00000000
--- a/website/node_modules/@pkgjs/parseargs/internal/util.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-// This is a placeholder for util.js in node.js land.
-
-const {
- ObjectCreate,
- ObjectFreeze,
-} = require('./primordials');
-
-const kEmptyObject = ObjectFreeze(ObjectCreate(null));
-
-module.exports = {
- kEmptyObject,
-};
diff --git a/website/node_modules/@pkgjs/parseargs/internal/validators.js b/website/node_modules/@pkgjs/parseargs/internal/validators.js
deleted file mode 100644
index b5ac4fb5..00000000
--- a/website/node_modules/@pkgjs/parseargs/internal/validators.js
+++ /dev/null
@@ -1,89 +0,0 @@
-'use strict';
-
-// This file is a proxy of the original file located at:
-// https://github.com/nodejs/node/blob/main/lib/internal/validators.js
-// Every addition or modification to this file must be evaluated
-// during the PR review.
-
-const {
- ArrayIsArray,
- ArrayPrototypeIncludes,
- ArrayPrototypeJoin,
-} = require('./primordials');
-
-const {
- codes: {
- ERR_INVALID_ARG_TYPE
- }
-} = require('./errors');
-
-function validateString(value, name) {
- if (typeof value !== 'string') {
- throw new ERR_INVALID_ARG_TYPE(name, 'String', value);
- }
-}
-
-function validateUnion(value, name, union) {
- if (!ArrayPrototypeIncludes(union, value)) {
- throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value);
- }
-}
-
-function validateBoolean(value, name) {
- if (typeof value !== 'boolean') {
- throw new ERR_INVALID_ARG_TYPE(name, 'Boolean', value);
- }
-}
-
-function validateArray(value, name) {
- if (!ArrayIsArray(value)) {
- throw new ERR_INVALID_ARG_TYPE(name, 'Array', value);
- }
-}
-
-function validateStringArray(value, name) {
- validateArray(value, name);
- for (let i = 0; i < value.length; i++) {
- validateString(value[i], `${name}[${i}]`);
- }
-}
-
-function validateBooleanArray(value, name) {
- validateArray(value, name);
- for (let i = 0; i < value.length; i++) {
- validateBoolean(value[i], `${name}[${i}]`);
- }
-}
-
-/**
- * @param {unknown} value
- * @param {string} name
- * @param {{
- * allowArray?: boolean,
- * allowFunction?: boolean,
- * nullable?: boolean
- * }} [options]
- */
-function validateObject(value, name, options) {
- const useDefaultOptions = options == null;
- const allowArray = useDefaultOptions ? false : options.allowArray;
- const allowFunction = useDefaultOptions ? false : options.allowFunction;
- const nullable = useDefaultOptions ? false : options.nullable;
- if ((!nullable && value === null) ||
- (!allowArray && ArrayIsArray(value)) ||
- (typeof value !== 'object' && (
- !allowFunction || typeof value !== 'function'
- ))) {
- throw new ERR_INVALID_ARG_TYPE(name, 'Object', value);
- }
-}
-
-module.exports = {
- validateArray,
- validateObject,
- validateString,
- validateStringArray,
- validateUnion,
- validateBoolean,
- validateBooleanArray,
-};
diff --git a/website/node_modules/@pkgjs/parseargs/package.json b/website/node_modules/@pkgjs/parseargs/package.json
deleted file mode 100644
index 0bcc05c0..00000000
--- a/website/node_modules/@pkgjs/parseargs/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "@pkgjs/parseargs",
- "version": "0.11.0",
- "description": "Polyfill of future proposal for `util.parseArgs()`",
- "engines": {
- "node": ">=14"
- },
- "main": "index.js",
- "exports": {
- ".": "./index.js",
- "./package.json": "./package.json"
- },
- "scripts": {
- "coverage": "c8 --check-coverage tape 'test/*.js'",
- "test": "c8 tape 'test/*.js'",
- "posttest": "eslint .",
- "fix": "npm run posttest -- --fix"
- },
- "repository": {
- "type": "git",
- "url": "git@github.com:pkgjs/parseargs.git"
- },
- "keywords": [],
- "author": "",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/pkgjs/parseargs/issues"
- },
- "homepage": "https://github.com/pkgjs/parseargs#readme",
- "devDependencies": {
- "c8": "^7.10.0",
- "eslint": "^8.2.0",
- "eslint-plugin-node-core": "iansu/eslint-plugin-node-core",
- "tape": "^5.2.2"
- }
-}
diff --git a/website/node_modules/@pkgjs/parseargs/utils.js b/website/node_modules/@pkgjs/parseargs/utils.js
deleted file mode 100644
index d7f420a2..00000000
--- a/website/node_modules/@pkgjs/parseargs/utils.js
+++ /dev/null
@@ -1,198 +0,0 @@
-'use strict';
-
-const {
- ArrayPrototypeFind,
- ObjectEntries,
- ObjectPrototypeHasOwnProperty: ObjectHasOwn,
- StringPrototypeCharAt,
- StringPrototypeIncludes,
- StringPrototypeStartsWith,
-} = require('./internal/primordials');
-
-const {
- validateObject,
-} = require('./internal/validators');
-
-// These are internal utilities to make the parsing logic easier to read, and
-// add lots of detail for the curious. They are in a separate file to allow
-// unit testing, although that is not essential (this could be rolled into
-// main file and just tested implicitly via API).
-//
-// These routines are for internal use, not for export to client.
-
-/**
- * Return the named property, but only if it is an own property.
- */
-function objectGetOwn(obj, prop) {
- if (ObjectHasOwn(obj, prop))
- return obj[prop];
-}
-
-/**
- * Return the named options property, but only if it is an own property.
- */
-function optionsGetOwn(options, longOption, prop) {
- if (ObjectHasOwn(options, longOption))
- return objectGetOwn(options[longOption], prop);
-}
-
-/**
- * Determines if the argument may be used as an option value.
- * @example
- * isOptionValue('V') // returns true
- * isOptionValue('-v') // returns true (greedy)
- * isOptionValue('--foo') // returns true (greedy)
- * isOptionValue(undefined) // returns false
- */
-function isOptionValue(value) {
- if (value == null) return false;
-
- // Open Group Utility Conventions are that an option-argument
- // is the argument after the option, and may start with a dash.
- return true; // greedy!
-}
-
-/**
- * Detect whether there is possible confusion and user may have omitted
- * the option argument, like `--port --verbose` when `port` of type:string.
- * In strict mode we throw errors if value is option-like.
- */
-function isOptionLikeValue(value) {
- if (value == null) return false;
-
- return value.length > 1 && StringPrototypeCharAt(value, 0) === '-';
-}
-
-/**
- * Determines if `arg` is just a short option.
- * @example '-f'
- */
-function isLoneShortOption(arg) {
- return arg.length === 2 &&
- StringPrototypeCharAt(arg, 0) === '-' &&
- StringPrototypeCharAt(arg, 1) !== '-';
-}
-
-/**
- * Determines if `arg` is a lone long option.
- * @example
- * isLoneLongOption('a') // returns false
- * isLoneLongOption('-a') // returns false
- * isLoneLongOption('--foo') // returns true
- * isLoneLongOption('--foo=bar') // returns false
- */
-function isLoneLongOption(arg) {
- return arg.length > 2 &&
- StringPrototypeStartsWith(arg, '--') &&
- !StringPrototypeIncludes(arg, '=', 3);
-}
-
-/**
- * Determines if `arg` is a long option and value in the same argument.
- * @example
- * isLongOptionAndValue('--foo') // returns false
- * isLongOptionAndValue('--foo=bar') // returns true
- */
-function isLongOptionAndValue(arg) {
- return arg.length > 2 &&
- StringPrototypeStartsWith(arg, '--') &&
- StringPrototypeIncludes(arg, '=', 3);
-}
-
-/**
- * Determines if `arg` is a short option group.
- *
- * See Guideline 5 of the [Open Group Utility Conventions](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html).
- * One or more options without option-arguments, followed by at most one
- * option that takes an option-argument, should be accepted when grouped
- * behind one '-' delimiter.
- * @example
- * isShortOptionGroup('-a', {}) // returns false
- * isShortOptionGroup('-ab', {}) // returns true
- * // -fb is an option and a value, not a short option group
- * isShortOptionGroup('-fb', {
- * options: { f: { type: 'string' } }
- * }) // returns false
- * isShortOptionGroup('-bf', {
- * options: { f: { type: 'string' } }
- * }) // returns true
- * // -bfb is an edge case, return true and caller sorts it out
- * isShortOptionGroup('-bfb', {
- * options: { f: { type: 'string' } }
- * }) // returns true
- */
-function isShortOptionGroup(arg, options) {
- if (arg.length <= 2) return false;
- if (StringPrototypeCharAt(arg, 0) !== '-') return false;
- if (StringPrototypeCharAt(arg, 1) === '-') return false;
-
- const firstShort = StringPrototypeCharAt(arg, 1);
- const longOption = findLongOptionForShort(firstShort, options);
- return optionsGetOwn(options, longOption, 'type') !== 'string';
-}
-
-/**
- * Determine if arg is a short string option followed by its value.
- * @example
- * isShortOptionAndValue('-a', {}); // returns false
- * isShortOptionAndValue('-ab', {}); // returns false
- * isShortOptionAndValue('-fFILE', {
- * options: { foo: { short: 'f', type: 'string' }}
- * }) // returns true
- */
-function isShortOptionAndValue(arg, options) {
- validateObject(options, 'options');
-
- if (arg.length <= 2) return false;
- if (StringPrototypeCharAt(arg, 0) !== '-') return false;
- if (StringPrototypeCharAt(arg, 1) === '-') return false;
-
- const shortOption = StringPrototypeCharAt(arg, 1);
- const longOption = findLongOptionForShort(shortOption, options);
- return optionsGetOwn(options, longOption, 'type') === 'string';
-}
-
-/**
- * Find the long option associated with a short option. Looks for a configured
- * `short` and returns the short option itself if a long option is not found.
- * @example
- * findLongOptionForShort('a', {}) // returns 'a'
- * findLongOptionForShort('b', {
- * options: { bar: { short: 'b' } }
- * }) // returns 'bar'
- */
-function findLongOptionForShort(shortOption, options) {
- validateObject(options, 'options');
- const longOptionEntry = ArrayPrototypeFind(
- ObjectEntries(options),
- ({ 1: optionConfig }) => objectGetOwn(optionConfig, 'short') === shortOption
- );
- return longOptionEntry?.[0] ?? shortOption;
-}
-
-/**
- * Check if the given option includes a default value
- * and that option has not been set by the input args.
- *
- * @param {string} longOption - long option name e.g. 'foo'
- * @param {object} optionConfig - the option configuration properties
- * @param {object} values - option values returned in `values` by parseArgs
- */
-function useDefaultValueOption(longOption, optionConfig, values) {
- return objectGetOwn(optionConfig, 'default') !== undefined &&
- values[longOption] === undefined;
-}
-
-module.exports = {
- findLongOptionForShort,
- isLoneLongOption,
- isLoneShortOption,
- isLongOptionAndValue,
- isOptionValue,
- isOptionLikeValue,
- isShortOptionAndValue,
- isShortOptionGroup,
- useDefaultValueOption,
- objectGetOwn,
- optionsGetOwn,
-};
diff --git a/website/node_modules/@sideway/address/LICENSE.md b/website/node_modules/@sideway/address/LICENSE.md
deleted file mode 100644
index 0c6e658d..00000000
--- a/website/node_modules/@sideway/address/LICENSE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-Copyright (c) 2019-2020, Sideway, Inc. and Project contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * The names of any contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/website/node_modules/@sideway/address/README.md b/website/node_modules/@sideway/address/README.md
deleted file mode 100755
index c26895fe..00000000
--- a/website/node_modules/@sideway/address/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# @sideway/address
-
-#### Validate email address and domain.
-
-**address** is part of the **joi** ecosystem.
-
-### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support
-
-## Useful resources
-
-- [Documentation and API](https://joi.dev/module/address/)
-- [Versions status](https://joi.dev/resources/status/#address)
-- [Changelog](https://joi.dev/module/address/changelog/)
-- [Project policies](https://joi.dev/policies/)
diff --git a/website/node_modules/@sideway/address/lib/decode.js b/website/node_modules/@sideway/address/lib/decode.js
deleted file mode 100755
index 06a12369..00000000
--- a/website/node_modules/@sideway/address/lib/decode.js
+++ /dev/null
@@ -1,120 +0,0 @@
-'use strict';
-
-// Adapted from:
-// Copyright (c) 2017-2019 Justin Ridgewell, MIT Licensed, https://github.com/jridgewell/safe-decode-string-component
-// Copyright (c) 2008-2009 Bjoern Hoehrmann , MIT Licensed, http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
-
-
-const internals = {};
-
-
-exports.decode = function (string) {
-
- let percentPos = string.indexOf('%');
- if (percentPos === -1) {
- return string;
- }
-
- let decoded = '';
- let last = 0;
- let codepoint = 0;
- let startOfOctets = percentPos;
- let state = internals.utf8.accept;
-
- while (percentPos > -1 &&
- percentPos < string.length) {
-
- const high = internals.resolveHex(string[percentPos + 1], 4);
- const low = internals.resolveHex(string[percentPos + 2], 0);
- const byte = high | low;
- const type = internals.utf8.data[byte];
- state = internals.utf8.data[256 + state + type];
- codepoint = (codepoint << 6) | (byte & internals.utf8.data[364 + type]);
-
- if (state === internals.utf8.accept) {
- decoded += string.slice(last, startOfOctets);
- decoded += codepoint <= 0xFFFF
- ? String.fromCharCode(codepoint)
- : String.fromCharCode(0xD7C0 + (codepoint >> 10), 0xDC00 + (codepoint & 0x3FF));
-
- codepoint = 0;
- last = percentPos + 3;
- percentPos = string.indexOf('%', last);
- startOfOctets = percentPos;
- continue;
- }
-
- if (state === internals.utf8.reject) {
- return null;
- }
-
- percentPos += 3;
-
- if (percentPos >= string.length ||
- string[percentPos] !== '%') {
-
- return null;
- }
- }
-
- return decoded + string.slice(last);
-};
-
-
-internals.resolveHex = function (char, shift) {
-
- const i = internals.hex[char];
- return i === undefined ? 255 : i << shift;
-};
-
-
-internals.hex = {
- '0': 0, '1': 1, '2': 2, '3': 3, '4': 4,
- '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,
- 'a': 10, 'A': 10, 'b': 11, 'B': 11, 'c': 12,
- 'C': 12, 'd': 13, 'D': 13, 'e': 14, 'E': 14,
- 'f': 15, 'F': 15
-};
-
-
-internals.utf8 = {
- accept: 12,
- reject: 0,
- data: [
-
- // Maps bytes to character to a transition
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7,
- 10, 9, 9, 9, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-
- // Maps a state to a new state when adding a transition
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12, 0, 0, 0, 0, 24, 36, 48, 60, 72, 84, 96,
- 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- // Maps the current transition to a mask that needs to apply to the byte
-
- 0x7F, 0x3F, 0x3F, 0x3F, 0x00, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07
- ]
-};
diff --git a/website/node_modules/@sideway/address/lib/domain.js b/website/node_modules/@sideway/address/lib/domain.js
deleted file mode 100755
index 5b2a84e0..00000000
--- a/website/node_modules/@sideway/address/lib/domain.js
+++ /dev/null
@@ -1,123 +0,0 @@
-'use strict';
-
-const Url = require('url');
-
-const Errors = require('./errors');
-
-
-const internals = {
- minDomainSegments: 2,
- nonAsciiRx: /[^\x00-\x7f]/,
- domainControlRx: /[\x00-\x20@\:\/\\#!\$&\'\(\)\*\+,;=\?]/, // Control + space + separators
- tldSegmentRx: /^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,
- domainSegmentRx: /^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,
- URL: Url.URL || URL // $lab:coverage:ignore$
-};
-
-
-exports.analyze = function (domain, options = {}) {
-
- if (!domain) { // Catch null / undefined
- return Errors.code('DOMAIN_NON_EMPTY_STRING');
- }
-
- if (typeof domain !== 'string') {
- throw new Error('Invalid input: domain must be a string');
- }
-
- if (domain.length > 256) {
- return Errors.code('DOMAIN_TOO_LONG');
- }
-
- const ascii = !internals.nonAsciiRx.test(domain);
- if (!ascii) {
- if (options.allowUnicode === false) { // Defaults to true
- return Errors.code('DOMAIN_INVALID_UNICODE_CHARS');
- }
-
- domain = domain.normalize('NFC');
- }
-
- if (internals.domainControlRx.test(domain)) {
- return Errors.code('DOMAIN_INVALID_CHARS');
- }
-
- domain = internals.punycode(domain);
-
- // https://tools.ietf.org/html/rfc1035 section 2.3.1
-
- if (options.allowFullyQualified &&
- domain[domain.length - 1] === '.') {
-
- domain = domain.slice(0, -1);
- }
-
- const minDomainSegments = options.minDomainSegments || internals.minDomainSegments;
-
- const segments = domain.split('.');
- if (segments.length < minDomainSegments) {
- return Errors.code('DOMAIN_SEGMENTS_COUNT');
- }
-
- if (options.maxDomainSegments) {
- if (segments.length > options.maxDomainSegments) {
- return Errors.code('DOMAIN_SEGMENTS_COUNT_MAX');
- }
- }
-
- const tlds = options.tlds;
- if (tlds) {
- const tld = segments[segments.length - 1].toLowerCase();
- if (tlds.deny && tlds.deny.has(tld) ||
- tlds.allow && !tlds.allow.has(tld)) {
-
- return Errors.code('DOMAIN_FORBIDDEN_TLDS');
- }
- }
-
- for (let i = 0; i < segments.length; ++i) {
- const segment = segments[i];
-
- if (!segment.length) {
- return Errors.code('DOMAIN_EMPTY_SEGMENT');
- }
-
- if (segment.length > 63) {
- return Errors.code('DOMAIN_LONG_SEGMENT');
- }
-
- if (i < segments.length - 1) {
- if (!internals.domainSegmentRx.test(segment)) {
- return Errors.code('DOMAIN_INVALID_CHARS');
- }
- }
- else {
- if (!internals.tldSegmentRx.test(segment)) {
- return Errors.code('DOMAIN_INVALID_TLDS_CHARS');
- }
- }
- }
-
- return null;
-};
-
-
-exports.isValid = function (domain, options) {
-
- return !exports.analyze(domain, options);
-};
-
-
-internals.punycode = function (domain) {
-
- if (domain.includes('%')) {
- domain = domain.replace(/%/g, '%25');
- }
-
- try {
- return new internals.URL(`http://${domain}`).host;
- }
- catch (err) {
- return domain;
- }
-};
diff --git a/website/node_modules/@sideway/address/lib/email.js b/website/node_modules/@sideway/address/lib/email.js
deleted file mode 100755
index 8343ab7e..00000000
--- a/website/node_modules/@sideway/address/lib/email.js
+++ /dev/null
@@ -1,170 +0,0 @@
-'use strict';
-
-const Util = require('util');
-
-const Domain = require('./domain');
-const Errors = require('./errors');
-
-
-const internals = {
- nonAsciiRx: /[^\x00-\x7f]/,
- encoder: new (Util.TextEncoder || TextEncoder)() // $lab:coverage:ignore$
-};
-
-
-exports.analyze = function (email, options) {
-
- return internals.email(email, options);
-};
-
-
-exports.isValid = function (email, options) {
-
- return !internals.email(email, options);
-};
-
-
-internals.email = function (email, options = {}) {
-
- if (typeof email !== 'string') {
- throw new Error('Invalid input: email must be a string');
- }
-
- if (!email) {
- return Errors.code('EMPTY_STRING');
- }
-
- // Unicode
-
- const ascii = !internals.nonAsciiRx.test(email);
- if (!ascii) {
- if (options.allowUnicode === false) { // Defaults to true
- return Errors.code('FORBIDDEN_UNICODE');
- }
-
- email = email.normalize('NFC');
- }
-
- // Basic structure
-
- const parts = email.split('@');
- if (parts.length !== 2) {
- return parts.length > 2 ? Errors.code('MULTIPLE_AT_CHAR') : Errors.code('MISSING_AT_CHAR');
- }
-
- const [local, domain] = parts;
-
- if (!local) {
- return Errors.code('EMPTY_LOCAL');
- }
-
- if (!options.ignoreLength) {
- if (email.length > 254) { // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3
- return Errors.code('ADDRESS_TOO_LONG');
- }
-
- if (internals.encoder.encode(local).length > 64) { // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1
- return Errors.code('LOCAL_TOO_LONG');
- }
- }
-
- // Validate parts
-
- return internals.local(local, ascii) || Domain.analyze(domain, options);
-};
-
-
-internals.local = function (local, ascii) {
-
- const segments = local.split('.');
- for (const segment of segments) {
- if (!segment.length) {
- return Errors.code('EMPTY_LOCAL_SEGMENT');
- }
-
- if (ascii) {
- if (!internals.atextRx.test(segment)) {
- return Errors.code('INVALID_LOCAL_CHARS');
- }
-
- continue;
- }
-
- for (const char of segment) {
- if (internals.atextRx.test(char)) {
- continue;
- }
-
- const binary = internals.binary(char);
- if (!internals.atomRx.test(binary)) {
- return Errors.code('INVALID_LOCAL_CHARS');
- }
- }
- }
-};
-
-
-internals.binary = function (char) {
-
- return Array.from(internals.encoder.encode(char)).map((v) => String.fromCharCode(v)).join('');
-};
-
-
-/*
- From RFC 5321:
-
- Mailbox = Local-part "@" ( Domain / address-literal )
-
- Local-part = Dot-string / Quoted-string
- Dot-string = Atom *("." Atom)
- Atom = 1*atext
- atext = ALPHA / DIGIT / "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~"
-
- Domain = sub-domain *("." sub-domain)
- sub-domain = Let-dig [Ldh-str]
- Let-dig = ALPHA / DIGIT
- Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig
-
- ALPHA = %x41-5A / %x61-7A ; a-z, A-Z
- DIGIT = %x30-39 ; 0-9
-
- From RFC 6531:
-
- sub-domain =/ U-label
- atext =/ UTF8-non-ascii
-
- UTF8-non-ascii = UTF8-2 / UTF8-3 / UTF8-4
-
- UTF8-2 = %xC2-DF UTF8-tail
- UTF8-3 = %xE0 %xA0-BF UTF8-tail /
- %xE1-EC 2( UTF8-tail ) /
- %xED %x80-9F UTF8-tail /
- %xEE-EF 2( UTF8-tail )
- UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) /
- %xF1-F3 3( UTF8-tail ) /
- %xF4 %x80-8F 2( UTF8-tail )
-
- UTF8-tail = %x80-BF
-
- Note: The following are not supported:
-
- RFC 5321: address-literal, Quoted-string
- RFC 5322: obs-*, CFWS
-*/
-
-
-internals.atextRx = /^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/; // _ included in \w
-
-
-internals.atomRx = new RegExp([
-
- // %xC2-DF UTF8-tail
- '(?:[\\xc2-\\xdf][\\x80-\\xbf])',
-
- // %xE0 %xA0-BF UTF8-tail %xE1-EC 2( UTF8-tail ) %xED %x80-9F UTF8-tail %xEE-EF 2( UTF8-tail )
- '(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})',
-
- // %xF0 %x90-BF 2( UTF8-tail ) %xF1-F3 3( UTF8-tail ) %xF4 %x80-8F 2( UTF8-tail )
- '(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})'
-
-].join('|'));
diff --git a/website/node_modules/@sideway/address/lib/errors.js b/website/node_modules/@sideway/address/lib/errors.js
deleted file mode 100755
index 001dd106..00000000
--- a/website/node_modules/@sideway/address/lib/errors.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-exports.codes = {
- EMPTY_STRING: 'Address must be a non-empty string',
- FORBIDDEN_UNICODE: 'Address contains forbidden Unicode characters',
- MULTIPLE_AT_CHAR: 'Address cannot contain more than one @ character',
- MISSING_AT_CHAR: 'Address must contain one @ character',
- EMPTY_LOCAL: 'Address local part cannot be empty',
- ADDRESS_TOO_LONG: 'Address too long',
- LOCAL_TOO_LONG: 'Address local part too long',
- EMPTY_LOCAL_SEGMENT: 'Address local part contains empty dot-separated segment',
- INVALID_LOCAL_CHARS: 'Address local part contains invalid character',
- DOMAIN_NON_EMPTY_STRING: 'Domain must be a non-empty string',
- DOMAIN_TOO_LONG: 'Domain too long',
- DOMAIN_INVALID_UNICODE_CHARS: 'Domain contains forbidden Unicode characters',
- DOMAIN_INVALID_CHARS: 'Domain contains invalid character',
- DOMAIN_INVALID_TLDS_CHARS: 'Domain contains invalid tld character',
- DOMAIN_SEGMENTS_COUNT: 'Domain lacks the minimum required number of segments',
- DOMAIN_SEGMENTS_COUNT_MAX: 'Domain contains too many segments',
- DOMAIN_FORBIDDEN_TLDS: 'Domain uses forbidden TLD',
- DOMAIN_EMPTY_SEGMENT: 'Domain contains empty dot-separated segment',
- DOMAIN_LONG_SEGMENT: 'Domain contains dot-separated segment that is too long'
-};
-
-
-exports.code = function (code) {
-
- return { code, error: exports.codes[code] };
-};
diff --git a/website/node_modules/@sideway/address/lib/index.d.ts b/website/node_modules/@sideway/address/lib/index.d.ts
deleted file mode 100755
index a533d737..00000000
--- a/website/node_modules/@sideway/address/lib/index.d.ts
+++ /dev/null
@@ -1,255 +0,0 @@
-///
-
-import * as Hoek from '@hapi/hoek';
-
-
-export namespace domain {
-
- /**
- * Analyzes a string to verify it is a valid domain name.
- *
- * @param domain - the domain name to validate.
- * @param options - optional settings.
- *
- * @return - undefined when valid, otherwise an object with single error key with a string message value.
- */
- function analyze(domain: string, options?: Options): Analysis | null;
-
- /**
- * Analyzes a string to verify it is a valid domain name.
- *
- * @param domain - the domain name to validate.
- * @param options - optional settings.
- *
- * @return - true when valid, otherwise false.
- */
- function isValid(domain: string, options?: Options): boolean;
-
- interface Options {
-
- /**
- * Determines whether Unicode characters are allowed.
- *
- * @default true
- */
- readonly allowUnicode?: boolean;
-
- /**
- * The minimum number of domain segments (e.g. `x.y.z` has 3 segments) required.
- *
- * @default 2
- */
- readonly minDomainSegments?: number;
-
- /**
- * Top-level-domain options
- *
- * @default true
- */
- readonly tlds?: Tlds.Allow | Tlds.Deny | boolean;
- }
-
- namespace Tlds {
-
- interface Allow {
-
- readonly allow: Set | true;
- }
-
- interface Deny {
-
- readonly deny: Set;
- }
- }
-}
-
-
-export namespace email {
-
- /**
- * Analyzes a string to verify it is a valid email address.
- *
- * @param email - the email address to validate.
- * @param options - optional settings.
- *
- * @return - undefined when valid, otherwise an object with single error key with a string message value.
- */
- function analyze(email: string, options?: Options): Analysis | null;
-
- /**
- * Analyzes a string to verify it is a valid email address.
- *
- * @param email - the email address to validate.
- * @param options - optional settings.
- *
- * @return - true when valid, otherwise false.
- */
- function isValid(email: string, options?: Options): boolean;
-
- interface Options extends domain.Options {
-
- /**
- * Determines whether to ignore the standards maximum email length limit.
- *
- * @default false
- */
- readonly ignoreLength?: boolean;
- }
-}
-
-
-export interface Analysis {
-
- /**
- * The reason validation failed.
- */
- error: string;
-
- /**
- * The error code.
- */
- code: string;
-}
-
-
-export const errors: Record;
-
-
-export namespace ip {
-
- /**
- * Generates a regular expression used to validate IP addresses.
- *
- * @param options - optional settings.
- *
- * @returns an object with the regular expression and meta data.
- */
- function regex(options?: Options): Expression;
-
- interface Options {
-
- /**
- * The required CIDR mode.
- *
- * @default 'optional'
- */
- readonly cidr?: Cidr;
-
- /**
- * The allowed versions.
- *
- * @default ['ipv4', 'ipv6', 'ipvfuture']
- */
- readonly version?: Version | Version[];
- }
-
- type Cidr = 'optional' | 'required' | 'forbidden';
- type Version = 'ipv4' | 'ipv6' | 'ipvfuture';
-
- interface Expression {
-
- /**
- * The CIDR mode.
- */
- cidr: Cidr;
-
- /**
- * The raw regular expression string.
- */
- raw: string;
-
- /**
- * The regular expression.
- */
- regex: RegExp;
-
- /**
- * The array of versions allowed.
- */
- versions: Version[];
- }
-}
-
-
-export namespace uri {
-
- /**
- * Faster version of decodeURIComponent() that does not throw.
- *
- * @param string - the URL string to decode.
- *
- * @returns the decoded string or null if invalid.
- */
- function decode(string: string): string | null;
-
- /**
- * Generates a regular expression used to validate URI addresses.
- *
- * @param options - optional settings.
- *
- * @returns an object with the regular expression and meta data.
- */
- function regex(options?: Options): Expression;
-
- type Options = Hoek.ts.XOR;
-
- namespace Options {
-
- interface Query {
-
- /**
- * Allow the use of [] in query parameters.
- *
- * @default false
- */
- readonly allowQuerySquareBrackets?: boolean;
- }
-
- interface Relative extends Query {
-
- /**
- * Requires the URI to be relative.
- *
- * @default false
- */
- readonly relativeOnly?: boolean;
- }
-
- interface Options extends Query {
-
- /**
- * Allow relative URIs.
- *
- * @default false
- */
- readonly allowRelative?: boolean;
-
- /**
- * Capture domain segment ($1).
- *
- * @default false
- */
- readonly domain?: boolean;
-
- /**
- * The allowed URI schemes.
- */
- readonly scheme?: Scheme | Scheme[];
- }
-
- type Scheme = string | RegExp;
- }
-
- interface Expression {
-
- /**
- * The raw regular expression string.
- */
- raw: string;
-
- /**
- * The regular expression.
- */
- regex: RegExp;
- }
-}
diff --git a/website/node_modules/@sideway/address/lib/index.js b/website/node_modules/@sideway/address/lib/index.js
deleted file mode 100755
index b93a9c5c..00000000
--- a/website/node_modules/@sideway/address/lib/index.js
+++ /dev/null
@@ -1,97 +0,0 @@
-'use strict';
-
-const Decode = require('./decode');
-const Domain = require('./domain');
-const Email = require('./email');
-const Errors = require('./errors');
-const Ip = require('./ip');
-const Tlds = require('./tlds');
-const Uri = require('./uri');
-
-
-const internals = {
- defaultTlds: { allow: Tlds, deny: null }
-};
-
-
-module.exports = {
- errors: Errors.codes,
-
- domain: {
- analyze(domain, options) {
-
- options = internals.options(options);
- return Domain.analyze(domain, options);
- },
-
- isValid(domain, options) {
-
- options = internals.options(options);
- return Domain.isValid(domain, options);
- }
- },
- email: {
- analyze(email, options) {
-
- options = internals.options(options);
- return Email.analyze(email, options);
- },
-
- isValid(email, options) {
-
- options = internals.options(options);
- return Email.isValid(email, options);
- }
- },
- ip: {
- regex: Ip.regex
- },
- uri: {
- decode: Decode.decode,
- regex: Uri.regex
- }
-};
-
-
-internals.options = function (options) {
-
- if (!options) {
- return { tlds: internals.defaultTlds };
- }
-
- if (options.tlds === false) { // Defaults to true
- return options;
- }
-
- if (!options.tlds ||
- options.tlds === true) {
-
- return Object.assign({}, options, { tlds: internals.defaultTlds });
- }
-
- if (typeof options.tlds !== 'object') {
- throw new Error('Invalid options: tlds must be a boolean or an object');
- }
-
- if (options.tlds.deny) {
- if (options.tlds.deny instanceof Set === false) {
- throw new Error('Invalid options: tlds.deny must be a Set object');
- }
-
- if (options.tlds.allow) {
- throw new Error('Invalid options: cannot specify both tlds.allow and tlds.deny lists');
- }
-
- return options;
- }
-
- if (options.tlds.allow === true) {
- return Object.assign({}, options, { tlds: internals.defaultTlds });
- }
-
- if (options.tlds.allow instanceof Set === false) {
- throw new Error('Invalid options: tlds.allow must be a Set object or true');
- }
-
- return options;
-};
diff --git a/website/node_modules/@sideway/address/lib/ip.js b/website/node_modules/@sideway/address/lib/ip.js
deleted file mode 100755
index 541b72cc..00000000
--- a/website/node_modules/@sideway/address/lib/ip.js
+++ /dev/null
@@ -1,63 +0,0 @@
-'use strict';
-
-const Assert = require('@hapi/hoek/lib/assert');
-
-const Uri = require('./uri');
-
-
-const internals = {};
-
-
-exports.regex = function (options = {}) {
-
- // CIDR
-
- Assert(options.cidr === undefined || typeof options.cidr === 'string', 'options.cidr must be a string');
- const cidr = options.cidr ? options.cidr.toLowerCase() : 'optional';
- Assert(['required', 'optional', 'forbidden'].includes(cidr), 'options.cidr must be one of required, optional, forbidden');
-
- // Versions
-
- Assert(options.version === undefined || typeof options.version === 'string' || Array.isArray(options.version), 'options.version must be a string or an array of string');
- let versions = options.version || ['ipv4', 'ipv6', 'ipvfuture'];
- if (!Array.isArray(versions)) {
- versions = [versions];
- }
-
- Assert(versions.length >= 1, 'options.version must have at least 1 version specified');
-
- for (let i = 0; i < versions.length; ++i) {
- Assert(typeof versions[i] === 'string', 'options.version must only contain strings');
- versions[i] = versions[i].toLowerCase();
- Assert(['ipv4', 'ipv6', 'ipvfuture'].includes(versions[i]), 'options.version contains unknown version ' + versions[i] + ' - must be one of ipv4, ipv6, ipvfuture');
- }
-
- versions = Array.from(new Set(versions));
-
- // Regex
-
- const parts = versions.map((version) => {
-
- // Forbidden
-
- if (cidr === 'forbidden') {
- return Uri.ip[version];
- }
-
- // Required
-
- const cidrpart = `\\/${version === 'ipv4' ? Uri.ip.v4Cidr : Uri.ip.v6Cidr}`;
-
- if (cidr === 'required') {
- return `${Uri.ip[version]}${cidrpart}`;
- }
-
- // Optional
-
- return `${Uri.ip[version]}(?:${cidrpart})?`;
- });
-
- const raw = `(?:${parts.join('|')})`;
- const regex = new RegExp(`^${raw}$`);
- return { cidr, versions, regex, raw };
-};
diff --git a/website/node_modules/@sideway/address/lib/tlds.js b/website/node_modules/@sideway/address/lib/tlds.js
deleted file mode 100755
index 6afa1c73..00000000
--- a/website/node_modules/@sideway/address/lib/tlds.js
+++ /dev/null
@@ -1,1468 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-// http://data.iana.org/TLD/tlds-alpha-by-domain.txt
-// # Version 2024012900, Last Updated Mon Jan 29 07:07:01 2024 UTC
-
-
-internals.tlds = [
- 'AAA',
- 'AARP',
- 'ABB',
- 'ABBOTT',
- 'ABBVIE',
- 'ABC',
- 'ABLE',
- 'ABOGADO',
- 'ABUDHABI',
- 'AC',
- 'ACADEMY',
- 'ACCENTURE',
- 'ACCOUNTANT',
- 'ACCOUNTANTS',
- 'ACO',
- 'ACTOR',
- 'AD',
- 'ADS',
- 'ADULT',
- 'AE',
- 'AEG',
- 'AERO',
- 'AETNA',
- 'AF',
- 'AFL',
- 'AFRICA',
- 'AG',
- 'AGAKHAN',
- 'AGENCY',
- 'AI',
- 'AIG',
- 'AIRBUS',
- 'AIRFORCE',
- 'AIRTEL',
- 'AKDN',
- 'AL',
- 'ALIBABA',
- 'ALIPAY',
- 'ALLFINANZ',
- 'ALLSTATE',
- 'ALLY',
- 'ALSACE',
- 'ALSTOM',
- 'AM',
- 'AMAZON',
- 'AMERICANEXPRESS',
- 'AMERICANFAMILY',
- 'AMEX',
- 'AMFAM',
- 'AMICA',
- 'AMSTERDAM',
- 'ANALYTICS',
- 'ANDROID',
- 'ANQUAN',
- 'ANZ',
- 'AO',
- 'AOL',
- 'APARTMENTS',
- 'APP',
- 'APPLE',
- 'AQ',
- 'AQUARELLE',
- 'AR',
- 'ARAB',
- 'ARAMCO',
- 'ARCHI',
- 'ARMY',
- 'ARPA',
- 'ART',
- 'ARTE',
- 'AS',
- 'ASDA',
- 'ASIA',
- 'ASSOCIATES',
- 'AT',
- 'ATHLETA',
- 'ATTORNEY',
- 'AU',
- 'AUCTION',
- 'AUDI',
- 'AUDIBLE',
- 'AUDIO',
- 'AUSPOST',
- 'AUTHOR',
- 'AUTO',
- 'AUTOS',
- 'AVIANCA',
- 'AW',
- 'AWS',
- 'AX',
- 'AXA',
- 'AZ',
- 'AZURE',
- 'BA',
- 'BABY',
- 'BAIDU',
- 'BANAMEX',
- 'BAND',
- 'BANK',
- 'BAR',
- 'BARCELONA',
- 'BARCLAYCARD',
- 'BARCLAYS',
- 'BAREFOOT',
- 'BARGAINS',
- 'BASEBALL',
- 'BASKETBALL',
- 'BAUHAUS',
- 'BAYERN',
- 'BB',
- 'BBC',
- 'BBT',
- 'BBVA',
- 'BCG',
- 'BCN',
- 'BD',
- 'BE',
- 'BEATS',
- 'BEAUTY',
- 'BEER',
- 'BENTLEY',
- 'BERLIN',
- 'BEST',
- 'BESTBUY',
- 'BET',
- 'BF',
- 'BG',
- 'BH',
- 'BHARTI',
- 'BI',
- 'BIBLE',
- 'BID',
- 'BIKE',
- 'BING',
- 'BINGO',
- 'BIO',
- 'BIZ',
- 'BJ',
- 'BLACK',
- 'BLACKFRIDAY',
- 'BLOCKBUSTER',
- 'BLOG',
- 'BLOOMBERG',
- 'BLUE',
- 'BM',
- 'BMS',
- 'BMW',
- 'BN',
- 'BNPPARIBAS',
- 'BO',
- 'BOATS',
- 'BOEHRINGER',
- 'BOFA',
- 'BOM',
- 'BOND',
- 'BOO',
- 'BOOK',
- 'BOOKING',
- 'BOSCH',
- 'BOSTIK',
- 'BOSTON',
- 'BOT',
- 'BOUTIQUE',
- 'BOX',
- 'BR',
- 'BRADESCO',
- 'BRIDGESTONE',
- 'BROADWAY',
- 'BROKER',
- 'BROTHER',
- 'BRUSSELS',
- 'BS',
- 'BT',
- 'BUILD',
- 'BUILDERS',
- 'BUSINESS',
- 'BUY',
- 'BUZZ',
- 'BV',
- 'BW',
- 'BY',
- 'BZ',
- 'BZH',
- 'CA',
- 'CAB',
- 'CAFE',
- 'CAL',
- 'CALL',
- 'CALVINKLEIN',
- 'CAM',
- 'CAMERA',
- 'CAMP',
- 'CANON',
- 'CAPETOWN',
- 'CAPITAL',
- 'CAPITALONE',
- 'CAR',
- 'CARAVAN',
- 'CARDS',
- 'CARE',
- 'CAREER',
- 'CAREERS',
- 'CARS',
- 'CASA',
- 'CASE',
- 'CASH',
- 'CASINO',
- 'CAT',
- 'CATERING',
- 'CATHOLIC',
- 'CBA',
- 'CBN',
- 'CBRE',
- 'CC',
- 'CD',
- 'CENTER',
- 'CEO',
- 'CERN',
- 'CF',
- 'CFA',
- 'CFD',
- 'CG',
- 'CH',
- 'CHANEL',
- 'CHANNEL',
- 'CHARITY',
- 'CHASE',
- 'CHAT',
- 'CHEAP',
- 'CHINTAI',
- 'CHRISTMAS',
- 'CHROME',
- 'CHURCH',
- 'CI',
- 'CIPRIANI',
- 'CIRCLE',
- 'CISCO',
- 'CITADEL',
- 'CITI',
- 'CITIC',
- 'CITY',
- 'CK',
- 'CL',
- 'CLAIMS',
- 'CLEANING',
- 'CLICK',
- 'CLINIC',
- 'CLINIQUE',
- 'CLOTHING',
- 'CLOUD',
- 'CLUB',
- 'CLUBMED',
- 'CM',
- 'CN',
- 'CO',
- 'COACH',
- 'CODES',
- 'COFFEE',
- 'COLLEGE',
- 'COLOGNE',
- 'COM',
- 'COMCAST',
- 'COMMBANK',
- 'COMMUNITY',
- 'COMPANY',
- 'COMPARE',
- 'COMPUTER',
- 'COMSEC',
- 'CONDOS',
- 'CONSTRUCTION',
- 'CONSULTING',
- 'CONTACT',
- 'CONTRACTORS',
- 'COOKING',
- 'COOL',
- 'COOP',
- 'CORSICA',
- 'COUNTRY',
- 'COUPON',
- 'COUPONS',
- 'COURSES',
- 'CPA',
- 'CR',
- 'CREDIT',
- 'CREDITCARD',
- 'CREDITUNION',
- 'CRICKET',
- 'CROWN',
- 'CRS',
- 'CRUISE',
- 'CRUISES',
- 'CU',
- 'CUISINELLA',
- 'CV',
- 'CW',
- 'CX',
- 'CY',
- 'CYMRU',
- 'CYOU',
- 'CZ',
- 'DABUR',
- 'DAD',
- 'DANCE',
- 'DATA',
- 'DATE',
- 'DATING',
- 'DATSUN',
- 'DAY',
- 'DCLK',
- 'DDS',
- 'DE',
- 'DEAL',
- 'DEALER',
- 'DEALS',
- 'DEGREE',
- 'DELIVERY',
- 'DELL',
- 'DELOITTE',
- 'DELTA',
- 'DEMOCRAT',
- 'DENTAL',
- 'DENTIST',
- 'DESI',
- 'DESIGN',
- 'DEV',
- 'DHL',
- 'DIAMONDS',
- 'DIET',
- 'DIGITAL',
- 'DIRECT',
- 'DIRECTORY',
- 'DISCOUNT',
- 'DISCOVER',
- 'DISH',
- 'DIY',
- 'DJ',
- 'DK',
- 'DM',
- 'DNP',
- 'DO',
- 'DOCS',
- 'DOCTOR',
- 'DOG',
- 'DOMAINS',
- 'DOT',
- 'DOWNLOAD',
- 'DRIVE',
- 'DTV',
- 'DUBAI',
- 'DUNLOP',
- 'DUPONT',
- 'DURBAN',
- 'DVAG',
- 'DVR',
- 'DZ',
- 'EARTH',
- 'EAT',
- 'EC',
- 'ECO',
- 'EDEKA',
- 'EDU',
- 'EDUCATION',
- 'EE',
- 'EG',
- 'EMAIL',
- 'EMERCK',
- 'ENERGY',
- 'ENGINEER',
- 'ENGINEERING',
- 'ENTERPRISES',
- 'EPSON',
- 'EQUIPMENT',
- 'ER',
- 'ERICSSON',
- 'ERNI',
- 'ES',
- 'ESQ',
- 'ESTATE',
- 'ET',
- 'EU',
- 'EUROVISION',
- 'EUS',
- 'EVENTS',
- 'EXCHANGE',
- 'EXPERT',
- 'EXPOSED',
- 'EXPRESS',
- 'EXTRASPACE',
- 'FAGE',
- 'FAIL',
- 'FAIRWINDS',
- 'FAITH',
- 'FAMILY',
- 'FAN',
- 'FANS',
- 'FARM',
- 'FARMERS',
- 'FASHION',
- 'FAST',
- 'FEDEX',
- 'FEEDBACK',
- 'FERRARI',
- 'FERRERO',
- 'FI',
- 'FIDELITY',
- 'FIDO',
- 'FILM',
- 'FINAL',
- 'FINANCE',
- 'FINANCIAL',
- 'FIRE',
- 'FIRESTONE',
- 'FIRMDALE',
- 'FISH',
- 'FISHING',
- 'FIT',
- 'FITNESS',
- 'FJ',
- 'FK',
- 'FLICKR',
- 'FLIGHTS',
- 'FLIR',
- 'FLORIST',
- 'FLOWERS',
- 'FLY',
- 'FM',
- 'FO',
- 'FOO',
- 'FOOD',
- 'FOOTBALL',
- 'FORD',
- 'FOREX',
- 'FORSALE',
- 'FORUM',
- 'FOUNDATION',
- 'FOX',
- 'FR',
- 'FREE',
- 'FRESENIUS',
- 'FRL',
- 'FROGANS',
- 'FRONTIER',
- 'FTR',
- 'FUJITSU',
- 'FUN',
- 'FUND',
- 'FURNITURE',
- 'FUTBOL',
- 'FYI',
- 'GA',
- 'GAL',
- 'GALLERY',
- 'GALLO',
- 'GALLUP',
- 'GAME',
- 'GAMES',
- 'GAP',
- 'GARDEN',
- 'GAY',
- 'GB',
- 'GBIZ',
- 'GD',
- 'GDN',
- 'GE',
- 'GEA',
- 'GENT',
- 'GENTING',
- 'GEORGE',
- 'GF',
- 'GG',
- 'GGEE',
- 'GH',
- 'GI',
- 'GIFT',
- 'GIFTS',
- 'GIVES',
- 'GIVING',
- 'GL',
- 'GLASS',
- 'GLE',
- 'GLOBAL',
- 'GLOBO',
- 'GM',
- 'GMAIL',
- 'GMBH',
- 'GMO',
- 'GMX',
- 'GN',
- 'GODADDY',
- 'GOLD',
- 'GOLDPOINT',
- 'GOLF',
- 'GOO',
- 'GOODYEAR',
- 'GOOG',
- 'GOOGLE',
- 'GOP',
- 'GOT',
- 'GOV',
- 'GP',
- 'GQ',
- 'GR',
- 'GRAINGER',
- 'GRAPHICS',
- 'GRATIS',
- 'GREEN',
- 'GRIPE',
- 'GROCERY',
- 'GROUP',
- 'GS',
- 'GT',
- 'GU',
- 'GUARDIAN',
- 'GUCCI',
- 'GUGE',
- 'GUIDE',
- 'GUITARS',
- 'GURU',
- 'GW',
- 'GY',
- 'HAIR',
- 'HAMBURG',
- 'HANGOUT',
- 'HAUS',
- 'HBO',
- 'HDFC',
- 'HDFCBANK',
- 'HEALTH',
- 'HEALTHCARE',
- 'HELP',
- 'HELSINKI',
- 'HERE',
- 'HERMES',
- 'HIPHOP',
- 'HISAMITSU',
- 'HITACHI',
- 'HIV',
- 'HK',
- 'HKT',
- 'HM',
- 'HN',
- 'HOCKEY',
- 'HOLDINGS',
- 'HOLIDAY',
- 'HOMEDEPOT',
- 'HOMEGOODS',
- 'HOMES',
- 'HOMESENSE',
- 'HONDA',
- 'HORSE',
- 'HOSPITAL',
- 'HOST',
- 'HOSTING',
- 'HOT',
- 'HOTELS',
- 'HOTMAIL',
- 'HOUSE',
- 'HOW',
- 'HR',
- 'HSBC',
- 'HT',
- 'HU',
- 'HUGHES',
- 'HYATT',
- 'HYUNDAI',
- 'IBM',
- 'ICBC',
- 'ICE',
- 'ICU',
- 'ID',
- 'IE',
- 'IEEE',
- 'IFM',
- 'IKANO',
- 'IL',
- 'IM',
- 'IMAMAT',
- 'IMDB',
- 'IMMO',
- 'IMMOBILIEN',
- 'IN',
- 'INC',
- 'INDUSTRIES',
- 'INFINITI',
- 'INFO',
- 'ING',
- 'INK',
- 'INSTITUTE',
- 'INSURANCE',
- 'INSURE',
- 'INT',
- 'INTERNATIONAL',
- 'INTUIT',
- 'INVESTMENTS',
- 'IO',
- 'IPIRANGA',
- 'IQ',
- 'IR',
- 'IRISH',
- 'IS',
- 'ISMAILI',
- 'IST',
- 'ISTANBUL',
- 'IT',
- 'ITAU',
- 'ITV',
- 'JAGUAR',
- 'JAVA',
- 'JCB',
- 'JE',
- 'JEEP',
- 'JETZT',
- 'JEWELRY',
- 'JIO',
- 'JLL',
- 'JM',
- 'JMP',
- 'JNJ',
- 'JO',
- 'JOBS',
- 'JOBURG',
- 'JOT',
- 'JOY',
- 'JP',
- 'JPMORGAN',
- 'JPRS',
- 'JUEGOS',
- 'JUNIPER',
- 'KAUFEN',
- 'KDDI',
- 'KE',
- 'KERRYHOTELS',
- 'KERRYLOGISTICS',
- 'KERRYPROPERTIES',
- 'KFH',
- 'KG',
- 'KH',
- 'KI',
- 'KIA',
- 'KIDS',
- 'KIM',
- 'KINDLE',
- 'KITCHEN',
- 'KIWI',
- 'KM',
- 'KN',
- 'KOELN',
- 'KOMATSU',
- 'KOSHER',
- 'KP',
- 'KPMG',
- 'KPN',
- 'KR',
- 'KRD',
- 'KRED',
- 'KUOKGROUP',
- 'KW',
- 'KY',
- 'KYOTO',
- 'KZ',
- 'LA',
- 'LACAIXA',
- 'LAMBORGHINI',
- 'LAMER',
- 'LANCASTER',
- 'LAND',
- 'LANDROVER',
- 'LANXESS',
- 'LASALLE',
- 'LAT',
- 'LATINO',
- 'LATROBE',
- 'LAW',
- 'LAWYER',
- 'LB',
- 'LC',
- 'LDS',
- 'LEASE',
- 'LECLERC',
- 'LEFRAK',
- 'LEGAL',
- 'LEGO',
- 'LEXUS',
- 'LGBT',
- 'LI',
- 'LIDL',
- 'LIFE',
- 'LIFEINSURANCE',
- 'LIFESTYLE',
- 'LIGHTING',
- 'LIKE',
- 'LILLY',
- 'LIMITED',
- 'LIMO',
- 'LINCOLN',
- 'LINK',
- 'LIPSY',
- 'LIVE',
- 'LIVING',
- 'LK',
- 'LLC',
- 'LLP',
- 'LOAN',
- 'LOANS',
- 'LOCKER',
- 'LOCUS',
- 'LOL',
- 'LONDON',
- 'LOTTE',
- 'LOTTO',
- 'LOVE',
- 'LPL',
- 'LPLFINANCIAL',
- 'LR',
- 'LS',
- 'LT',
- 'LTD',
- 'LTDA',
- 'LU',
- 'LUNDBECK',
- 'LUXE',
- 'LUXURY',
- 'LV',
- 'LY',
- 'MA',
- 'MADRID',
- 'MAIF',
- 'MAISON',
- 'MAKEUP',
- 'MAN',
- 'MANAGEMENT',
- 'MANGO',
- 'MAP',
- 'MARKET',
- 'MARKETING',
- 'MARKETS',
- 'MARRIOTT',
- 'MARSHALLS',
- 'MATTEL',
- 'MBA',
- 'MC',
- 'MCKINSEY',
- 'MD',
- 'ME',
- 'MED',
- 'MEDIA',
- 'MEET',
- 'MELBOURNE',
- 'MEME',
- 'MEMORIAL',
- 'MEN',
- 'MENU',
- 'MERCKMSD',
- 'MG',
- 'MH',
- 'MIAMI',
- 'MICROSOFT',
- 'MIL',
- 'MINI',
- 'MINT',
- 'MIT',
- 'MITSUBISHI',
- 'MK',
- 'ML',
- 'MLB',
- 'MLS',
- 'MM',
- 'MMA',
- 'MN',
- 'MO',
- 'MOBI',
- 'MOBILE',
- 'MODA',
- 'MOE',
- 'MOI',
- 'MOM',
- 'MONASH',
- 'MONEY',
- 'MONSTER',
- 'MORMON',
- 'MORTGAGE',
- 'MOSCOW',
- 'MOTO',
- 'MOTORCYCLES',
- 'MOV',
- 'MOVIE',
- 'MP',
- 'MQ',
- 'MR',
- 'MS',
- 'MSD',
- 'MT',
- 'MTN',
- 'MTR',
- 'MU',
- 'MUSEUM',
- 'MUSIC',
- 'MV',
- 'MW',
- 'MX',
- 'MY',
- 'MZ',
- 'NA',
- 'NAB',
- 'NAGOYA',
- 'NAME',
- 'NATURA',
- 'NAVY',
- 'NBA',
- 'NC',
- 'NE',
- 'NEC',
- 'NET',
- 'NETBANK',
- 'NETFLIX',
- 'NETWORK',
- 'NEUSTAR',
- 'NEW',
- 'NEWS',
- 'NEXT',
- 'NEXTDIRECT',
- 'NEXUS',
- 'NF',
- 'NFL',
- 'NG',
- 'NGO',
- 'NHK',
- 'NI',
- 'NICO',
- 'NIKE',
- 'NIKON',
- 'NINJA',
- 'NISSAN',
- 'NISSAY',
- 'NL',
- 'NO',
- 'NOKIA',
- 'NORTON',
- 'NOW',
- 'NOWRUZ',
- 'NOWTV',
- 'NP',
- 'NR',
- 'NRA',
- 'NRW',
- 'NTT',
- 'NU',
- 'NYC',
- 'NZ',
- 'OBI',
- 'OBSERVER',
- 'OFFICE',
- 'OKINAWA',
- 'OLAYAN',
- 'OLAYANGROUP',
- 'OLLO',
- 'OM',
- 'OMEGA',
- 'ONE',
- 'ONG',
- 'ONL',
- 'ONLINE',
- 'OOO',
- 'OPEN',
- 'ORACLE',
- 'ORANGE',
- 'ORG',
- 'ORGANIC',
- 'ORIGINS',
- 'OSAKA',
- 'OTSUKA',
- 'OTT',
- 'OVH',
- 'PA',
- 'PAGE',
- 'PANASONIC',
- 'PARIS',
- 'PARS',
- 'PARTNERS',
- 'PARTS',
- 'PARTY',
- 'PAY',
- 'PCCW',
- 'PE',
- 'PET',
- 'PF',
- 'PFIZER',
- 'PG',
- 'PH',
- 'PHARMACY',
- 'PHD',
- 'PHILIPS',
- 'PHONE',
- 'PHOTO',
- 'PHOTOGRAPHY',
- 'PHOTOS',
- 'PHYSIO',
- 'PICS',
- 'PICTET',
- 'PICTURES',
- 'PID',
- 'PIN',
- 'PING',
- 'PINK',
- 'PIONEER',
- 'PIZZA',
- 'PK',
- 'PL',
- 'PLACE',
- 'PLAY',
- 'PLAYSTATION',
- 'PLUMBING',
- 'PLUS',
- 'PM',
- 'PN',
- 'PNC',
- 'POHL',
- 'POKER',
- 'POLITIE',
- 'PORN',
- 'POST',
- 'PR',
- 'PRAMERICA',
- 'PRAXI',
- 'PRESS',
- 'PRIME',
- 'PRO',
- 'PROD',
- 'PRODUCTIONS',
- 'PROF',
- 'PROGRESSIVE',
- 'PROMO',
- 'PROPERTIES',
- 'PROPERTY',
- 'PROTECTION',
- 'PRU',
- 'PRUDENTIAL',
- 'PS',
- 'PT',
- 'PUB',
- 'PW',
- 'PWC',
- 'PY',
- 'QA',
- 'QPON',
- 'QUEBEC',
- 'QUEST',
- 'RACING',
- 'RADIO',
- 'RE',
- 'READ',
- 'REALESTATE',
- 'REALTOR',
- 'REALTY',
- 'RECIPES',
- 'RED',
- 'REDSTONE',
- 'REDUMBRELLA',
- 'REHAB',
- 'REISE',
- 'REISEN',
- 'REIT',
- 'RELIANCE',
- 'REN',
- 'RENT',
- 'RENTALS',
- 'REPAIR',
- 'REPORT',
- 'REPUBLICAN',
- 'REST',
- 'RESTAURANT',
- 'REVIEW',
- 'REVIEWS',
- 'REXROTH',
- 'RICH',
- 'RICHARDLI',
- 'RICOH',
- 'RIL',
- 'RIO',
- 'RIP',
- 'RO',
- 'ROCKS',
- 'RODEO',
- 'ROGERS',
- 'ROOM',
- 'RS',
- 'RSVP',
- 'RU',
- 'RUGBY',
- 'RUHR',
- 'RUN',
- 'RW',
- 'RWE',
- 'RYUKYU',
- 'SA',
- 'SAARLAND',
- 'SAFE',
- 'SAFETY',
- 'SAKURA',
- 'SALE',
- 'SALON',
- 'SAMSCLUB',
- 'SAMSUNG',
- 'SANDVIK',
- 'SANDVIKCOROMANT',
- 'SANOFI',
- 'SAP',
- 'SARL',
- 'SAS',
- 'SAVE',
- 'SAXO',
- 'SB',
- 'SBI',
- 'SBS',
- 'SC',
- 'SCB',
- 'SCHAEFFLER',
- 'SCHMIDT',
- 'SCHOLARSHIPS',
- 'SCHOOL',
- 'SCHULE',
- 'SCHWARZ',
- 'SCIENCE',
- 'SCOT',
- 'SD',
- 'SE',
- 'SEARCH',
- 'SEAT',
- 'SECURE',
- 'SECURITY',
- 'SEEK',
- 'SELECT',
- 'SENER',
- 'SERVICES',
- 'SEVEN',
- 'SEW',
- 'SEX',
- 'SEXY',
- 'SFR',
- 'SG',
- 'SH',
- 'SHANGRILA',
- 'SHARP',
- 'SHAW',
- 'SHELL',
- 'SHIA',
- 'SHIKSHA',
- 'SHOES',
- 'SHOP',
- 'SHOPPING',
- 'SHOUJI',
- 'SHOW',
- 'SI',
- 'SILK',
- 'SINA',
- 'SINGLES',
- 'SITE',
- 'SJ',
- 'SK',
- 'SKI',
- 'SKIN',
- 'SKY',
- 'SKYPE',
- 'SL',
- 'SLING',
- 'SM',
- 'SMART',
- 'SMILE',
- 'SN',
- 'SNCF',
- 'SO',
- 'SOCCER',
- 'SOCIAL',
- 'SOFTBANK',
- 'SOFTWARE',
- 'SOHU',
- 'SOLAR',
- 'SOLUTIONS',
- 'SONG',
- 'SONY',
- 'SOY',
- 'SPA',
- 'SPACE',
- 'SPORT',
- 'SPOT',
- 'SR',
- 'SRL',
- 'SS',
- 'ST',
- 'STADA',
- 'STAPLES',
- 'STAR',
- 'STATEBANK',
- 'STATEFARM',
- 'STC',
- 'STCGROUP',
- 'STOCKHOLM',
- 'STORAGE',
- 'STORE',
- 'STREAM',
- 'STUDIO',
- 'STUDY',
- 'STYLE',
- 'SU',
- 'SUCKS',
- 'SUPPLIES',
- 'SUPPLY',
- 'SUPPORT',
- 'SURF',
- 'SURGERY',
- 'SUZUKI',
- 'SV',
- 'SWATCH',
- 'SWISS',
- 'SX',
- 'SY',
- 'SYDNEY',
- 'SYSTEMS',
- 'SZ',
- 'TAB',
- 'TAIPEI',
- 'TALK',
- 'TAOBAO',
- 'TARGET',
- 'TATAMOTORS',
- 'TATAR',
- 'TATTOO',
- 'TAX',
- 'TAXI',
- 'TC',
- 'TCI',
- 'TD',
- 'TDK',
- 'TEAM',
- 'TECH',
- 'TECHNOLOGY',
- 'TEL',
- 'TEMASEK',
- 'TENNIS',
- 'TEVA',
- 'TF',
- 'TG',
- 'TH',
- 'THD',
- 'THEATER',
- 'THEATRE',
- 'TIAA',
- 'TICKETS',
- 'TIENDA',
- 'TIPS',
- 'TIRES',
- 'TIROL',
- 'TJ',
- 'TJMAXX',
- 'TJX',
- 'TK',
- 'TKMAXX',
- 'TL',
- 'TM',
- 'TMALL',
- 'TN',
- 'TO',
- 'TODAY',
- 'TOKYO',
- 'TOOLS',
- 'TOP',
- 'TORAY',
- 'TOSHIBA',
- 'TOTAL',
- 'TOURS',
- 'TOWN',
- 'TOYOTA',
- 'TOYS',
- 'TR',
- 'TRADE',
- 'TRADING',
- 'TRAINING',
- 'TRAVEL',
- 'TRAVELERS',
- 'TRAVELERSINSURANCE',
- 'TRUST',
- 'TRV',
- 'TT',
- 'TUBE',
- 'TUI',
- 'TUNES',
- 'TUSHU',
- 'TV',
- 'TVS',
- 'TW',
- 'TZ',
- 'UA',
- 'UBANK',
- 'UBS',
- 'UG',
- 'UK',
- 'UNICOM',
- 'UNIVERSITY',
- 'UNO',
- 'UOL',
- 'UPS',
- 'US',
- 'UY',
- 'UZ',
- 'VA',
- 'VACATIONS',
- 'VANA',
- 'VANGUARD',
- 'VC',
- 'VE',
- 'VEGAS',
- 'VENTURES',
- 'VERISIGN',
- 'VERSICHERUNG',
- 'VET',
- 'VG',
- 'VI',
- 'VIAJES',
- 'VIDEO',
- 'VIG',
- 'VIKING',
- 'VILLAS',
- 'VIN',
- 'VIP',
- 'VIRGIN',
- 'VISA',
- 'VISION',
- 'VIVA',
- 'VIVO',
- 'VLAANDEREN',
- 'VN',
- 'VODKA',
- 'VOLVO',
- 'VOTE',
- 'VOTING',
- 'VOTO',
- 'VOYAGE',
- 'VU',
- 'WALES',
- 'WALMART',
- 'WALTER',
- 'WANG',
- 'WANGGOU',
- 'WATCH',
- 'WATCHES',
- 'WEATHER',
- 'WEATHERCHANNEL',
- 'WEBCAM',
- 'WEBER',
- 'WEBSITE',
- 'WED',
- 'WEDDING',
- 'WEIBO',
- 'WEIR',
- 'WF',
- 'WHOSWHO',
- 'WIEN',
- 'WIKI',
- 'WILLIAMHILL',
- 'WIN',
- 'WINDOWS',
- 'WINE',
- 'WINNERS',
- 'WME',
- 'WOLTERSKLUWER',
- 'WOODSIDE',
- 'WORK',
- 'WORKS',
- 'WORLD',
- 'WOW',
- 'WS',
- 'WTC',
- 'WTF',
- 'XBOX',
- 'XEROX',
- 'XFINITY',
- 'XIHUAN',
- 'XIN',
- 'XN--11B4C3D',
- 'XN--1CK2E1B',
- 'XN--1QQW23A',
- 'XN--2SCRJ9C',
- 'XN--30RR7Y',
- 'XN--3BST00M',
- 'XN--3DS443G',
- 'XN--3E0B707E',
- 'XN--3HCRJ9C',
- 'XN--3PXU8K',
- 'XN--42C2D9A',
- 'XN--45BR5CYL',
- 'XN--45BRJ9C',
- 'XN--45Q11C',
- 'XN--4DBRK0CE',
- 'XN--4GBRIM',
- 'XN--54B7FTA0CC',
- 'XN--55QW42G',
- 'XN--55QX5D',
- 'XN--5SU34J936BGSG',
- 'XN--5TZM5G',
- 'XN--6FRZ82G',
- 'XN--6QQ986B3XL',
- 'XN--80ADXHKS',
- 'XN--80AO21A',
- 'XN--80AQECDR1A',
- 'XN--80ASEHDB',
- 'XN--80ASWG',
- 'XN--8Y0A063A',
- 'XN--90A3AC',
- 'XN--90AE',
- 'XN--90AIS',
- 'XN--9DBQ2A',
- 'XN--9ET52U',
- 'XN--9KRT00A',
- 'XN--B4W605FERD',
- 'XN--BCK1B9A5DRE4C',
- 'XN--C1AVG',
- 'XN--C2BR7G',
- 'XN--CCK2B3B',
- 'XN--CCKWCXETD',
- 'XN--CG4BKI',
- 'XN--CLCHC0EA0B2G2A9GCD',
- 'XN--CZR694B',
- 'XN--CZRS0T',
- 'XN--CZRU2D',
- 'XN--D1ACJ3B',
- 'XN--D1ALF',
- 'XN--E1A4C',
- 'XN--ECKVDTC9D',
- 'XN--EFVY88H',
- 'XN--FCT429K',
- 'XN--FHBEI',
- 'XN--FIQ228C5HS',
- 'XN--FIQ64B',
- 'XN--FIQS8S',
- 'XN--FIQZ9S',
- 'XN--FJQ720A',
- 'XN--FLW351E',
- 'XN--FPCRJ9C3D',
- 'XN--FZC2C9E2C',
- 'XN--FZYS8D69UVGM',
- 'XN--G2XX48C',
- 'XN--GCKR3F0F',
- 'XN--GECRJ9C',
- 'XN--GK3AT1E',
- 'XN--H2BREG3EVE',
- 'XN--H2BRJ9C',
- 'XN--H2BRJ9C8C',
- 'XN--HXT814E',
- 'XN--I1B6B1A6A2E',
- 'XN--IMR513N',
- 'XN--IO0A7I',
- 'XN--J1AEF',
- 'XN--J1AMH',
- 'XN--J6W193G',
- 'XN--JLQ480N2RG',
- 'XN--JVR189M',
- 'XN--KCRX77D1X4A',
- 'XN--KPRW13D',
- 'XN--KPRY57D',
- 'XN--KPUT3I',
- 'XN--L1ACC',
- 'XN--LGBBAT1AD8J',
- 'XN--MGB9AWBF',
- 'XN--MGBA3A3EJT',
- 'XN--MGBA3A4F16A',
- 'XN--MGBA7C0BBN0A',
- 'XN--MGBAAM7A8H',
- 'XN--MGBAB2BD',
- 'XN--MGBAH1A3HJKRD',
- 'XN--MGBAI9AZGQP6J',
- 'XN--MGBAYH7GPA',
- 'XN--MGBBH1A',
- 'XN--MGBBH1A71E',
- 'XN--MGBC0A9AZCG',
- 'XN--MGBCA7DZDO',
- 'XN--MGBCPQ6GPA1A',
- 'XN--MGBERP4A5D4AR',
- 'XN--MGBGU82A',
- 'XN--MGBI4ECEXP',
- 'XN--MGBPL2FH',
- 'XN--MGBT3DHD',
- 'XN--MGBTX2B',
- 'XN--MGBX4CD0AB',
- 'XN--MIX891F',
- 'XN--MK1BU44C',
- 'XN--MXTQ1M',
- 'XN--NGBC5AZD',
- 'XN--NGBE9E0A',
- 'XN--NGBRX',
- 'XN--NODE',
- 'XN--NQV7F',
- 'XN--NQV7FS00EMA',
- 'XN--NYQY26A',
- 'XN--O3CW4H',
- 'XN--OGBPF8FL',
- 'XN--OTU796D',
- 'XN--P1ACF',
- 'XN--P1AI',
- 'XN--PGBS0DH',
- 'XN--PSSY2U',
- 'XN--Q7CE6A',
- 'XN--Q9JYB4C',
- 'XN--QCKA1PMC',
- 'XN--QXA6A',
- 'XN--QXAM',
- 'XN--RHQV96G',
- 'XN--ROVU88B',
- 'XN--RVC1E0AM3E',
- 'XN--S9BRJ9C',
- 'XN--SES554G',
- 'XN--T60B56A',
- 'XN--TCKWE',
- 'XN--TIQ49XQYJ',
- 'XN--UNUP4Y',
- 'XN--VERMGENSBERATER-CTB',
- 'XN--VERMGENSBERATUNG-PWB',
- 'XN--VHQUV',
- 'XN--VUQ861B',
- 'XN--W4R85EL8FHU5DNRA',
- 'XN--W4RS40L',
- 'XN--WGBH1C',
- 'XN--WGBL6A',
- 'XN--XHQ521B',
- 'XN--XKC2AL3HYE2A',
- 'XN--XKC2DL3A5EE0H',
- 'XN--Y9A3AQ',
- 'XN--YFRO4I67O',
- 'XN--YGBI2AMMX',
- 'XN--ZFR164B',
- 'XXX',
- 'XYZ',
- 'YACHTS',
- 'YAHOO',
- 'YAMAXUN',
- 'YANDEX',
- 'YE',
- 'YODOBASHI',
- 'YOGA',
- 'YOKOHAMA',
- 'YOU',
- 'YOUTUBE',
- 'YT',
- 'YUN',
- 'ZA',
- 'ZAPPOS',
- 'ZARA',
- 'ZERO',
- 'ZIP',
- 'ZM',
- 'ZONE',
- 'ZUERICH',
- 'ZW'
-];
-
-
-// Keep as upper-case to make updating from source easier
-
-module.exports = new Set(internals.tlds.map((tld) => tld.toLowerCase()));
diff --git a/website/node_modules/@sideway/address/lib/uri.js b/website/node_modules/@sideway/address/lib/uri.js
deleted file mode 100755
index ef9dc50c..00000000
--- a/website/node_modules/@sideway/address/lib/uri.js
+++ /dev/null
@@ -1,207 +0,0 @@
-'use strict';
-
-const Assert = require('@hapi/hoek/lib/assert');
-const EscapeRegex = require('@hapi/hoek/lib/escapeRegex');
-
-
-const internals = {};
-
-
-internals.generate = function () {
-
- const rfc3986 = {};
-
- const hexDigit = '\\dA-Fa-f'; // HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
- const hexDigitOnly = '[' + hexDigit + ']';
-
- const unreserved = '\\w-\\.~'; // unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
- const subDelims = '!\\$&\'\\(\\)\\*\\+,;='; // sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
- const pctEncoded = '%' + hexDigit; // pct-encoded = "%" HEXDIG HEXDIG
- const pchar = unreserved + pctEncoded + subDelims + ':@'; // pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
- const pcharOnly = '[' + pchar + ']';
- const decOctect = '(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])'; // dec-octet = DIGIT / %x31-39 DIGIT / "1" 2DIGIT / "2" %x30-34 DIGIT / "25" %x30-35 ; 0-9 / 10-99 / 100-199 / 200-249 / 250-255
-
- rfc3986.ipv4address = '(?:' + decOctect + '\\.){3}' + decOctect; // IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet
-
- /*
- h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal
- ls32 = ( h16 ":" h16 ) / IPv4address ; least-significant 32 bits of address
- IPv6address = 6( h16 ":" ) ls32
- / "::" 5( h16 ":" ) ls32
- / [ h16 ] "::" 4( h16 ":" ) ls32
- / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
- / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
- / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
- / [ *4( h16 ":" ) h16 ] "::" ls32
- / [ *5( h16 ":" ) h16 ] "::" h16
- / [ *6( h16 ":" ) h16 ] "::"
- */
-
- const h16 = hexDigitOnly + '{1,4}';
- const ls32 = '(?:' + h16 + ':' + h16 + '|' + rfc3986.ipv4address + ')';
- const IPv6SixHex = '(?:' + h16 + ':){6}' + ls32;
- const IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32;
- const IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32;
- const IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32;
- const IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32;
- const IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32;
- const IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32;
- const IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16;
- const IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::';
-
- rfc3986.ipv4Cidr = '(?:\\d|[1-2]\\d|3[0-2])'; // IPv4 cidr = DIGIT / %x31-32 DIGIT / "3" %x30-32 ; 0-9 / 10-29 / 30-32
- rfc3986.ipv6Cidr = '(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])'; // IPv6 cidr = DIGIT / %x31-39 DIGIT / "1" %x0-1 DIGIT / "12" %x0-8; 0-9 / 10-99 / 100-119 / 120-128
- rfc3986.ipv6address = '(?:' + IPv6SixHex + '|' + IPv6FiveHex + '|' + IPv6FourHex + '|' + IPv6ThreeHex + '|' + IPv6TwoHex + '|' + IPv6OneHex + '|' + IPv6NoneHex + '|' + IPv6NoneHex2 + '|' + IPv6NoneHex3 + ')';
- rfc3986.ipvFuture = 'v' + hexDigitOnly + '+\\.[' + unreserved + subDelims + ':]+'; // IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
-
- rfc3986.scheme = '[a-zA-Z][a-zA-Z\\d+-\\.]*'; // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
- rfc3986.schemeRegex = new RegExp(rfc3986.scheme);
-
- const userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*'; // userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
- const IPLiteral = '\\[(?:' + rfc3986.ipv6address + '|' + rfc3986.ipvFuture + ')\\]'; // IP-literal = "[" ( IPv6address / IPvFuture ) "]"
- const regName = '[' + unreserved + pctEncoded + subDelims + ']{1,255}'; // reg-name = *( unreserved / pct-encoded / sub-delims )
- const host = '(?:' + IPLiteral + '|' + rfc3986.ipv4address + '|' + regName + ')'; // host = IP-literal / IPv4address / reg-name
- const port = '\\d*'; // port = *DIGIT
- const authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?'; // authority = [ userinfo "@" ] host [ ":" port ]
- const authorityCapture = '(?:' + userinfo + '@)?(' + host + ')(?::' + port + ')?';
-
- /*
- segment = *pchar
- segment-nz = 1*pchar
- path = path-abempty ; begins with "/" '|' is empty
- / path-absolute ; begins with "/" but not "//"
- / path-noscheme ; begins with a non-colon segment
- / path-rootless ; begins with a segment
- / path-empty ; zero characters
- path-abempty = *( "/" segment )
- path-absolute = "/" [ segment-nz *( "/" segment ) ]
- path-rootless = segment-nz *( "/" segment )
- */
-
- const segment = pcharOnly + '*';
- const segmentNz = pcharOnly + '+';
- const segmentNzNc = '[' + unreserved + pctEncoded + subDelims + '@' + ']+';
- const pathEmpty = '';
- const pathAbEmpty = '(?:\\/' + segment + ')*';
- const pathAbsolute = '\\/(?:' + segmentNz + pathAbEmpty + ')?';
- const pathRootless = segmentNz + pathAbEmpty;
- const pathNoScheme = segmentNzNc + pathAbEmpty;
- const pathAbNoAuthority = '(?:\\/\\/\\/' + segment + pathAbEmpty + ')'; // Used by file:///
-
- // hier-part = "//" authority path
-
- rfc3986.hierPart = '(?:' + '(?:\\/\\/' + authority + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathRootless + '|' + pathAbNoAuthority + ')';
- rfc3986.hierPartCapture = '(?:' + '(?:\\/\\/' + authorityCapture + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathRootless + ')';
-
- // relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty
-
- rfc3986.relativeRef = '(?:' + '(?:\\/\\/' + authority + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathNoScheme + '|' + pathEmpty + ')';
- rfc3986.relativeRefCapture = '(?:' + '(?:\\/\\/' + authorityCapture + pathAbEmpty + ')' + '|' + pathAbsolute + '|' + pathNoScheme + '|' + pathEmpty + ')';
-
- // query = *( pchar / "/" / "?" )
- // query = *( pchar / "[" / "]" / "/" / "?" )
-
- rfc3986.query = '[' + pchar + '\\/\\?]*(?=#|$)'; //Finish matching either at the fragment part '|' end of the line.
- rfc3986.queryWithSquareBrackets = '[' + pchar + '\\[\\]\\/\\?]*(?=#|$)';
-
- // fragment = *( pchar / "/" / "?" )
-
- rfc3986.fragment = '[' + pchar + '\\/\\?]*';
-
- return rfc3986;
-};
-
-internals.rfc3986 = internals.generate();
-
-
-exports.ip = {
- v4Cidr: internals.rfc3986.ipv4Cidr,
- v6Cidr: internals.rfc3986.ipv6Cidr,
- ipv4: internals.rfc3986.ipv4address,
- ipv6: internals.rfc3986.ipv6address,
- ipvfuture: internals.rfc3986.ipvFuture
-};
-
-
-internals.createRegex = function (options) {
-
- const rfc = internals.rfc3986;
-
- // Construct expression
-
- const query = options.allowQuerySquareBrackets ? rfc.queryWithSquareBrackets : rfc.query;
- const suffix = '(?:\\?' + query + ')?' + '(?:#' + rfc.fragment + ')?';
-
- // relative-ref = relative-part [ "?" query ] [ "#" fragment ]
-
- const relative = options.domain ? rfc.relativeRefCapture : rfc.relativeRef;
-
- if (options.relativeOnly) {
- return internals.wrap(relative + suffix);
- }
-
- // Custom schemes
-
- let customScheme = '';
- if (options.scheme) {
- Assert(options.scheme instanceof RegExp || typeof options.scheme === 'string' || Array.isArray(options.scheme), 'scheme must be a RegExp, String, or Array');
-
- const schemes = [].concat(options.scheme);
- Assert(schemes.length >= 1, 'scheme must have at least 1 scheme specified');
-
- // Flatten the array into a string to be used to match the schemes
-
- const selections = [];
- for (let i = 0; i < schemes.length; ++i) {
- const scheme = schemes[i];
- Assert(scheme instanceof RegExp || typeof scheme === 'string', 'scheme at position ' + i + ' must be a RegExp or String');
-
- if (scheme instanceof RegExp) {
- selections.push(scheme.source.toString());
- }
- else {
- Assert(rfc.schemeRegex.test(scheme), 'scheme at position ' + i + ' must be a valid scheme');
- selections.push(EscapeRegex(scheme));
- }
- }
-
- customScheme = selections.join('|');
- }
-
- // URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
-
- const scheme = customScheme ? '(?:' + customScheme + ')' : rfc.scheme;
- const absolute = '(?:' + scheme + ':' + (options.domain ? rfc.hierPartCapture : rfc.hierPart) + ')';
- const prefix = options.allowRelative ? '(?:' + absolute + '|' + relative + ')' : absolute;
- return internals.wrap(prefix + suffix, customScheme);
-};
-
-
-internals.wrap = function (raw, scheme) {
-
- raw = `(?=.)(?!https?\:/(?:$|[^/]))(?!https?\:///)(?!https?\:[^/])${raw}`; // Require at least one character and explicitly forbid 'http:/' or HTTP with empty domain
-
- return {
- raw,
- regex: new RegExp(`^${raw}$`),
- scheme
- };
-};
-
-
-internals.uriRegex = internals.createRegex({});
-
-
-exports.regex = function (options = {}) {
-
- if (options.scheme ||
- options.allowRelative ||
- options.relativeOnly ||
- options.allowQuerySquareBrackets ||
- options.domain) {
-
- return internals.createRegex(options);
- }
-
- return internals.uriRegex;
-};
diff --git a/website/node_modules/@sideway/address/package.json b/website/node_modules/@sideway/address/package.json
deleted file mode 100755
index 1a299148..00000000
--- a/website/node_modules/@sideway/address/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@sideway/address",
- "description": "Email address and domain validation",
- "version": "4.1.5",
- "repository": "git://github.com/sideway/address",
- "main": "lib/index.js",
- "types": "lib/index.d.ts",
- "files": [
- "lib"
- ],
- "keywords": [
- "email",
- "domain",
- "address",
- "validation"
- ],
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- },
- "devDependencies": {
- "typescript": "4.0.x",
- "@hapi/code": "8.x.x",
- "@hapi/lab": "24.x.x"
- },
- "scripts": {
- "test": "lab -a @hapi/code -t 100 -L -Y",
- "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html"
- },
- "license": "BSD-3-Clause"
-}
diff --git a/website/node_modules/@sideway/formula/LICENSE.md b/website/node_modules/@sideway/formula/LICENSE.md
deleted file mode 100644
index 995d3407..00000000
--- a/website/node_modules/@sideway/formula/LICENSE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-Copyright (c) 2019-2020, Sideway. Inc, and project contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * The names of any contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/website/node_modules/@sideway/formula/README.md b/website/node_modules/@sideway/formula/README.md
deleted file mode 100755
index 13da3afa..00000000
--- a/website/node_modules/@sideway/formula/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# @sideway/formula
-
-#### Math and string formula parser.
-
-**formula** is part of the **joi** ecosystem.
-
-### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support
-
-## Useful resources
-
-- [Documentation and API](https://joi.dev/module/formula/)
-- [Version status](https://joi.dev/resources/status/#formula) (builds, dependencies, node versions, licenses, eol)
-- [Changelog](https://joi.dev/module/formula/changelog/)
-- [Project policies](https://joi.dev/policies/)
-
-## Acknowledgements
-
-Inspired by [**fparse**](https://github.com/bylexus/fparse), copyright 2012-2018 Alexander Schenkel
diff --git a/website/node_modules/@sideway/formula/lib/index.d.ts b/website/node_modules/@sideway/formula/lib/index.d.ts
deleted file mode 100755
index d78cc1d4..00000000
--- a/website/node_modules/@sideway/formula/lib/index.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Formula parser
- */
-export class Parser {
-
- /**
- * Create a new formula parser.
- *
- * @param formula - the formula string to parse.
- * @param options - optional settings.
- */
- constructor(formula: string, options?: Options);
-
- /**
- * Evaluate the formula.
- *
- * @param context - optional object with runtime formula context used to resolve variables.
- *
- * @returns the string or number outcome of the resolved formula.
- */
- evaluate(context?: any): T;
-}
-
-
-export interface Options {
-
- /**
- * A hash of key - value pairs used to convert constants to values.
- */
- readonly constants?: Record;
-
- /**
- * A regular expression used to validate token variables.
- */
- readonly tokenRx?: RegExp;
-
- /**
- * A variable resolver factory function.
- */
- readonly reference?: Options.Reference;
-
- /**
- * A hash of key-value pairs used to resolve formula functions.
- */
- readonly functions?: Record;
-}
-
-
-export namespace Options {
-
- type Reference = (name: string) => (context: any) => any;
-}
diff --git a/website/node_modules/@sideway/formula/lib/index.js b/website/node_modules/@sideway/formula/lib/index.js
deleted file mode 100755
index 4b4d0a23..00000000
--- a/website/node_modules/@sideway/formula/lib/index.js
+++ /dev/null
@@ -1,456 +0,0 @@
-'use strict';
-
-const internals = {
- operators: ['!', '^', '*', '/', '%', '+', '-', '<', '<=', '>', '>=', '==', '!=', '&&', '||', '??'],
- operatorCharacters: ['!', '^', '*', '/', '%', '+', '-', '<', '=', '>', '&', '|', '?'],
- operatorsOrder: [['^'], ['*', '/', '%'], ['+', '-'], ['<', '<=', '>', '>='], ['==', '!='], ['&&'], ['||', '??']],
- operatorsPrefix: ['!', 'n'],
-
- literals: {
- '"': '"',
- '`': '`',
- '\'': '\'',
- '[': ']'
- },
-
- numberRx: /^(?:[0-9]*(\.[0-9]*)?){1}$/,
- tokenRx: /^[\w\$\#\.\@\:\{\}]+$/,
-
- symbol: Symbol('formula'),
- settings: Symbol('settings')
-};
-
-
-exports.Parser = class {
-
- constructor(string, options = {}) {
-
- if (!options[internals.settings] &&
- options.constants) {
-
- for (const constant in options.constants) {
- const value = options.constants[constant];
- if (value !== null &&
- !['boolean', 'number', 'string'].includes(typeof value)) {
-
- throw new Error(`Formula constant ${constant} contains invalid ${typeof value} value type`);
- }
- }
- }
-
- this.settings = options[internals.settings] ? options : Object.assign({ [internals.settings]: true, constants: {}, functions: {} }, options);
- this.single = null;
-
- this._parts = null;
- this._parse(string);
- }
-
- _parse(string) {
-
- let parts = [];
- let current = '';
- let parenthesis = 0;
- let literal = false;
-
- const flush = (inner) => {
-
- if (parenthesis) {
- throw new Error('Formula missing closing parenthesis');
- }
-
- const last = parts.length ? parts[parts.length - 1] : null;
-
- if (!literal &&
- !current &&
- !inner) {
-
- return;
- }
-
- if (last &&
- last.type === 'reference' &&
- inner === ')') { // Function
-
- last.type = 'function';
- last.value = this._subFormula(current, last.value);
- current = '';
- return;
- }
-
- if (inner === ')') { // Segment
- const sub = new exports.Parser(current, this.settings);
- parts.push({ type: 'segment', value: sub });
- }
- else if (literal) {
- if (literal === ']') { // Reference
- parts.push({ type: 'reference', value: current });
- current = '';
- return;
- }
-
- parts.push({ type: 'literal', value: current }); // Literal
- }
- else if (internals.operatorCharacters.includes(current)) { // Operator
- if (last &&
- last.type === 'operator' &&
- internals.operators.includes(last.value + current)) { // 2 characters operator
-
- last.value += current;
- }
- else {
- parts.push({ type: 'operator', value: current });
- }
- }
- else if (current.match(internals.numberRx)) { // Number
- parts.push({ type: 'constant', value: parseFloat(current) });
- }
- else if (this.settings.constants[current] !== undefined) { // Constant
- parts.push({ type: 'constant', value: this.settings.constants[current] });
- }
- else { // Reference
- if (!current.match(internals.tokenRx)) {
- throw new Error(`Formula contains invalid token: ${current}`);
- }
-
- parts.push({ type: 'reference', value: current });
- }
-
- current = '';
- };
-
- for (const c of string) {
- if (literal) {
- if (c === literal) {
- flush();
- literal = false;
- }
- else {
- current += c;
- }
- }
- else if (parenthesis) {
- if (c === '(') {
- current += c;
- ++parenthesis;
- }
- else if (c === ')') {
- --parenthesis;
- if (!parenthesis) {
- flush(c);
- }
- else {
- current += c;
- }
- }
- else {
- current += c;
- }
- }
- else if (c in internals.literals) {
- literal = internals.literals[c];
- }
- else if (c === '(') {
- flush();
- ++parenthesis;
- }
- else if (internals.operatorCharacters.includes(c)) {
- flush();
- current = c;
- flush();
- }
- else if (c !== ' ') {
- current += c;
- }
- else {
- flush();
- }
- }
-
- flush();
-
- // Replace prefix - to internal negative operator
-
- parts = parts.map((part, i) => {
-
- if (part.type !== 'operator' ||
- part.value !== '-' ||
- i && parts[i - 1].type !== 'operator') {
-
- return part;
- }
-
- return { type: 'operator', value: 'n' };
- });
-
- // Validate tokens order
-
- let operator = false;
- for (const part of parts) {
- if (part.type === 'operator') {
- if (internals.operatorsPrefix.includes(part.value)) {
- continue;
- }
-
- if (!operator) {
- throw new Error('Formula contains an operator in invalid position');
- }
-
- if (!internals.operators.includes(part.value)) {
- throw new Error(`Formula contains an unknown operator ${part.value}`);
- }
- }
- else if (operator) {
- throw new Error('Formula missing expected operator');
- }
-
- operator = !operator;
- }
-
- if (!operator) {
- throw new Error('Formula contains invalid trailing operator');
- }
-
- // Identify single part
-
- if (parts.length === 1 &&
- ['reference', 'literal', 'constant'].includes(parts[0].type)) {
-
- this.single = { type: parts[0].type === 'reference' ? 'reference' : 'value', value: parts[0].value };
- }
-
- // Process parts
-
- this._parts = parts.map((part) => {
-
- // Operators
-
- if (part.type === 'operator') {
- return internals.operatorsPrefix.includes(part.value) ? part : part.value;
- }
-
- // Literals, constants, segments
-
- if (part.type !== 'reference') {
- return part.value;
- }
-
- // References
-
- if (this.settings.tokenRx &&
- !this.settings.tokenRx.test(part.value)) {
-
- throw new Error(`Formula contains invalid reference ${part.value}`);
- }
-
- if (this.settings.reference) {
- return this.settings.reference(part.value);
- }
-
- return internals.reference(part.value);
- });
- }
-
- _subFormula(string, name) {
-
- const method = this.settings.functions[name];
- if (typeof method !== 'function') {
- throw new Error(`Formula contains unknown function ${name}`);
- }
-
- let args = [];
- if (string) {
- let current = '';
- let parenthesis = 0;
- let literal = false;
-
- const flush = () => {
-
- if (!current) {
- throw new Error(`Formula contains function ${name} with invalid arguments ${string}`);
- }
-
- args.push(current);
- current = '';
- };
-
- for (let i = 0; i < string.length; ++i) {
- const c = string[i];
- if (literal) {
- current += c;
- if (c === literal) {
- literal = false;
- }
- }
- else if (c in internals.literals &&
- !parenthesis) {
-
- current += c;
- literal = internals.literals[c];
- }
- else if (c === ',' &&
- !parenthesis) {
-
- flush();
- }
- else {
- current += c;
- if (c === '(') {
- ++parenthesis;
- }
- else if (c === ')') {
- --parenthesis;
- }
- }
- }
-
- flush();
- }
-
- args = args.map((arg) => new exports.Parser(arg, this.settings));
-
- return function (context) {
-
- const innerValues = [];
- for (const arg of args) {
- innerValues.push(arg.evaluate(context));
- }
-
- return method.call(context, ...innerValues);
- };
- }
-
- evaluate(context) {
-
- const parts = this._parts.slice();
-
- // Prefix operators
-
- for (let i = parts.length - 2; i >= 0; --i) {
- const part = parts[i];
- if (part &&
- part.type === 'operator') {
-
- const current = parts[i + 1];
- parts.splice(i + 1, 1);
- const value = internals.evaluate(current, context);
- parts[i] = internals.single(part.value, value);
- }
- }
-
- // Left-right operators
-
- internals.operatorsOrder.forEach((set) => {
-
- for (let i = 1; i < parts.length - 1;) {
- if (set.includes(parts[i])) {
- const operator = parts[i];
- const left = internals.evaluate(parts[i - 1], context);
- const right = internals.evaluate(parts[i + 1], context);
-
- parts.splice(i, 2);
- const result = internals.calculate(operator, left, right);
- parts[i - 1] = result === 0 ? 0 : result; // Convert -0
- }
- else {
- i += 2;
- }
- }
- });
-
- return internals.evaluate(parts[0], context);
- }
-};
-
-
-exports.Parser.prototype[internals.symbol] = true;
-
-
-internals.reference = function (name) {
-
- return function (context) {
-
- return context && context[name] !== undefined ? context[name] : null;
- };
-};
-
-
-internals.evaluate = function (part, context) {
-
- if (part === null) {
- return null;
- }
-
- if (typeof part === 'function') {
- return part(context);
- }
-
- if (part[internals.symbol]) {
- return part.evaluate(context);
- }
-
- return part;
-};
-
-
-internals.single = function (operator, value) {
-
- if (operator === '!') {
- return value ? false : true;
- }
-
- // operator === 'n'
-
- const negative = -value;
- if (negative === 0) { // Override -0
- return 0;
- }
-
- return negative;
-};
-
-
-internals.calculate = function (operator, left, right) {
-
- if (operator === '??') {
- return internals.exists(left) ? left : right;
- }
-
- if (typeof left === 'string' ||
- typeof right === 'string') {
-
- if (operator === '+') {
- left = internals.exists(left) ? left : '';
- right = internals.exists(right) ? right : '';
- return left + right;
- }
- }
- else {
- switch (operator) {
- case '^': return Math.pow(left, right);
- case '*': return left * right;
- case '/': return left / right;
- case '%': return left % right;
- case '+': return left + right;
- case '-': return left - right;
- }
- }
-
- switch (operator) {
- case '<': return left < right;
- case '<=': return left <= right;
- case '>': return left > right;
- case '>=': return left >= right;
- case '==': return left === right;
- case '!=': return left !== right;
- case '&&': return left && right;
- case '||': return left || right;
- }
-
- return null;
-};
-
-
-internals.exists = function (value) {
-
- return value !== null && value !== undefined;
-};
diff --git a/website/node_modules/@sideway/formula/package.json b/website/node_modules/@sideway/formula/package.json
deleted file mode 100755
index 4f314474..00000000
--- a/website/node_modules/@sideway/formula/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "@sideway/formula",
- "description": "Math and string formula parser.",
- "version": "3.0.1",
- "repository": "git://github.com/sideway/formula",
- "main": "lib/index.js",
- "types": "lib/index.d.ts",
- "keywords": [
- "formula",
- "parser",
- "math",
- "string"
- ],
- "files": [
- "lib"
- ],
- "dependencies": {},
- "devDependencies": {
- "typescript": "4.0.x",
- "@hapi/code": "8.x.x",
- "@hapi/lab": "24.x.x"
- },
- "scripts": {
- "test": "lab -a @hapi/code -t 100 -L -Y",
- "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html"
- },
- "license": "BSD-3-Clause"
-}
diff --git a/website/node_modules/@sideway/pinpoint/LICENSE.md b/website/node_modules/@sideway/pinpoint/LICENSE.md
deleted file mode 100755
index f0dfb171..00000000
--- a/website/node_modules/@sideway/pinpoint/LICENSE.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Copyright (c) 2019-2020, Sideway. Inc, and project contributors
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-* The names of any contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS OFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/website/node_modules/@sideway/pinpoint/README.md b/website/node_modules/@sideway/pinpoint/README.md
deleted file mode 100755
index 2996c821..00000000
--- a/website/node_modules/@sideway/pinpoint/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# @sideway/pinpoint
-
-#### Return the filename and line number of the calling function.
-
-**pinpoint** is part of the **joi** ecosystem.
-
-### Visit the [joi.dev](https://joi.dev) Developer Portal for tutorials, documentation, and support
-
-## Useful resources
-
-- [Documentation and API](https://joi.dev/module/pinpoint/)
-- [Version status](https://joi.dev/resources/status/#pinpoint) (builds, dependencies, node versions, licenses, eol)
-- [Changelog](https://joi.dev/module/pinpoint/changelog/)
-- [Project policies](https://joi.dev/policies/)
diff --git a/website/node_modules/@sideway/pinpoint/lib/index.d.ts b/website/node_modules/@sideway/pinpoint/lib/index.d.ts
deleted file mode 100755
index 38fadaa3..00000000
--- a/website/node_modules/@sideway/pinpoint/lib/index.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
-Returns the filename and line number of the caller in the call stack
-
-@param depth - The distance from the location function in the call stack. Defaults to 1 (caller).
-
-@return an object with the filename and line number.
-*/
-export function location(depth?: number): location.Location;
-
-declare namespace location {
-
- interface Location {
-
- /**
- The fully qualified filename.
- */
- readonly filename: string;
-
- /**
- The file line number.
- */
- readonly line: number;
- }
-}
diff --git a/website/node_modules/@sideway/pinpoint/lib/index.js b/website/node_modules/@sideway/pinpoint/lib/index.js
deleted file mode 100755
index 48205509..00000000
--- a/website/node_modules/@sideway/pinpoint/lib/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-const internals = {};
-
-
-exports.location = function (depth = 0) {
-
- const orig = Error.prepareStackTrace;
- Error.prepareStackTrace = (ignore, stack) => stack;
-
- const capture = {};
- Error.captureStackTrace(capture, this);
- const line = capture.stack[depth + 1];
-
- Error.prepareStackTrace = orig;
-
- return {
- filename: line.getFileName(),
- line: line.getLineNumber()
- };
-};
diff --git a/website/node_modules/@sideway/pinpoint/package.json b/website/node_modules/@sideway/pinpoint/package.json
deleted file mode 100755
index b2f09a62..00000000
--- a/website/node_modules/@sideway/pinpoint/package.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "name": "@sideway/pinpoint",
- "description": "Return the filename and line number of the calling function",
- "version": "2.0.0",
- "repository": "git://github.com/sideway/pinpoint",
- "main": "lib/index.js",
- "types": "lib/index.d.ts",
- "files": [
- "lib"
- ],
- "keywords": [
- "utilities"
- ],
- "dependencies": {},
- "devDependencies": {
- "typescript": "4.0.x",
- "@hapi/code": "8.x.x",
- "@hapi/lab": "24.x.x"
- },
- "scripts": {
- "test": "lab -a @hapi/code -t 100 -L -Y",
- "test-cov-html": "lab -a @hapi/code -t 100 -L -r html -o coverage.html"
- },
- "license": "BSD-3-Clause"
-}
diff --git a/website/node_modules/@sindresorhus/merge-streams/index.d.ts b/website/node_modules/@sindresorhus/merge-streams/index.d.ts
deleted file mode 100644
index bace371f..00000000
--- a/website/node_modules/@sindresorhus/merge-streams/index.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import {type Readable} from 'node:stream';
-
-/**
-Merges an array of [readable streams](https://nodejs.org/api/stream.html#readable-streams) and returns a new readable stream that emits data from the individual streams as it arrives.
-
-If you provide an empty array, it returns an already-ended stream.
-
-@example
-```
-import mergeStreams from '@sindresorhus/merge-streams';
-
-const stream = mergeStreams([streamA, streamB]);
-
-for await (const chunk of stream) {
- console.log(chunk);
- //=> 'A1'
- //=> 'B1'
- //=> 'A2'
- //=> 'B2'
-}
-```
-*/
-export default function mergeStreams(streams: Readable[]): MergedStream;
-
-/**
-A single stream combining the output of multiple streams.
-*/
-export class MergedStream extends Readable {
- /**
- Pipe a new readable stream.
-
- Throws if `MergedStream` has already ended.
- */
- add(stream: Readable): void;
-
- /**
- Unpipe a stream previously added using either `mergeStreams(streams)` or `MergedStream.add(stream)`.
-
- Returns `false` if the stream was not previously added, or if it was already removed by `MergedStream.remove(stream)`.
-
- The removed stream is not automatically ended.
- */
- remove(stream: Readable): boolean;
-}
diff --git a/website/node_modules/@sindresorhus/merge-streams/index.js b/website/node_modules/@sindresorhus/merge-streams/index.js
deleted file mode 100644
index f44828e9..00000000
--- a/website/node_modules/@sindresorhus/merge-streams/index.js
+++ /dev/null
@@ -1,223 +0,0 @@
-import {on, once} from 'node:events';
-import {PassThrough as PassThroughStream} from 'node:stream';
-import {finished} from 'node:stream/promises';
-
-export default function mergeStreams(streams) {
- if (!Array.isArray(streams)) {
- throw new TypeError(`Expected an array, got \`${typeof streams}\`.`);
- }
-
- for (const stream of streams) {
- validateStream(stream);
- }
-
- const objectMode = streams.some(({readableObjectMode}) => readableObjectMode);
- const highWaterMark = getHighWaterMark(streams, objectMode);
- const passThroughStream = new MergedStream({
- objectMode,
- writableHighWaterMark: highWaterMark,
- readableHighWaterMark: highWaterMark,
- });
-
- for (const stream of streams) {
- passThroughStream.add(stream);
- }
-
- if (streams.length === 0) {
- endStream(passThroughStream);
- }
-
- return passThroughStream;
-}
-
-const getHighWaterMark = (streams, objectMode) => {
- if (streams.length === 0) {
- // @todo Use `node:stream` `getDefaultHighWaterMark(objectMode)` in next major release
- return 16_384;
- }
-
- const highWaterMarks = streams
- .filter(({readableObjectMode}) => readableObjectMode === objectMode)
- .map(({readableHighWaterMark}) => readableHighWaterMark);
- return Math.max(...highWaterMarks);
-};
-
-class MergedStream extends PassThroughStream {
- #streams = new Set([]);
- #ended = new Set([]);
- #aborted = new Set([]);
- #onFinished;
-
- add(stream) {
- validateStream(stream);
-
- if (this.#streams.has(stream)) {
- return;
- }
-
- this.#streams.add(stream);
-
- this.#onFinished ??= onMergedStreamFinished(this, this.#streams);
- endWhenStreamsDone({
- passThroughStream: this,
- stream,
- streams: this.#streams,
- ended: this.#ended,
- aborted: this.#aborted,
- onFinished: this.#onFinished,
- });
-
- stream.pipe(this, {end: false});
- }
-
- remove(stream) {
- validateStream(stream);
-
- if (!this.#streams.has(stream)) {
- return false;
- }
-
- stream.unpipe(this);
- return true;
- }
-}
-
-const onMergedStreamFinished = async (passThroughStream, streams) => {
- updateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);
- const controller = new AbortController();
-
- try {
- await Promise.race([
- onMergedStreamEnd(passThroughStream, controller),
- onInputStreamsUnpipe(passThroughStream, streams, controller),
- ]);
- } finally {
- controller.abort();
- updateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);
- }
-};
-
-const onMergedStreamEnd = async (passThroughStream, {signal}) => {
- await finished(passThroughStream, {signal, cleanup: true});
-};
-
-const onInputStreamsUnpipe = async (passThroughStream, streams, {signal}) => {
- for await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {
- if (streams.has(unpipedStream)) {
- unpipedStream.emit(unpipeEvent);
- }
- }
-};
-
-const validateStream = stream => {
- if (typeof stream?.pipe !== 'function') {
- throw new TypeError(`Expected a readable stream, got: \`${typeof stream}\`.`);
- }
-};
-
-const endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished}) => {
- updateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);
- const controller = new AbortController();
-
- try {
- await Promise.race([
- afterMergedStreamFinished(onFinished, stream),
- onInputStreamEnd({passThroughStream, stream, streams, ended, aborted, controller}),
- onInputStreamUnpipe({stream, streams, ended, aborted, controller}),
- ]);
- } finally {
- controller.abort();
- updateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);
- }
-
- if (streams.size === ended.size + aborted.size) {
- if (ended.size === 0 && aborted.size > 0) {
- abortStream(passThroughStream);
- } else {
- endStream(passThroughStream);
- }
- }
-};
-
-// This is the error thrown by `finished()` on `stream.destroy()`
-const isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';
-
-const afterMergedStreamFinished = async (onFinished, stream) => {
- try {
- await onFinished;
- abortStream(stream);
- } catch (error) {
- if (isAbortError(error)) {
- abortStream(stream);
- } else {
- errorStream(stream, error);
- }
- }
-};
-
-const onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {
- try {
- await finished(stream, {signal, cleanup: true, readable: true, writable: false});
- if (streams.has(stream)) {
- ended.add(stream);
- }
- } catch (error) {
- if (signal.aborted || !streams.has(stream)) {
- return;
- }
-
- if (isAbortError(error)) {
- aborted.add(stream);
- } else {
- errorStream(passThroughStream, error);
- }
- }
-};
-
-const onInputStreamUnpipe = async ({stream, streams, ended, aborted, controller: {signal}}) => {
- await once(stream, unpipeEvent, {signal});
- streams.delete(stream);
- ended.delete(stream);
- aborted.delete(stream);
-};
-
-const unpipeEvent = Symbol('unpipe');
-
-const endStream = stream => {
- if (stream.writable) {
- stream.end();
- }
-};
-
-const abortStream = stream => {
- if (stream.readable || stream.writable) {
- stream.destroy();
- }
-};
-
-// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.
-// We take care of error handling on user behalf, so we do not want this to happen.
-const errorStream = (stream, error) => {
- if (!stream.destroyed) {
- stream.once('error', noop);
- stream.destroy(error);
- }
-};
-
-const noop = () => {};
-
-const updateMaxListeners = (passThroughStream, increment) => {
- const maxListeners = passThroughStream.getMaxListeners();
- if (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {
- passThroughStream.setMaxListeners(maxListeners + increment);
- }
-};
-
-// Number of times `passThroughStream.on()` is called regardless of streams:
-// - once due to `finished(passThroughStream)`
-// - once due to `on(passThroughStream)`
-const PASSTHROUGH_LISTENERS_COUNT = 2;
-
-// Number of times `passThroughStream.on()` is called per stream:
-// - once due to `stream.pipe(passThroughStream)`
-const PASSTHROUGH_LISTENERS_PER_STREAM = 1;
diff --git a/website/node_modules/@sindresorhus/merge-streams/license b/website/node_modules/@sindresorhus/merge-streams/license
deleted file mode 100644
index fa7ceba3..00000000
--- a/website/node_modules/@sindresorhus/merge-streams/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (https://sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/@sindresorhus/merge-streams/package.json b/website/node_modules/@sindresorhus/merge-streams/package.json
deleted file mode 100644
index 94f4bdb7..00000000
--- a/website/node_modules/@sindresorhus/merge-streams/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "@sindresorhus/merge-streams",
- "version": "2.3.0",
- "description": "Merge multiple streams into a unified stream",
- "license": "MIT",
- "repository": "sindresorhus/merge-streams",
- "funding": "https://github.com/sponsors/sindresorhus",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "https://sindresorhus.com"
- },
- "type": "module",
- "exports": {
- "types": "./index.d.ts",
- "default": "./index.js"
- },
- "sideEffects": false,
- "engines": {
- "node": ">=18"
- },
- "scripts": {
- "test": "xo && c8 ava && tsd"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "merge",
- "stream",
- "streams",
- "readable",
- "passthrough",
- "interleave",
- "interleaved",
- "unify",
- "unified"
- ],
- "devDependencies": {
- "@types/node": "^20.8.9",
- "ava": "^6.1.0",
- "c8": "^9.1.0",
- "tempfile": "^5.0.0",
- "tsd": "^0.30.4",
- "typescript": "^5.2.2",
- "xo": "^0.56.0"
- }
-}
diff --git a/website/node_modules/@sindresorhus/merge-streams/readme.md b/website/node_modules/@sindresorhus/merge-streams/readme.md
deleted file mode 100644
index 647c43e4..00000000
--- a/website/node_modules/@sindresorhus/merge-streams/readme.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# merge-streams
-
-> Merge multiple streams into a unified stream
-
-## Install
-
-```sh
-npm install @sindresorhus/merge-streams
-```
-
-## Usage
-
-```js
-import mergeStreams from '@sindresorhus/merge-streams';
-
-const stream = mergeStreams([streamA, streamB]);
-
-for await (const chunk of stream) {
- console.log(chunk);
- //=> 'A1'
- //=> 'B1'
- //=> 'A2'
- //=> 'B2'
-}
-```
-
-## API
-
-### `mergeStreams(streams: stream.Readable[]): MergedStream`
-
-Merges an array of [readable streams](https://nodejs.org/api/stream.html#readable-streams) and returns a new readable stream that emits data from the individual streams as it arrives.
-
-If you provide an empty array, it returns an already-ended stream.
-
-#### `MergedStream`
-
-_Type_: `stream.Readable`
-
-A single stream combining the output of multiple streams.
-
-##### `MergedStream.add(stream: stream.Readable): void`
-
-Pipe a new readable stream.
-
-Throws if `MergedStream` has already ended.
-
-##### `MergedStream.remove(stream: stream.Readable): boolean`
-
-Unpipe a stream previously added using either [`mergeStreams(streams)`](#mergestreamsstreams-streamreadable-mergedstream) or [`MergedStream.add(stream)`](#mergedstreamaddstream-streamreadable-void).
-
-Returns `false` if the stream was not previously added, or if it was already removed by `MergedStream.remove(stream)`.
-
-The removed stream is not automatically ended.
diff --git a/website/node_modules/@tailwindcss/forms/.github/ISSUE_TEMPLATE/1.bug_report.yml b/website/node_modules/@tailwindcss/forms/.github/ISSUE_TEMPLATE/1.bug_report.yml
deleted file mode 100644
index 72207f75..00000000
--- a/website/node_modules/@tailwindcss/forms/.github/ISSUE_TEMPLATE/1.bug_report.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Bug Report
-description: Create a bug report for @tailwindcss/forms.
-labels: []
-body:
- - type: input
- attributes:
- label: What version of @tailwindcss/forms are you using?
- description: 'For example: v0.1.4'
- validations:
- required: true
- - type: input
- attributes:
- label: What version of Node.js are you using?
- description: 'For example: v12.0.0'
- validations:
- required: true
- - type: input
- attributes:
- label: What browser are you using?
- description: 'For example: Chrome, Safari, or N/A'
- validations:
- required: true
- - type: input
- attributes:
- label: What operating system are you using?
- description: 'For example: macOS, Windows'
- validations:
- required: true
- - type: input
- attributes:
- label: Reproduction repository
- description: A public GitHub repo that includes a minimal reproduction of the bug. Unfortunately we can't provide support without a reproduction, and your issue will be closed and locked with no comment if this is not provided.
- validations:
- required: true
- - type: textarea
- attributes:
- label: Describe your issue
- description: Describe the problem you're seeing, any important steps to reproduce and what behavior you expect instead
diff --git a/website/node_modules/@tailwindcss/forms/.github/ISSUE_TEMPLATE/config.yml b/website/node_modules/@tailwindcss/forms/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index 23765818..00000000
--- a/website/node_modules/@tailwindcss/forms/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-blank_issues_enabled: false
-contact_links:
- - name: Feature Request
- url: https://github.com/tailwindlabs/tailwindcss/discussions/new?category=ideas
- about: 'Suggest any ideas you have using our discussion forums.'
- - name: Help
- url: https://github.com/tailwindlabs/tailwindcss/discussions/new?category=help
- about: 'If you have a question or need help, ask a question on the discussion forums.'
- - name: Kind Words
- url: https://github.com/tailwindlabs/tailwindcss/discussions/new?category=kind-words
- about: "Have something nice to say about @tailwindcss/forms or Tailwind CSS in general? We'd love to hear it!"
diff --git a/website/node_modules/@tailwindcss/forms/.github/workflows/release-insiders.yml b/website/node_modules/@tailwindcss/forms/.github/workflows/release-insiders.yml
deleted file mode 100644
index 5255dc58..00000000
--- a/website/node_modules/@tailwindcss/forms/.github/workflows/release-insiders.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Release Insiders
-
-on:
- push:
- branches: [master]
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- node-version: [12]
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
- with:
- node-version: ${{ matrix.node-version }}
- registry-url: 'https://registry.npmjs.org'
-
- - name: Use cached node_modules
- id: cache
- uses: actions/cache@v2
- with:
- path: node_modules
- key: nodeModules-${{ hashFiles('**/package-lock.json') }}-${{ matrix.node-version }}
- restore-keys: |
- nodeModules-
-
- - name: Install dependencies
- if: steps.cache.outputs.cache-hit != 'true'
- run: npm install
- env:
- CI: true
-
- - name: Resolve version
- id: vars
- run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
-
- - name: "Version based on commit: 0.0.0-insiders.${{ steps.vars.outputs.sha_short }}"
- run: npm version 0.0.0-insiders.${{ steps.vars.outputs.sha_short }} --force --no-git-tag-version
-
- - name: Publish
- run: npm publish --tag insiders
- env:
- CI: true
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
diff --git a/website/node_modules/@tailwindcss/forms/CHANGELOG.md b/website/node_modules/@tailwindcss/forms/CHANGELOG.md
deleted file mode 100644
index 921c2b73..00000000
--- a/website/node_modules/@tailwindcss/forms/CHANGELOG.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [Unreleased]
-
-- Nothing yet!
-
-## [0.5.7] - 2023-11-10
-
-### Fixed
-
-- Use normal `checkbox` and `radio` appearance in `forced-colors` mode ([#152](https://github.com/tailwindlabs/tailwindcss-forms/pull/152))
-
-## [0.5.6] - 2023-08-28
-
-### Fixed
-
-- Fix date time bottom spacing on MacOS Safari ([#146](https://github.com/tailwindlabs/tailwindcss-forms/pull/146))
-
-## [0.5.5] - 2023-08-22
-
-### Fixed
-
-- Fix text alignment on date and time inputs on iOS ([#144](https://github.com/tailwindlabs/tailwindcss-forms/pull/144))
-
-## [0.5.4] - 2023-07-13
-
-### Fixed
-
-- Remove chevron for selects with a non-default size ([#137](https://github.com/tailwindlabs/tailwindcss-forms/pull/137))
-- Allow for without `type` ([#141](https://github.com/tailwindlabs/tailwindcss-forms/pull/141))
-
-## [0.5.3] - 2022-09-02
-
-### Fixed
-
-- Update TypeScript types ([#126](https://github.com/tailwindlabs/tailwindcss-forms/pull/126))
-
-## [0.5.2] - 2022-05-18
-
-### Added
-
-- Add TypeScript type declarations ([#118](https://github.com/tailwindlabs/tailwindcss-forms/pull/118))
-
-## [0.5.1] - 2022-05-03
-
-### Fixed
-
-- Remove duplicate `outline` property ([#116](https://github.com/tailwindlabs/tailwindcss-forms/pull/116))
-- Fix autoprefixer warning about `color-adjust` ([#115](https://github.com/tailwindlabs/tailwindcss-forms/pull/115))
-
-## [0.5.0] - 2022-03-02
-
-### Changed
-
-- Generate both global styles and classes by default ([#71](https://github.com/tailwindlabs/tailwindcss-forms/pull/71))
-
-## [0.4.1] - 2022-03-02
-
-### Added
-
-- Remove `dist` folder and related dependencies ([#96](https://github.com/tailwindlabs/tailwindcss-forms/pull/96))
-
-### Fixed
-
-- Use `addComponents` for class strategy ([#91](https://github.com/tailwindlabs/tailwindcss-forms/pull/91))
-- Fix extra height on Safari date/time inputs ([#109](https://github.com/tailwindlabs/tailwindcss-forms/pull/109))
-
-## [0.4.0] - 2021-12-09
-
-### Changed
-
-- Update color palette references for v3 ([#83](https://github.com/tailwindlabs/tailwindcss-forms/pull/83))
-- Don't read outline.none value from config ([#89](https://github.com/tailwindlabs/tailwindcss-forms/pull/89))
-
-## [0.3.4] - 2021-09-28
-
-### Fixed
-
-- Fix compatibility with `optimizeUniversalDefaults` experimental feature in Tailwind CSS v2.2 ([#81](https://github.com/tailwindlabs/tailwindcss-forms/pull/81))
-
-## [0.3.3] - 2021-06-03
-
-### Fixed
-
-- Fix typo in selector when using `class` strategy that breaks background colors on checkboxes and radio buttons ([#72](https://github.com/tailwindlabs/tailwindcss-forms/pull/72))
-
-## [0.3.2] - 2021-03-26
-
-### Fixed
-
-- Filter `null` rules for JIT compatibility ([b4c4e03](https://github.com/tailwindlabs/tailwindcss-forms/commit/b4c4e039337c3a5599f5b6d9eabbcc8ab9e8c8d9))
-
-## [0.3.1] - 2021-03-26
-
-### Fixed
-
-- Use `base` as default strategy, not `class` ([#61](https://github.com/tailwindlabs/tailwindcss-forms/pull/61))
-
-## [0.3.0] - 2021-03-25
-
-### Added
-
-- Add `class` strategy for you babies and your custom select and date picker libraries ;) ([#39](https://github.com/tailwindlabs/tailwindcss-forms/pull/39))
-
-## [0.2.1] - 2020-11-17
-
-### Fixed
-
-- Fix issue where default checkbox/radio border color took precedence over user border color on focus ([d0b9fd9](https://github.com/tailwindlabs/tailwindcss-forms/commit/d0b9fd9))
-
-## [0.2.0] - 2020-11-16
-
-### Changed
-
-- Update form styles to be less opinionated and encourage custom styling ([3288709](https://github.com/tailwindlabs/tailwindcss-forms/commit/3288709b59f4101511ec19f30cb2dafe7738251e))
-- Update custom property names to match namespaced variables in Tailwind CSS v2.0 ([adb9807](https://github.com/tailwindlabs/tailwindcss-forms/commit/adb98078fc830d0416cb5ea2c895e997d5f0a5ec), [bbd8510](https://github.com/tailwindlabs/tailwindcss-forms/commit/bbd85102ef4a402b3c39d997c025208a33694cc4))
-
-## [0.1.4] - 2020-11-12
-
-### Fixed
-
-- Fix SVG background images not rendering properly in all browsers ([#5](https://github.com/tailwindlabs/tailwindcss-forms/pull/5))
-
-## [0.1.3] - 2020-11-12
-
-### Changed
-
-- Update focus styles to account for changes to `ring` API in latest Tailwind CSS 2.0 alpha ([5c16689](https://github.com/tailwindlabs/tailwindcss-forms/commit/5c166896b06475832bd8364f9f3ef5c4baec585f))
-
-## [0.1.2] - 2020-11-11
-
-### Fixed
-
-- Work around iOS Safari bug that causes date inputs to render with no height when empty ([b98365b](https://github.com/tailwindlabs/tailwindcss-forms/commit/b98365b903b586bfbe7a6ae745ba64b5d87e23e3))
-
-## [0.1.1] - 2020-11-11
-
-### Changed
-
-- Move `tailwindcss` to dependencies, hoping to get it working with Tailwind Play ([d625ea1](https://github.com/tailwindlabs/tailwindcss-forms/commit/d625ea11bd111a4d8cde937e36f3d229ecdf7c6a))
-
-## [0.1.0] - 2020-11-11
-
-Initial release!
-
-[unreleased]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.7...HEAD
-[0.5.7]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.6...v0.5.7
-[0.5.6]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.5...v0.5.6
-[0.5.5]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.4...v0.5.5
-[0.5.4]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.3...v0.5.4
-[0.5.3]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.2...v0.5.3
-[0.5.2]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.1...v0.5.2
-[0.5.1]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.0...v0.5.1
-[0.5.0]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.4.1...v0.5.0
-[0.4.1]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.4.0...v0.4.1
-[0.4.0]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.3.3...v0.4.0
-[0.3.4]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.3.3...v0.3.4
-[0.3.3]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.3.2...v0.3.3
-[0.3.2]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.3.1...v0.3.2
-[0.3.1]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.3.0...v0.3.1
-[0.3.0]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.2.1...v0.3.0
-[0.2.1]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.2.0...v0.2.1
-[0.2.0]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.1.4...v0.2.0
-[0.1.4]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.1.3...v0.1.4
-[0.1.3]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.1.2...v0.1.3
-[0.1.2]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.1.1...v0.1.2
-[0.1.1]: https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.1.0...v0.1.1
-[0.1.0]: https://github.com/tailwindlabs/tailwindcss-forms/releases/tag/v0.1.0
diff --git a/website/node_modules/@tailwindcss/forms/LICENSE b/website/node_modules/@tailwindcss/forms/LICENSE
deleted file mode 100644
index d6a82290..00000000
--- a/website/node_modules/@tailwindcss/forms/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Tailwind Labs, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@tailwindcss/forms/README.md b/website/node_modules/@tailwindcss/forms/README.md
deleted file mode 100644
index 56395c94..00000000
--- a/website/node_modules/@tailwindcss/forms/README.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# @tailwindcss/forms
-
-A plugin that provides a basic reset for form styles that makes form elements easy to override with utilities.
-
-## Installation
-
-Install the plugin from npm:
-
-```sh
-npm install -D @tailwindcss/forms
-```
-
-Then add the plugin to your `tailwind.config.js` file:
-
-```js
-// tailwind.config.js
-module.exports = {
- theme: {
- // ...
- },
- plugins: [
- require('@tailwindcss/forms'),
- // ...
- ],
-}
-```
-
-## Basic usage
-
-[**View the live demo**](https://tailwindcss-forms.vercel.app/)
-
-All of the basic form elements you use will now have some simple default styles that are easy to override with utilities.
-
-Currently we add basic utility-friendly form styles for the following form element types:
-
-- `input[type='text']`
-- `input[type='password']`
-- `input[type='email']`
-- `input[type='number']`
-- `input[type='url']`
-- `input[type='date']`
-- `input[type='datetime-local']`
-- `input[type='month']`
-- `input[type='week']`
-- `input[type='time']`
-- `input[type='search']`
-- `input[type='tel']`
-- `input[type='checkbox']`
-- `input[type='radio']`
-- `select`
-- `select[multiple]`
-- `textarea`
-
-Every element has been normalized/reset to a simple visually consistent style that is easy to customize with utilities, even elements like `` or ` ` that normally need to be reset with `appearance: none` and customized using custom CSS:
-
-```html
-
-
-
-
-
-
-
-```
-
-More customization examples and best practices coming soon.
-
-### Using classes to style
-
-In addition to the global styles, we also generate a set of corresponding classes which can be used to explicitly apply the form styles to an element. This can be useful in situations where you need to make a non-form element, such as a ``, look like a form element.
-
-```html
-
-
-
-
-
-
-
-```
-
-Here is a complete table of the provided `form-*` classes for reference:
-
-| Base | Class |
-| ------------------------- | ------------------ |
-| `[type='text']` | `form-input` |
-| `[type='email']` | `form-input` |
-| `[type='url']` | `form-input` |
-| `[type='password']` | `form-input` |
-| `[type='number']` | `form-input` |
-| `[type='date']` | `form-input` |
-| `[type='datetime-local']` | `form-input` |
-| `[type='month']` | `form-input` |
-| `[type='search']` | `form-input` |
-| `[type='tel']` | `form-input` |
-| `[type='time']` | `form-input` |
-| `[type='week']` | `form-input` |
-| `textarea` | `form-textarea` |
-| `select` | `form-select` |
-| `select[multiple]` | `form-multiselect` |
-| `[type='checkbox']` | `form-checkbox` |
-| `[type='radio']` | `form-radio` |
-
-### Using only global styles or only classes
-
-Although we recommend thinking of this plugin as a "form reset" rather than a collection of form component styles, in some cases our default approach may be too heavy-handed, especially when integrating this plugin into existing projects.
-
-If generating both the global (base) styles and classes doesn't work well with your project, you can use the `strategy` option to limit the plugin to just one of these approaches.
-
-```js
-// tailwind.config.js
-plugins: [
- require("@tailwindcss/forms")({
- strategy: 'base', // only generate global styles
- strategy: 'class', // only generate classes
- }),
-],
-```
-
-When using the `base` strategy, form elements are styled globally, and no `form-{name}` classes are generated.
-
-When using the `class` strategy, form elements are not styled globally, and instead must be styled using the generated `form-{name}` classes.
diff --git a/website/node_modules/@tailwindcss/forms/index.html b/website/node_modules/@tailwindcss/forms/index.html
deleted file mode 100644
index 4ed5c0e8..00000000
--- a/website/node_modules/@tailwindcss/forms/index.html
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
-
-
-
@tailwindcss/forms examples
-
-
-
-
-
-
-
@tailwindcss/forms examples
-
- An opinionated form reset designed to make form elements easy to style with utility
- classes.
-
-
-
-
-
Unstyled
-
This is how form elements look out of the box.
-
-
-
- Full name
-
-
-
- Email address
-
-
-
- When is your event?
-
-
-
- What type of event is it?
-
- Corporate event
- Wedding
- Birthday
- Other
-
-
-
- Additional details
-
-
-
-
-
-
-
- Email me news and special offers
-
-
-
-
-
-
-
-
-
Simple
-
-
-
- Full name
-
-
-
- Email address
-
-
-
- When is your event?
-
-
-
- What type of event is it?
-
- Corporate event
- Wedding
- Birthday
- Other
-
-
-
- Additional details
-
-
-
-
-
-
-
- Email me news and special offers
-
-
-
-
-
-
-
-
-
Underline
-
-
-
- Full name
-
-
-
- Email address
-
-
-
- When is your event?
-
-
-
- What type of event is it?
-
- Corporate event
- Wedding
- Birthday
- Other
-
-
-
- Additional details
-
-
-
-
-
-
-
- Email me news and special offers
-
-
-
-
-
-
-
-
-
Solid
-
-
-
- Full name
-
-
-
- Email address
-
-
-
- When is your event?
-
-
-
- What type of event is it?
-
- Corporate event
- Wedding
- Birthday
- Other
-
-
-
- Additional details
-
-
-
-
-
-
-
- Email me news and special offers
-
-
-
-
-
-
-
-
-
-
-
diff --git a/website/node_modules/@tailwindcss/forms/kitchen-sink.html b/website/node_modules/@tailwindcss/forms/kitchen-sink.html
deleted file mode 100644
index 656835c1..00000000
--- a/website/node_modules/@tailwindcss/forms/kitchen-sink.html
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
-
-
-
-
@tailwindcss/forms Kitchen Sink
-
-
-
-
-
-
Reset styles
-
- These are form elements this plugin styles by default.
-
-
-
-
-
Untouched
-
- These are form elements we don't handle (yet?), but we use this to make sure we haven't
- accidentally styled them by mistake.
-
-
-
-
-
-
diff --git a/website/node_modules/@tailwindcss/forms/package.json b/website/node_modules/@tailwindcss/forms/package.json
deleted file mode 100644
index c34c6daa..00000000
--- a/website/node_modules/@tailwindcss/forms/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "@tailwindcss/forms",
- "version": "0.5.7",
- "main": "src/index.js",
- "types": "src/index.d.ts",
- "license": "MIT",
- "repository": "https://github.com/tailwindlabs/tailwindcss-forms",
- "publishConfig": {
- "access": "public"
- },
- "prettier": {
- "printWidth": 100,
- "semi": false,
- "singleQuote": true,
- "trailingComma": "es5"
- },
- "scripts": {
- "dev": "concurrently \"npm run serve\" \"npm run watch\"",
- "serve": "live-server .",
- "watch": "npm run build -- -w",
- "build": "tailwindcss -o dist/tailwind.css"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
- },
- "devDependencies": {
- "autoprefixer": "^10.4.6",
- "concurrently": "^5.3.0",
- "live-server": "^1.2.2",
- "postcss": "^8.4.13",
- "tailwindcss": "^3.0.24"
- },
- "dependencies": {
- "mini-svg-data-uri": "^1.2.3"
- }
-}
diff --git a/website/node_modules/@tailwindcss/forms/src/index.d.ts b/website/node_modules/@tailwindcss/forms/src/index.d.ts
deleted file mode 100644
index 1918866b..00000000
--- a/website/node_modules/@tailwindcss/forms/src/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-declare function plugin(options?: Partial<{ strategy: 'base' | 'class' }>): { handler: () => void }
-
-declare namespace plugin {
- const __isOptionsFunction: true
-}
-
-export = plugin
diff --git a/website/node_modules/@tailwindcss/forms/src/index.js b/website/node_modules/@tailwindcss/forms/src/index.js
deleted file mode 100644
index dd2953f8..00000000
--- a/website/node_modules/@tailwindcss/forms/src/index.js
+++ /dev/null
@@ -1,358 +0,0 @@
-const svgToDataUri = require('mini-svg-data-uri')
-const plugin = require('tailwindcss/plugin')
-const defaultTheme = require('tailwindcss/defaultTheme')
-const colors = require('tailwindcss/colors')
-const [baseFontSize, { lineHeight: baseLineHeight }] = defaultTheme.fontSize.base
-const { spacing, borderWidth, borderRadius } = defaultTheme
-
-function resolveColor(color, opacityVariableName) {
- return color.replace('
', `var(${opacityVariableName}, 1)`)
-}
-
-const forms = plugin.withOptions(function (options = { strategy: undefined }) {
- return function ({ addBase, addComponents, theme }) {
- const strategy = options.strategy === undefined ? ['base', 'class'] : [options.strategy]
-
- const rules = [
- {
- base: [
- "[type='text']",
- 'input:where(:not([type]))',
- "[type='email']",
- "[type='url']",
- "[type='password']",
- "[type='number']",
- "[type='date']",
- "[type='datetime-local']",
- "[type='month']",
- "[type='search']",
- "[type='tel']",
- "[type='time']",
- "[type='week']",
- '[multiple]',
- 'textarea',
- 'select',
- ],
- class: ['.form-input', '.form-textarea', '.form-select', '.form-multiselect'],
- styles: {
- appearance: 'none',
- 'background-color': '#fff',
- 'border-color': resolveColor(
- theme('colors.gray.500', colors.gray[500]),
- '--tw-border-opacity'
- ),
- 'border-width': borderWidth['DEFAULT'],
- 'border-radius': borderRadius.none,
- 'padding-top': spacing[2],
- 'padding-right': spacing[3],
- 'padding-bottom': spacing[2],
- 'padding-left': spacing[3],
- 'font-size': baseFontSize,
- 'line-height': baseLineHeight,
- '--tw-shadow': '0 0 #0000',
- '&:focus': {
- outline: '2px solid transparent',
- 'outline-offset': '2px',
- '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
- '--tw-ring-offset-width': '0px',
- '--tw-ring-offset-color': '#fff',
- '--tw-ring-color': resolveColor(
- theme('colors.blue.600', colors.blue[600]),
- '--tw-ring-opacity'
- ),
- '--tw-ring-offset-shadow': `var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)`,
- '--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)`,
- 'box-shadow': `var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)`,
- 'border-color': resolveColor(
- theme('colors.blue.600', colors.blue[600]),
- '--tw-border-opacity'
- ),
- },
- },
- },
- {
- base: ['input::placeholder', 'textarea::placeholder'],
- class: ['.form-input::placeholder', '.form-textarea::placeholder'],
- styles: {
- color: resolveColor(theme('colors.gray.500', colors.gray[500]), '--tw-text-opacity'),
- opacity: '1',
- },
- },
- {
- base: ['::-webkit-datetime-edit-fields-wrapper'],
- class: ['.form-input::-webkit-datetime-edit-fields-wrapper'],
- styles: {
- padding: '0',
- },
- },
- {
- // Unfortunate hack until https://bugs.webkit.org/show_bug.cgi?id=198959 is fixed.
- // This sucks because users can't change line-height with a utility on date inputs now.
- // Reference: https://github.com/twbs/bootstrap/pull/31993
- base: ['::-webkit-date-and-time-value'],
- class: ['.form-input::-webkit-date-and-time-value'],
- styles: {
- 'min-height': '1.5em',
- },
- },
- {
- // In Safari on iOS date and time inputs are centered instead of left-aligned and can't be
- // changed with `text-align` utilities on the input by default. Resetting this to `inherit`
- // makes them left-aligned by default and makes it possible to override the alignment with
- // utility classes without using an arbitrary variant to target the pseudo-elements.
- base: ['::-webkit-date-and-time-value'],
- class: ['.form-input::-webkit-date-and-time-value'],
- styles: {
- 'text-align': 'inherit',
- },
- },
- {
- // In Safari on macOS date time inputs that are set to `display: block` have unexpected
- // extra bottom spacing. This can be corrected by setting the `::-webkit-datetime-edit`
- // pseudo-element to `display: inline-flex`, instead of the browser default of
- // `display: inline-block`.
- base: ['::-webkit-datetime-edit'],
- class: ['.form-input::-webkit-datetime-edit'],
- styles: {
- display: 'inline-flex',
- },
- },
- {
- // In Safari on macOS date time inputs are 4px taller than normal inputs
- // This is because there is extra padding on the datetime-edit and datetime-edit-{part}-field pseudo elements
- // See https://github.com/tailwindlabs/tailwindcss-forms/issues/95
- base: [
- '::-webkit-datetime-edit',
- '::-webkit-datetime-edit-year-field',
- '::-webkit-datetime-edit-month-field',
- '::-webkit-datetime-edit-day-field',
- '::-webkit-datetime-edit-hour-field',
- '::-webkit-datetime-edit-minute-field',
- '::-webkit-datetime-edit-second-field',
- '::-webkit-datetime-edit-millisecond-field',
- '::-webkit-datetime-edit-meridiem-field',
- ],
- class: [
- '.form-input::-webkit-datetime-edit',
- '.form-input::-webkit-datetime-edit-year-field',
- '.form-input::-webkit-datetime-edit-month-field',
- '.form-input::-webkit-datetime-edit-day-field',
- '.form-input::-webkit-datetime-edit-hour-field',
- '.form-input::-webkit-datetime-edit-minute-field',
- '.form-input::-webkit-datetime-edit-second-field',
- '.form-input::-webkit-datetime-edit-millisecond-field',
- '.form-input::-webkit-datetime-edit-meridiem-field',
- ],
- styles: {
- 'padding-top': 0,
- 'padding-bottom': 0,
- },
- },
- {
- base: ['select'],
- class: ['.form-select'],
- styles: {
- 'background-image': `url("${svgToDataUri(
- ` `
- )}")`,
- 'background-position': `right ${spacing[2]} center`,
- 'background-repeat': `no-repeat`,
- 'background-size': `1.5em 1.5em`,
- 'padding-right': spacing[10],
- 'print-color-adjust': `exact`,
- },
- },
- {
- base: ['[multiple]', '[size]:where(select:not([size="1"]))'],
- class: ['.form-select:where([size]:not([size="1"]))'],
- styles: {
- 'background-image': 'initial',
- 'background-position': 'initial',
- 'background-repeat': 'unset',
- 'background-size': 'initial',
- 'padding-right': spacing[3],
- 'print-color-adjust': 'unset',
- },
- },
- {
- base: [`[type='checkbox']`, `[type='radio']`],
- class: ['.form-checkbox', '.form-radio'],
- styles: {
- appearance: 'none',
- padding: '0',
- 'print-color-adjust': 'exact',
- display: 'inline-block',
- 'vertical-align': 'middle',
- 'background-origin': 'border-box',
- 'user-select': 'none',
- 'flex-shrink': '0',
- height: spacing[4],
- width: spacing[4],
- color: resolveColor(theme('colors.blue.600', colors.blue[600]), '--tw-text-opacity'),
- 'background-color': '#fff',
- 'border-color': resolveColor(
- theme('colors.gray.500', colors.gray[500]),
- '--tw-border-opacity'
- ),
- 'border-width': borderWidth['DEFAULT'],
- '--tw-shadow': '0 0 #0000',
- },
- },
- {
- base: [`[type='checkbox']`],
- class: ['.form-checkbox'],
- styles: {
- 'border-radius': borderRadius['none'],
- },
- },
- {
- base: [`[type='radio']`],
- class: ['.form-radio'],
- styles: {
- 'border-radius': '100%',
- },
- },
- {
- base: [`[type='checkbox']:focus`, `[type='radio']:focus`],
- class: ['.form-checkbox:focus', '.form-radio:focus'],
- styles: {
- outline: '2px solid transparent',
- 'outline-offset': '2px',
- '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
- '--tw-ring-offset-width': '2px',
- '--tw-ring-offset-color': '#fff',
- '--tw-ring-color': resolveColor(
- theme('colors.blue.600', colors.blue[600]),
- '--tw-ring-opacity'
- ),
- '--tw-ring-offset-shadow': `var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)`,
- '--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)`,
- 'box-shadow': `var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)`,
- },
- },
- {
- base: [`[type='checkbox']:checked`, `[type='radio']:checked`],
- class: ['.form-checkbox:checked', '.form-radio:checked'],
- styles: {
- 'border-color': `transparent`,
- 'background-color': `currentColor`,
- 'background-size': `100% 100%`,
- 'background-position': `center`,
- 'background-repeat': `no-repeat`,
- },
- },
- {
- base: [`[type='checkbox']:checked`],
- class: ['.form-checkbox:checked'],
- styles: {
- 'background-image': `url("${svgToDataUri(
- ` `
- )}")`,
-
- '@media (forced-colors: active) ': {
- appearance: 'auto',
- },
- },
- },
- {
- base: [`[type='radio']:checked`],
- class: ['.form-radio:checked'],
- styles: {
- 'background-image': `url("${svgToDataUri(
- ` `
- )}")`,
-
- '@media (forced-colors: active) ': {
- appearance: 'auto',
- },
- },
- },
- {
- base: [
- `[type='checkbox']:checked:hover`,
- `[type='checkbox']:checked:focus`,
- `[type='radio']:checked:hover`,
- `[type='radio']:checked:focus`,
- ],
- class: [
- '.form-checkbox:checked:hover',
- '.form-checkbox:checked:focus',
- '.form-radio:checked:hover',
- '.form-radio:checked:focus',
- ],
- styles: {
- 'border-color': 'transparent',
- 'background-color': 'currentColor',
- },
- },
- {
- base: [`[type='checkbox']:indeterminate`],
- class: ['.form-checkbox:indeterminate'],
- styles: {
- 'background-image': `url("${svgToDataUri(
- ` `
- )}")`,
- 'border-color': `transparent`,
- 'background-color': `currentColor`,
- 'background-size': `100% 100%`,
- 'background-position': `center`,
- 'background-repeat': `no-repeat`,
-
- '@media (forced-colors: active) ': {
- appearance: 'auto',
- },
- },
- },
- {
- base: [`[type='checkbox']:indeterminate:hover`, `[type='checkbox']:indeterminate:focus`],
- class: ['.form-checkbox:indeterminate:hover', '.form-checkbox:indeterminate:focus'],
- styles: {
- 'border-color': 'transparent',
- 'background-color': 'currentColor',
- },
- },
- {
- base: [`[type='file']`],
- class: null,
- styles: {
- background: 'unset',
- 'border-color': 'inherit',
- 'border-width': '0',
- 'border-radius': '0',
- padding: '0',
- 'font-size': 'unset',
- 'line-height': 'inherit',
- },
- },
- {
- base: [`[type='file']:focus`],
- class: null,
- styles: {
- outline: [`1px solid ButtonText`, `1px auto -webkit-focus-ring-color`],
- },
- },
- ]
-
- const getStrategyRules = (strategy) =>
- rules
- .map((rule) => {
- if (rule[strategy] === null) return null
-
- return { [rule[strategy]]: rule.styles }
- })
- .filter(Boolean)
-
- if (strategy.includes('base')) {
- addBase(getStrategyRules('base'))
- }
-
- if (strategy.includes('class')) {
- addComponents(getStrategyRules('class'))
- }
- }
-})
-
-module.exports = forms
diff --git a/website/node_modules/@tailwindcss/forms/tailwind.config.js b/website/node_modules/@tailwindcss/forms/tailwind.config.js
deleted file mode 100644
index 5ef17d5d..00000000
--- a/website/node_modules/@tailwindcss/forms/tailwind.config.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- content: ['./index.html', './kitchen-sink.html'],
- theme: {
- extend: {
- //
- },
- },
- plugins: [require('./src')],
-}
diff --git a/website/node_modules/@tailwindcss/typography/LICENSE b/website/node_modules/@tailwindcss/typography/LICENSE
deleted file mode 100644
index d6a82290..00000000
--- a/website/node_modules/@tailwindcss/typography/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Tailwind Labs, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/website/node_modules/@tailwindcss/typography/README.md b/website/node_modules/@tailwindcss/typography/README.md
deleted file mode 100644
index 70970caa..00000000
--- a/website/node_modules/@tailwindcss/typography/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-A plugin that provides a set of `prose` classes you can use to add beautiful typographic defaults to any vanilla HTML you don't control, like HTML rendered from Markdown, or pulled from a CMS.
-
----
-
-## Documentation
-
-For full documentation, visit [tailwindcss.com/docs/typography-plugin](https://tailwindcss.com/docs/typography-plugin).
-
-## Community
-
-For help, discussion about best practices, or any other conversation that would benefit from being searchable:
-
-[Discuss the Tailwind CSS Typography plugin on GitHub](https://github.com/tailwindlabs/tailwindcss/discussions)
-
-For casual chit-chat with others using the framework:
-
-[Join the Tailwind CSS Discord Server](https://tailwindcss.com/discord)
diff --git a/website/node_modules/@tailwindcss/typography/package.json b/website/node_modules/@tailwindcss/typography/package.json
deleted file mode 100644
index 9ef4605b..00000000
--- a/website/node_modules/@tailwindcss/typography/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "@tailwindcss/typography",
- "version": "0.5.10",
- "description": "A Tailwind CSS plugin for automatically styling plain HTML content with beautiful typographic defaults.",
- "main": "src/index.js",
- "types": "src/index.d.ts",
- "files": [
- "src/*.js",
- "src/*.d.ts",
- "dist/"
- ],
- "repository": "https://github.com/tailwindcss/typography",
- "license": "MIT",
- "publishConfig": {
- "access": "public"
- },
- "prettier": {
- "printWidth": 100,
- "semi": false,
- "singleQuote": true,
- "trailingComma": "es5"
- },
- "scripts": {
- "test": "jest",
- "dev": "next dev demo",
- "build": "next build demo",
- "export": "next export demo",
- "start": "next start demo"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || insiders"
- },
- "devDependencies": {
- "@mdx-js/loader": "^1.0.19",
- "@mdx-js/mdx": "^1.6.6",
- "@next/mdx": "^8.1.0",
- "autoprefixer": "^10.2.1",
- "highlight.js": "^10.4.1",
- "jest": "^26.6.1",
- "jest-diff": "^27.3.1",
- "next": "^12.0.1",
- "postcss": "^8.2.3",
- "prettier": "^2.1.2",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
- "tailwindcss": "^3.2.2"
- },
- "dependencies": {
- "lodash.castarray": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.merge": "^4.6.2",
- "postcss-selector-parser": "6.0.10"
- },
- "jest": {
- "setupFilesAfterEnv": [
- "/jest/customMatchers.js"
- ]
- }
-}
diff --git a/website/node_modules/@tailwindcss/typography/src/index.d.ts b/website/node_modules/@tailwindcss/typography/src/index.d.ts
deleted file mode 100644
index 5c38097c..00000000
--- a/website/node_modules/@tailwindcss/typography/src/index.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-declare function plugin(options?: Partial<{ className: string; target: 'modern' | 'legacy' }>): {
- handler: () => void
-}
-
-declare namespace plugin {
- const __isOptionsFunction: true
-}
-
-export = plugin
diff --git a/website/node_modules/@tailwindcss/typography/src/index.js b/website/node_modules/@tailwindcss/typography/src/index.js
deleted file mode 100644
index 7b32ca7d..00000000
--- a/website/node_modules/@tailwindcss/typography/src/index.js
+++ /dev/null
@@ -1,139 +0,0 @@
-const plugin = require('tailwindcss/plugin')
-const merge = require('lodash.merge')
-const castArray = require('lodash.castarray')
-const styles = require('./styles')
-const { commonTrailingPseudos } = require('./utils')
-
-const computed = {
- // Reserved for future "magic properties", for example:
- // bulletColor: (color) => ({ 'ul > li::before': { backgroundColor: color } }),
-}
-
-function inWhere(selector, { className, modifier, prefix }) {
- let prefixedNot = prefix(`.not-${className}`).slice(1)
- let selectorPrefix = selector.startsWith('>')
- ? `${modifier === 'DEFAULT' ? `.${className}` : `.${className}-${modifier}`} `
- : ''
-
- // Parse the selector, if every component ends in the same pseudo element(s) then move it to the end
- let [trailingPseudo, rebuiltSelector] = commonTrailingPseudos(selector)
-
- if (trailingPseudo) {
- return `:where(${selectorPrefix}${rebuiltSelector}):not(:where([class~="${prefixedNot}"],[class~="${prefixedNot}"] *))${trailingPseudo}`
- }
-
- return `:where(${selectorPrefix}${selector}):not(:where([class~="${prefixedNot}"],[class~="${prefixedNot}"] *))`
-}
-
-function isObject(value) {
- return typeof value === 'object' && value !== null
-}
-
-function configToCss(config = {}, { target, className, modifier, prefix }) {
- function updateSelector(k, v) {
- if (target === 'legacy') {
- return [k, v]
- }
-
- if (Array.isArray(v)) {
- return [k, v]
- }
-
- if (isObject(v)) {
- let nested = Object.values(v).some(isObject)
- if (nested) {
- return [
- inWhere(k, { className, modifier, prefix }),
- v,
- Object.fromEntries(Object.entries(v).map(([k, v]) => updateSelector(k, v))),
- ]
- }
-
- return [inWhere(k, { className, modifier, prefix }), v]
- }
-
- return [k, v]
- }
-
- return Object.fromEntries(
- Object.entries(
- merge(
- {},
- ...Object.keys(config)
- .filter((key) => computed[key])
- .map((key) => computed[key](config[key])),
- ...castArray(config.css || {})
- )
- ).map(([k, v]) => updateSelector(k, v))
- )
-}
-
-module.exports = plugin.withOptions(
- ({ className = 'prose', target = 'modern' } = {}) => {
- return function ({ addVariant, addComponents, theme, prefix }) {
- let modifiers = theme('typography')
-
- let options = { className, prefix }
-
- for (let [name, ...selectors] of [
- ['headings', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'th'],
- ['h1'],
- ['h2'],
- ['h3'],
- ['h4'],
- ['h5'],
- ['h6'],
- ['p'],
- ['a'],
- ['blockquote'],
- ['figure'],
- ['figcaption'],
- ['strong'],
- ['em'],
- ['code'],
- ['pre'],
- ['ol'],
- ['ul'],
- ['li'],
- ['table'],
- ['thead'],
- ['tr'],
- ['th'],
- ['td'],
- ['img'],
- ['video'],
- ['hr'],
- ['lead', '[class~="lead"]'],
- ]) {
- selectors = selectors.length === 0 ? [name] : selectors
-
- let selector =
- target === 'legacy' ? selectors.map((selector) => `& ${selector}`) : selectors.join(', ')
-
- addVariant(
- `${className}-${name}`,
- target === 'legacy' ? selector : `& :is(${inWhere(selector, options)})`
- )
- }
-
- addComponents(
- Object.keys(modifiers).map((modifier) => ({
- [modifier === 'DEFAULT' ? `.${className}` : `.${className}-${modifier}`]: configToCss(
- modifiers[modifier],
- {
- target,
- className,
- modifier,
- prefix,
- }
- ),
- }))
- )
- }
- },
- () => {
- return {
- theme: { typography: styles },
- }
- }
-)
diff --git a/website/node_modules/@tailwindcss/typography/src/index.test.js b/website/node_modules/@tailwindcss/typography/src/index.test.js
deleted file mode 100644
index 94e35525..00000000
--- a/website/node_modules/@tailwindcss/typography/src/index.test.js
+++ /dev/null
@@ -1,1413 +0,0 @@
-const path = require('path')
-const tailwind = require('tailwindcss')
-const postcss = require('postcss')
-const typographyPlugin = require('.')
-
-let html = String.raw
-let css = String.raw
-
-let vars = `
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
-`
-let defaults = css`
- *,
- ::before,
- ::after {
- ${vars}
- }
- ::backdrop {
- ${vars}
- }
-`
-
-function run(config, plugin = tailwind) {
- let { currentTestName } = expect.getState()
- config = {
- ...{ plugins: [typographyPlugin], corePlugins: { preflight: false } },
- ...config,
- }
-
- return postcss(plugin(config)).process(
- ['@tailwind base;', '@tailwind components;', '@tailwind utilities'].join('\n'),
- {
- from: `${path.resolve(__filename)}?test=${currentTestName}`,
- }
- )
-}
-
-test('specificity is reduced with :where', async () => {
- let config = {
- content: [{ raw: html`
` }],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- maxWidth: '65ch',
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'ol[type="A"]': {
- listStyleType: 'upper-alpha',
- },
- 'blockquote p:first-of-type::before': {
- content: 'open-quote',
- },
- 'blockquote p:last-of-type::after': {
- content: 'close-quote',
- },
- 'h4 strong': {
- fontWeight: '700',
- },
- 'figure > *': {
- margin: 0,
- },
- 'ol > li::marker': {
- fontWeight: '400',
- color: 'var(--tw-prose-counters)',
- },
- '> ul > li p': {
- marginTop: '16px',
- marginBottom: '16px',
- },
- 'code::before': {
- content: '"`"',
- },
- 'code::after': {
- content: '"`"',
- },
- },
- ],
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .prose {
- color: var(--tw-prose-body);
- max-width: 65ch;
- }
- .prose :where([class~='lead']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-lead);
- }
- .prose :where(strong):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-bold);
- font-weight: 600;
- }
- .prose :where(ol[type='A']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- list-style-type: upper-alpha;
- }
- .prose
- :where(blockquote p:first-of-type):not(:where([class~='not-prose'], [class~='not-prose']
- *))::before {
- content: open-quote;
- }
- .prose
- :where(blockquote p:last-of-type):not(:where([class~='not-prose'], [class~='not-prose']
- *))::after {
- content: close-quote;
- }
- .prose :where(h4 strong):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-weight: 700;
- }
- .prose :where(figure > *):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- margin: 0;
- }
- .prose :where(ol > li):not(:where([class~='not-prose'], [class~='not-prose'] *))::marker {
- font-weight: 400;
- color: var(--tw-prose-counters);
- }
- .prose
- :where(.prose > ul > li p):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- margin-top: 16px;
- margin-bottom: 16px;
- }
- .prose :where(code):not(:where([class~='not-prose'], [class~='not-prose'] *))::before {
- content: '`';
- }
- .prose :where(code):not(:where([class~='not-prose'], [class~='not-prose'] *))::after {
- content: '`';
- }
- `
- )
- })
-})
-
-test('variants', async () => {
- let config = {
- content: [{ raw: html`
` }],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'red',
- p: {
- color: 'lime',
- },
- '> ul > li': {
- color: 'purple',
- },
- },
- ],
- },
- lg: {
- css: {
- color: 'green',
- p: {
- color: 'tomato',
- },
- '> ul > li': {
- color: 'blue',
- },
- },
- },
- xl: {
- css: {
- color: 'yellow',
- '> ul > li': {
- color: 'hotpink',
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .hover\:prose-lg:hover {
- color: green;
- }
- .hover\:prose-lg:hover :where(p):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: tomato;
- }
- .hover\:prose-lg:hover
- :where(.hover\:prose-lg:hover
- > ul
- > li):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: blue;
- }
- @media (min-width: 640px) {
- .sm\:prose {
- color: red;
- }
- .sm\:prose :where(p):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: lime;
- }
- .sm\:prose
- :where(.sm\:prose > ul > li):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: purple;
- }
- }
- @media (min-width: 1024px) {
- .lg\:prose-lg {
- color: green;
- }
- .lg\:prose-lg :where(p):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: tomato;
- }
- .lg\:prose-lg
- :where(.lg\:prose-lg > ul > li):not(:where([class~='not-prose'], [class~='not-prose']
- *)) {
- color: blue;
- }
- }
- `
- )
- })
-})
-
-test('modifiers', async () => {
- let config = {
- content: [{ raw: html`
` }],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- maxWidth: '65ch',
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'ol[type="A"]': {
- listStyleType: 'upper-alpha',
- },
- 'blockquote p:first-of-type::before': {
- content: 'open-quote',
- },
- 'blockquote p:last-of-type::after': {
- content: 'close-quote',
- },
- 'h4 strong': {
- fontWeight: '700',
- },
- 'figure > *': {
- margin: 0,
- },
- 'ol > li::marker': {
- fontWeight: '400',
- color: 'var(--tw-prose-counters)',
- },
- 'code::before': {
- content: '"`"',
- },
- 'code::after': {
- content: '"`"',
- },
- },
- ],
- },
- lg: {
- css: [
- {
- fontSize: '18px',
- lineHeight: '1.75',
- p: {
- marginTop: '24px',
- marginBottom: '24px',
- },
- '[class~="lead"]': {
- fontSize: '22px',
- },
- blockquote: {
- marginTop: '40px',
- marginBottom: '40px',
- },
- '> ul > li': {
- paddingLeft: '12px',
- },
- h1: {
- fontSize: '48px',
- marginTop: '0',
- marginBottom: '40px',
- },
- h2: {
- fontSize: '30px',
- marginTop: '56px',
- marginBottom: '32px',
- },
- h3: {
- fontSize: '24px',
- marginTop: '40px',
- marginBottom: '16px',
- },
- },
- ],
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .prose {
- color: var(--tw-prose-body);
- max-width: 65ch;
- }
- .prose :where([class~='lead']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-lead);
- }
- .prose :where(strong):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-bold);
- font-weight: 600;
- }
- .prose :where(ol[type='A']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- list-style-type: upper-alpha;
- }
- .prose
- :where(blockquote p:first-of-type):not(:where([class~='not-prose'], [class~='not-prose']
- *))::before {
- content: open-quote;
- }
- .prose
- :where(blockquote p:last-of-type):not(:where([class~='not-prose'], [class~='not-prose']
- *))::after {
- content: close-quote;
- }
- .prose :where(h4 strong):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-weight: 700;
- }
- .prose :where(figure > *):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- margin: 0;
- }
- .prose :where(ol > li):not(:where([class~='not-prose'], [class~='not-prose'] *))::marker {
- font-weight: 400;
- color: var(--tw-prose-counters);
- }
- .prose :where(code):not(:where([class~='not-prose'], [class~='not-prose'] *))::before {
- content: '`';
- }
- .prose :where(code):not(:where([class~='not-prose'], [class~='not-prose'] *))::after {
- content: '`';
- }
- .prose-lg {
- font-size: 18px;
- line-height: 1.75;
- }
- .prose-lg :where(p):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- margin-top: 24px;
- margin-bottom: 24px;
- }
- .prose-lg
- :where([class~='lead']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-size: 22px;
- }
- .prose-lg :where(blockquote):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- margin-top: 40px;
- margin-bottom: 40px;
- }
- .prose-lg
- :where(.prose-lg > ul > li):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- padding-left: 12px;
- }
- .prose-lg :where(h1):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-size: 48px;
- margin-top: 0;
- margin-bottom: 40px;
- }
- .prose-lg :where(h2):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-size: 30px;
- margin-top: 56px;
- margin-bottom: 32px;
- }
- .prose-lg :where(h3):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-size: 24px;
- margin-top: 40px;
- margin-bottom: 16px;
- }
- `
- )
- })
-})
-
-test('legacy target', async () => {
- let config = {
- plugins: [typographyPlugin({ target: 'legacy' })],
- content: [
- { raw: html`
` },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- maxWidth: '65ch',
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'ol[type="A"]': {
- listStyleType: 'upper-alpha',
- },
- 'blockquote p:first-of-type::before': {
- content: 'open-quote',
- },
- 'blockquote p:last-of-type::after': {
- content: 'close-quote',
- },
- 'h4 strong': {
- fontWeight: '700',
- },
- 'figure > *': {
- margin: 0,
- },
- 'ol > li::marker': {
- fontWeight: '400',
- color: 'var(--tw-prose-counters)',
- },
- 'code::before': {
- content: '"`"',
- },
- 'code::after': {
- content: '"`"',
- },
- },
- ],
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .prose {
- color: var(--tw-prose-body);
- max-width: 65ch;
- }
- .prose [class~='lead'] {
- color: var(--tw-prose-lead);
- }
- .prose strong {
- color: var(--tw-prose-bold);
- font-weight: 600;
- }
- .prose ol[type='A'] {
- list-style-type: upper-alpha;
- }
- .prose blockquote p:first-of-type::before {
- content: open-quote;
- }
- .prose blockquote p:last-of-type::after {
- content: close-quote;
- }
- .prose h4 strong {
- font-weight: 700;
- }
- .prose figure > * {
- margin: 0;
- }
- .prose ol > li::marker {
- font-weight: 400;
- color: var(--tw-prose-counters);
- }
- .prose code::before {
- content: '`';
- }
- .prose code::after {
- content: '`';
- }
- .prose-headings\:text-ellipsis h1 {
- text-overflow: ellipsis;
- }
- .prose-headings\:text-ellipsis h2 {
- text-overflow: ellipsis;
- }
- .prose-headings\:text-ellipsis h3 {
- text-overflow: ellipsis;
- }
- .prose-headings\:text-ellipsis h4 {
- text-overflow: ellipsis;
- }
- .prose-headings\:text-ellipsis h5 {
- text-overflow: ellipsis;
- }
- .prose-headings\:text-ellipsis h6 {
- text-overflow: ellipsis;
- }
- .prose-headings\:text-ellipsis th {
- text-overflow: ellipsis;
- }
- .prose-h1\:text-center h1 {
- text-align: center;
- }
- `
- )
- })
-})
-
-test('custom class name', async () => {
- let config = {
- plugins: [typographyPlugin({ className: 'markdown' })],
- content: [{ raw: html`
` }],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- maxWidth: '65ch',
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'ol[type="A"]': {
- listStyleType: 'upper-alpha',
- },
- 'blockquote p:first-of-type::before': {
- content: 'open-quote',
- },
- 'blockquote p:last-of-type::after': {
- content: 'close-quote',
- },
- 'h4 strong': {
- fontWeight: '700',
- },
- 'figure > *': {
- margin: 0,
- },
- 'ol > li::marker': {
- fontWeight: '400',
- color: 'var(--tw-prose-counters)',
- },
- 'code::before': {
- content: '"`"',
- },
- 'code::after': {
- content: '"`"',
- },
- },
- ],
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .markdown {
- color: var(--tw-prose-body);
- max-width: 65ch;
- }
- .markdown
- :where([class~='lead']):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- color: var(--tw-prose-lead);
- }
- .markdown :where(strong):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- color: var(--tw-prose-bold);
- font-weight: 600;
- }
- .markdown
- :where(ol[type='A']):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- list-style-type: upper-alpha;
- }
- .markdown
- :where(blockquote
- p:first-of-type):not(:where([class~='not-markdown'], [class~='not-markdown']
- *))::before {
- content: open-quote;
- }
- .markdown
- :where(blockquote
- p:last-of-type):not(:where([class~='not-markdown'], [class~='not-markdown'] *))::after {
- content: close-quote;
- }
- .markdown
- :where(h4 strong):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- font-weight: 700;
- }
- .markdown
- :where(figure > *):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- margin: 0;
- }
- .markdown
- :where(ol > li):not(:where([class~='not-markdown'], [class~='not-markdown'] *))::marker {
- font-weight: 400;
- color: var(--tw-prose-counters);
- }
- .markdown
- :where(code):not(:where([class~='not-markdown'], [class~='not-markdown'] *))::before {
- content: '`';
- }
- .markdown
- :where(code):not(:where([class~='not-markdown'], [class~='not-markdown'] *))::after {
- content: '`';
- }
- `
- )
- })
-})
-
-test('element variants', async () => {
- let config = {
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'h4 strong': {
- fontWeight: '700',
- },
- },
- ],
- },
- },
- },
- }
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .prose {
- color: var(--tw-prose-body);
- }
- .prose :where([class~='lead']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-lead);
- }
- .prose :where(strong):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-bold);
- font-weight: 600;
- }
- .prose :where(h4 strong):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- font-weight: 700;
- }
- .prose-headings\:underline
- :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~='not-prose'], [class~='not-prose']
- *))) {
- text-decoration-line: underline;
- }
- .prose-h1\:text-3xl
- :is(:where(h1):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-size: 1.875rem;
- line-height: 2.25rem;
- }
- .prose-h2\:text-2xl
- :is(:where(h2):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-size: 1.5rem;
- line-height: 2rem;
- }
- .prose-h3\:text-xl
- :is(:where(h3):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-size: 1.25rem;
- line-height: 1.75rem;
- }
- .prose-h4\:text-lg
- :is(:where(h4):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-size: 1.125rem;
- line-height: 1.75rem;
- }
- .prose-p\:text-gray-700
- :is(:where(p):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
- }
- .prose-a\:font-bold
- :is(:where(a):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-weight: 700;
- }
- .prose-blockquote\:italic
- :is(:where(blockquote):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-style: italic;
- }
- .prose-figure\:mx-auto
- :is(:where(figure):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- margin-left: auto;
- margin-right: auto;
- }
- .prose-figcaption\:opacity-75
- :is(:where(figcaption):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- opacity: 0.75;
- }
- .prose-strong\:font-medium
- :is(:where(strong):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-weight: 500;
- }
- .prose-em\:italic
- :is(:where(em):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-style: italic;
- }
- .prose-code\:font-mono
- :is(:where(code):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
- 'Courier New', monospace;
- }
- .prose-pre\:font-mono
- :is(:where(pre):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
- 'Courier New', monospace;
- }
- .prose-ol\:pl-6 :is(:where(ol):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- padding-left: 1.5rem;
- }
- .prose-ul\:pl-8 :is(:where(ul):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- padding-left: 2rem;
- }
- .prose-li\:my-4 :is(:where(li):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- margin-top: 1rem;
- margin-bottom: 1rem;
- }
- .prose-table\:my-8
- :is(:where(table):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- margin-top: 2rem;
- margin-bottom: 2rem;
- }
- .prose-thead\:border-red-300
- :is(:where(thead):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- --tw-border-opacity: 1;
- border-color: rgb(252 165 165 / var(--tw-border-opacity));
- }
- .prose-tr\:border-red-200
- :is(:where(tr):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- --tw-border-opacity: 1;
- border-color: rgb(254 202 202 / var(--tw-border-opacity));
- }
- .prose-th\:text-left
- :is(:where(th):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- text-align: left;
- }
- .prose-img\:rounded-lg
- :is(:where(img):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- border-radius: 0.5rem;
- }
- .prose-video\:my-12
- :is(:where(video):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- margin-top: 3rem;
- margin-bottom: 3rem;
- }
- .prose-hr\:border-t-2
- :is(:where(hr):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- border-top-width: 2px;
- }
- .prose-lead\:italic
- :is(:where([class~='lead']):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-style: italic;
- }
- `
- )
- })
-})
-
-test('element variants with custom class name', async () => {
- let config = {
- plugins: [typographyPlugin({ className: 'markdown' })],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'h4 strong': {
- fontWeight: '700',
- },
- },
- ],
- },
- },
- },
- }
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .markdown {
- color: var(--tw-prose-body);
- }
- .markdown
- :where([class~='lead']):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- color: var(--tw-prose-lead);
- }
- .markdown :where(strong):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- color: var(--tw-prose-bold);
- font-weight: 600;
- }
- .markdown
- :where(h4 strong):not(:where([class~='not-markdown'], [class~='not-markdown'] *)) {
- font-weight: 700;
- }
- .markdown-headings\:underline
- :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~='not-markdown'], [class~='not-markdown']
- *))) {
- text-decoration-line: underline;
- }
- .markdown-h1\:text-3xl
- :is(:where(h1):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-size: 1.875rem;
- line-height: 2.25rem;
- }
- .markdown-h2\:text-2xl
- :is(:where(h2):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-size: 1.5rem;
- line-height: 2rem;
- }
- .markdown-h3\:text-xl
- :is(:where(h3):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-size: 1.25rem;
- line-height: 1.75rem;
- }
- .markdown-h4\:text-lg
- :is(:where(h4):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-size: 1.125rem;
- line-height: 1.75rem;
- }
- .markdown-p\:text-gray-700
- :is(:where(p):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
- }
- .markdown-a\:font-bold
- :is(:where(a):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-weight: 700;
- }
- .markdown-blockquote\:italic
- :is(:where(blockquote):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-style: italic;
- }
- .markdown-figure\:mx-auto
- :is(:where(figure):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- margin-left: auto;
- margin-right: auto;
- }
- .markdown-figcaption\:opacity-75
- :is(:where(figcaption):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- opacity: 0.75;
- }
- .markdown-strong\:font-medium
- :is(:where(strong):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-weight: 500;
- }
- .markdown-em\:italic
- :is(:where(em):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-style: italic;
- }
- .markdown-code\:font-mono
- :is(:where(code):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
- 'Courier New', monospace;
- }
- .markdown-pre\:font-mono
- :is(:where(pre):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
- 'Courier New', monospace;
- }
- .markdown-ol\:pl-6
- :is(:where(ol):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- padding-left: 1.5rem;
- }
- .markdown-ul\:pl-8
- :is(:where(ul):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- padding-left: 2rem;
- }
- .markdown-li\:my-4
- :is(:where(li):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- margin-top: 1rem;
- margin-bottom: 1rem;
- }
- .markdown-table\:my-8
- :is(:where(table):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- margin-top: 2rem;
- margin-bottom: 2rem;
- }
- .markdown-thead\:border-red-300
- :is(:where(thead):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- --tw-border-opacity: 1;
- border-color: rgb(252 165 165 / var(--tw-border-opacity));
- }
- .markdown-tr\:border-red-200
- :is(:where(tr):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- --tw-border-opacity: 1;
- border-color: rgb(254 202 202 / var(--tw-border-opacity));
- }
- .markdown-th\:text-left
- :is(:where(th):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- text-align: left;
- }
- .markdown-img\:rounded-lg
- :is(:where(img):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- border-radius: 0.5rem;
- }
- .markdown-video\:my-12
- :is(:where(video):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- margin-top: 3rem;
- margin-bottom: 3rem;
- }
- .markdown-hr\:border-t-2
- :is(:where(hr):not(:where([class~='not-markdown'], [class~='not-markdown'] *))) {
- border-top-width: 2px;
- }
- .markdown-lead\:italic
- :is(:where([class~='lead']):not(:where([class~='not-markdown'], [class~='not-markdown']
- *))) {
- font-style: italic;
- }
- `
- )
- })
-})
-
-test('customizing defaults with multiple values does not result in invalid css', async () => {
- let config = {
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: {
- textAlign: ['-webkit-match-parent', 'match-parent'],
- },
- },
- },
- },
- }
- return run(config).then((result) => {
- expect(result.css).toMatchFormattedCss(
- css`
- ${defaults}
-
- .prose {
- text-align: -webkit-match-parent;
- text-align: match-parent;
- }
- `
- )
- })
-})
-
-it('should be possible to use nested syntax (&) when extending the config', () => {
- let config = {
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- extend: {
- typography: {
- DEFAULT: {
- css: {
- color: '#000',
- a: {
- color: '#888',
- '&:hover': {
- color: '#ff0000',
- },
- },
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .prose {
- color: #000;
- max-width: 65ch;
- }
- `)
-
- expect(result.css).toIncludeCss(css`
- .prose :where(a):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: #888;
- text-decoration: underline;
- font-weight: 500;
- }
- `)
-
- expect(result.css).toIncludeCss(css`
- .prose :where(a):not(:where([class~='not-prose'], [class~='not-prose'] *)):hover {
- color: #ff0000;
- }
- `)
- })
-})
-
-it('should be possible to specify custom h5 and h6 styles', () => {
- let config = {
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .prose-h5\:text-sm :is(:where(h5):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-size: 0.875rem;
- line-height: 1.25rem;
- }
- .prose-h6\:text-xl :is(:where(h6):not(:where([class~='not-prose'], [class~='not-prose'] *))) {
- font-size: 1.25rem;
- line-height: 1.75rem;
- }
- `)
- })
-})
-
-it('should not break with multiple selectors with pseudo elements using variants', () => {
- let config = {
- darkMode: 'class',
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: {
- 'ol li::before, ul li::before': {
- color: 'red',
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .dark
- .dark\:prose
- :where(ol li, ul li):not(:where([class~='not-prose'], [class~='not-prose'] *))::before {
- color: red;
- }
- `)
- })
-})
-
-it('lifts all common, trailing pseudo elements when the same across all selectors', () => {
- let config = {
- darkMode: 'class',
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: {
- 'ol li::marker::before, ul li::marker::before': {
- color: 'red',
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .prose
- :where(ol li, ul li):not(:where([class~='not-prose'], [class~='not-prose']
- *))::marker::before {
- color: red;
- }
- `)
-
- // TODO: The output here is a bug in tailwindcss variant selector rewriting
- // IT should be ::marker::before
- expect(result.css).toIncludeCss(css`
- .dark
- .dark\:prose
- :where(ol li, ul li):not(:where([class~='not-prose'], [class~='not-prose']
- *))::before::marker {
- color: red;
- }
- `)
- })
-})
-
-it('does not modify selectors with differing pseudo elements', () => {
- let config = {
- darkMode: 'class',
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: {
- 'ol li::before, ul li::after': {
- color: 'red',
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .prose
- :where(ol li::before, ul li::after):not(:where([class~='not-prose'], [class~='not-prose']
- *)) {
- color: red;
- }
- `)
-
- // TODO: The output here is a bug in tailwindcss variant selector rewriting
- expect(result.css).toIncludeCss(css`
- .dark
- .dark\:prose
- :where(ol li, ul li):not(:where([class~='not-prose'], [class~='not-prose'] *))::before,
- ::after {
- color: red;
- }
- `)
- })
-})
-
-it('lifts only the common, trailing pseudo elements from selectors', () => {
- let config = {
- darkMode: 'class',
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: {
- 'ol li::scroll-thumb::before, ul li::scroll-track::before': {
- color: 'red',
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .prose
- :where(ol li::scroll-thumb, ul
- li::scroll-track):not(:where([class~='not-prose'], [class~='not-prose'] *))::before {
- color: red;
- }
- `)
-
- // TODO: The output here is a bug in tailwindcss variant selector rewriting
- expect(result.css).toIncludeCss(css`
- .dark
- .dark\:prose
- :where(ol li, ul li):not(:where([class~='not-prose'], [class~='not-prose']
- *))::scroll-thumb,
- ::scroll-track,
- ::before {
- color: red;
- }
- `)
- })
-})
-
-it('ignores common non-trailing pseudo-elements in selectors', () => {
- let config = {
- darkMode: 'class',
- plugins: [typographyPlugin()],
- content: [
- {
- raw: html`
`,
- },
- ],
- theme: {
- typography: {
- DEFAULT: {
- css: {
- 'ol li::before::scroll-thumb, ul li::before::scroll-track': {
- color: 'red',
- },
- },
- },
- },
- },
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(css`
- .prose
- :where(ol li::before::scroll-thumb, ul
- li::before::scroll-track):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: red;
- }
- `)
-
- // TODO: The output here is a bug in tailwindcss variant selector rewriting
- expect(result.css).toIncludeCss(css`
- .dark
- .dark\:prose
- :where(ol li::scroll-thumb, ul
- li::scroll-track):not(:where([class~='not-prose'], [class~='not-prose'] *))::before,
- ::before {
- color: red;
- }
- `)
- })
-})
-
-test('lead styles are inserted after paragraph styles', async () => {
- let config = {
- content: [{ raw: html`
` }],
- }
-
- return run(config).then((result) => {
- expect(result.css).toIncludeCss(
- css`
- .prose {
- color: var(--tw-prose-body);
- max-width: 65ch;
- }
- .prose :where(p):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- margin-top: 1.25em;
- margin-bottom: 1.25em;
- }
- .prose :where([class~='lead']):not(:where([class~='not-prose'], [class~='not-prose'] *)) {
- color: var(--tw-prose-lead);
- font-size: 1.25em;
- line-height: 1.6;
- margin-top: 1.2em;
- margin-bottom: 1.2em;
- }
- `
- )
- })
-})
diff --git a/website/node_modules/@tailwindcss/typography/src/styles.js b/website/node_modules/@tailwindcss/typography/src/styles.js
deleted file mode 100644
index faa1af85..00000000
--- a/website/node_modules/@tailwindcss/typography/src/styles.js
+++ /dev/null
@@ -1,1629 +0,0 @@
-const colors = require('tailwindcss/colors')
-
-const round = (num) =>
- num
- .toFixed(7)
- .replace(/(\.[0-9]+?)0+$/, '$1')
- .replace(/\.0$/, '')
-const rem = (px) => `${round(px / 16)}rem`
-const em = (px, base) => `${round(px / base)}em`
-const hexToRgb = (hex) => {
- hex = hex.replace('#', '')
- hex = hex.length === 3 ? hex.replace(/./g, '$&$&') : hex
- const r = parseInt(hex.substring(0, 2), 16)
- const g = parseInt(hex.substring(2, 4), 16)
- const b = parseInt(hex.substring(4, 6), 16)
- return `${r} ${g} ${b}`
-}
-
-let defaultModifiers = {
- sm: {
- css: [
- {
- fontSize: rem(14),
- lineHeight: round(24 / 14),
- p: {
- marginTop: em(16, 14),
- marginBottom: em(16, 14),
- },
- '[class~="lead"]': {
- fontSize: em(18, 14),
- lineHeight: round(28 / 18),
- marginTop: em(16, 18),
- marginBottom: em(16, 18),
- },
- blockquote: {
- marginTop: em(24, 18),
- marginBottom: em(24, 18),
- paddingLeft: em(20, 18),
- },
- h1: {
- fontSize: em(30, 14),
- marginTop: '0',
- marginBottom: em(24, 30),
- lineHeight: round(36 / 30),
- },
- h2: {
- fontSize: em(20, 14),
- marginTop: em(32, 20),
- marginBottom: em(16, 20),
- lineHeight: round(28 / 20),
- },
- h3: {
- fontSize: em(18, 14),
- marginTop: em(28, 18),
- marginBottom: em(8, 18),
- lineHeight: round(28 / 18),
- },
- h4: {
- marginTop: em(20, 14),
- marginBottom: em(8, 14),
- lineHeight: round(20 / 14),
- },
- img: {
- marginTop: em(24, 14),
- marginBottom: em(24, 14),
- },
- picture: {
- marginTop: em(24, 14),
- marginBottom: em(24, 14),
- },
- 'picture > img': {
- marginTop: '0',
- marginBottom: '0',
- },
- video: {
- marginTop: em(24, 14),
- marginBottom: em(24, 14),
- },
- kbd: {
- fontSize: em(12, 14),
- borderRadius: rem(5),
- paddingTop: em(2, 14),
- paddingRight: em(5, 14),
- paddingBottom: em(2, 14),
- paddingLeft: em(5, 14),
- },
- code: {
- fontSize: em(12, 14),
- },
- 'h2 code': {
- fontSize: em(18, 20),
- },
- 'h3 code': {
- fontSize: em(16, 18),
- },
- pre: {
- fontSize: em(12, 14),
- lineHeight: round(20 / 12),
- marginTop: em(20, 12),
- marginBottom: em(20, 12),
- borderRadius: rem(4),
- paddingTop: em(8, 12),
- paddingRight: em(12, 12),
- paddingBottom: em(8, 12),
- paddingLeft: em(12, 12),
- },
- ol: {
- marginTop: em(16, 14),
- marginBottom: em(16, 14),
- paddingLeft: em(22, 14),
- },
- ul: {
- marginTop: em(16, 14),
- marginBottom: em(16, 14),
- paddingLeft: em(22, 14),
- },
- li: {
- marginTop: em(4, 14),
- marginBottom: em(4, 14),
- },
- 'ol > li': {
- paddingLeft: em(6, 14),
- },
- 'ul > li': {
- paddingLeft: em(6, 14),
- },
- '> ul > li p': {
- marginTop: em(8, 14),
- marginBottom: em(8, 14),
- },
- '> ul > li > *:first-child': {
- marginTop: em(16, 14),
- },
- '> ul > li > *:last-child': {
- marginBottom: em(16, 14),
- },
- '> ol > li > *:first-child': {
- marginTop: em(16, 14),
- },
- '> ol > li > *:last-child': {
- marginBottom: em(16, 14),
- },
- 'ul ul, ul ol, ol ul, ol ol': {
- marginTop: em(8, 14),
- marginBottom: em(8, 14),
- },
- dl: {
- marginTop: em(16, 14),
- marginBottom: em(16, 14),
- },
- dt: {
- marginTop: em(16, 14),
- },
- dd: {
- marginTop: em(4, 14),
- paddingLeft: em(22, 14),
- },
- hr: {
- marginTop: em(40, 14),
- marginBottom: em(40, 14),
- },
- 'hr + *': {
- marginTop: '0',
- },
- 'h2 + *': {
- marginTop: '0',
- },
- 'h3 + *': {
- marginTop: '0',
- },
- 'h4 + *': {
- marginTop: '0',
- },
- table: {
- fontSize: em(12, 14),
- lineHeight: round(18 / 12),
- },
- 'thead th': {
- paddingRight: em(12, 12),
- paddingBottom: em(8, 12),
- paddingLeft: em(12, 12),
- },
- 'thead th:first-child': {
- paddingLeft: '0',
- },
- 'thead th:last-child': {
- paddingRight: '0',
- },
- 'tbody td, tfoot td': {
- paddingTop: em(8, 12),
- paddingRight: em(12, 12),
- paddingBottom: em(8, 12),
- paddingLeft: em(12, 12),
- },
- 'tbody td:first-child, tfoot td:first-child': {
- paddingLeft: '0',
- },
- 'tbody td:last-child, tfoot td:last-child': {
- paddingRight: '0',
- },
- figure: {
- marginTop: em(24, 14),
- marginBottom: em(24, 14),
- },
- 'figure > *': {
- marginTop: '0',
- marginBottom: '0',
- },
- figcaption: {
- fontSize: em(12, 14),
- lineHeight: round(16 / 12),
- marginTop: em(8, 12),
- },
- },
- {
- '> :first-child': {
- marginTop: '0',
- },
- '> :last-child': {
- marginBottom: '0',
- },
- },
- ],
- },
- base: {
- css: [
- {
- fontSize: rem(16),
- lineHeight: round(28 / 16),
- p: {
- marginTop: em(20, 16),
- marginBottom: em(20, 16),
- },
- '[class~="lead"]': {
- fontSize: em(20, 16),
- lineHeight: round(32 / 20),
- marginTop: em(24, 20),
- marginBottom: em(24, 20),
- },
- blockquote: {
- marginTop: em(32, 20),
- marginBottom: em(32, 20),
- paddingLeft: em(20, 20),
- },
- h1: {
- fontSize: em(36, 16),
- marginTop: '0',
- marginBottom: em(32, 36),
- lineHeight: round(40 / 36),
- },
- h2: {
- fontSize: em(24, 16),
- marginTop: em(48, 24),
- marginBottom: em(24, 24),
- lineHeight: round(32 / 24),
- },
- h3: {
- fontSize: em(20, 16),
- marginTop: em(32, 20),
- marginBottom: em(12, 20),
- lineHeight: round(32 / 20),
- },
- h4: {
- marginTop: em(24, 16),
- marginBottom: em(8, 16),
- lineHeight: round(24 / 16),
- },
- img: {
- marginTop: em(32, 16),
- marginBottom: em(32, 16),
- },
- picture: {
- marginTop: em(32, 16),
- marginBottom: em(32, 16),
- },
- 'picture > img': {
- marginTop: '0',
- marginBottom: '0',
- },
- video: {
- marginTop: em(32, 16),
- marginBottom: em(32, 16),
- },
- kbd: {
- fontSize: em(14, 16),
- borderRadius: rem(5),
- paddingTop: em(3, 16),
- paddingRight: em(6, 16),
- paddingBottom: em(3, 16),
- paddingLeft: em(6, 16),
- },
- code: {
- fontSize: em(14, 16),
- },
- 'h2 code': {
- fontSize: em(21, 24),
- },
- 'h3 code': {
- fontSize: em(18, 20),
- },
- pre: {
- fontSize: em(14, 16),
- lineHeight: round(24 / 14),
- marginTop: em(24, 14),
- marginBottom: em(24, 14),
- borderRadius: rem(6),
- paddingTop: em(12, 14),
- paddingRight: em(16, 14),
- paddingBottom: em(12, 14),
- paddingLeft: em(16, 14),
- },
- ol: {
- marginTop: em(20, 16),
- marginBottom: em(20, 16),
- paddingLeft: em(26, 16),
- },
- ul: {
- marginTop: em(20, 16),
- marginBottom: em(20, 16),
- paddingLeft: em(26, 16),
- },
- li: {
- marginTop: em(8, 16),
- marginBottom: em(8, 16),
- },
- 'ol > li': {
- paddingLeft: em(6, 16),
- },
- 'ul > li': {
- paddingLeft: em(6, 16),
- },
- '> ul > li p': {
- marginTop: em(12, 16),
- marginBottom: em(12, 16),
- },
- '> ul > li > *:first-child': {
- marginTop: em(20, 16),
- },
- '> ul > li > *:last-child': {
- marginBottom: em(20, 16),
- },
- '> ol > li > *:first-child': {
- marginTop: em(20, 16),
- },
- '> ol > li > *:last-child': {
- marginBottom: em(20, 16),
- },
- 'ul ul, ul ol, ol ul, ol ol': {
- marginTop: em(12, 16),
- marginBottom: em(12, 16),
- },
- dl: {
- marginTop: em(20, 16),
- marginBottom: em(20, 16),
- },
- dt: {
- marginTop: em(20, 16),
- },
- dd: {
- marginTop: em(8, 16),
- paddingLeft: em(26, 16),
- },
- hr: {
- marginTop: em(48, 16),
- marginBottom: em(48, 16),
- },
- 'hr + *': {
- marginTop: '0',
- },
- 'h2 + *': {
- marginTop: '0',
- },
- 'h3 + *': {
- marginTop: '0',
- },
- 'h4 + *': {
- marginTop: '0',
- },
- table: {
- fontSize: em(14, 16),
- lineHeight: round(24 / 14),
- },
- 'thead th': {
- paddingRight: em(8, 14),
- paddingBottom: em(8, 14),
- paddingLeft: em(8, 14),
- },
- 'thead th:first-child': {
- paddingLeft: '0',
- },
- 'thead th:last-child': {
- paddingRight: '0',
- },
- 'tbody td, tfoot td': {
- paddingTop: em(8, 14),
- paddingRight: em(8, 14),
- paddingBottom: em(8, 14),
- paddingLeft: em(8, 14),
- },
- 'tbody td:first-child, tfoot td:first-child': {
- paddingLeft: '0',
- },
- 'tbody td:last-child, tfoot td:last-child': {
- paddingRight: '0',
- },
- figure: {
- marginTop: em(32, 16),
- marginBottom: em(32, 16),
- },
- 'figure > *': {
- marginTop: '0',
- marginBottom: '0',
- },
- figcaption: {
- fontSize: em(14, 16),
- lineHeight: round(20 / 14),
- marginTop: em(12, 14),
- },
- },
- {
- '> :first-child': {
- marginTop: '0',
- },
- '> :last-child': {
- marginBottom: '0',
- },
- },
- ],
- },
- lg: {
- css: [
- {
- fontSize: rem(18),
- lineHeight: round(32 / 18),
- p: {
- marginTop: em(24, 18),
- marginBottom: em(24, 18),
- },
- '[class~="lead"]': {
- fontSize: em(22, 18),
- lineHeight: round(32 / 22),
- marginTop: em(24, 22),
- marginBottom: em(24, 22),
- },
- blockquote: {
- marginTop: em(40, 24),
- marginBottom: em(40, 24),
- paddingLeft: em(24, 24),
- },
- h1: {
- fontSize: em(48, 18),
- marginTop: '0',
- marginBottom: em(40, 48),
- lineHeight: round(48 / 48),
- },
- h2: {
- fontSize: em(30, 18),
- marginTop: em(56, 30),
- marginBottom: em(32, 30),
- lineHeight: round(40 / 30),
- },
- h3: {
- fontSize: em(24, 18),
- marginTop: em(40, 24),
- marginBottom: em(16, 24),
- lineHeight: round(36 / 24),
- },
- h4: {
- marginTop: em(32, 18),
- marginBottom: em(8, 18),
- lineHeight: round(28 / 18),
- },
- img: {
- marginTop: em(32, 18),
- marginBottom: em(32, 18),
- },
- picture: {
- marginTop: em(32, 18),
- marginBottom: em(32, 18),
- },
- 'picture > img': {
- marginTop: '0',
- marginBottom: '0',
- },
- video: {
- marginTop: em(32, 18),
- marginBottom: em(32, 18),
- },
- kbd: {
- fontSize: em(16, 18),
- borderRadius: rem(5),
- paddingTop: em(4, 18),
- paddingRight: em(8, 18),
- paddingBottom: em(4, 18),
- paddingLeft: em(8, 18),
- },
- code: {
- fontSize: em(16, 18),
- },
- 'h2 code': {
- fontSize: em(26, 30),
- },
- 'h3 code': {
- fontSize: em(21, 24),
- },
- pre: {
- fontSize: em(16, 18),
- lineHeight: round(28 / 16),
- marginTop: em(32, 16),
- marginBottom: em(32, 16),
- borderRadius: rem(6),
- paddingTop: em(16, 16),
- paddingRight: em(24, 16),
- paddingBottom: em(16, 16),
- paddingLeft: em(24, 16),
- },
- ol: {
- marginTop: em(24, 18),
- marginBottom: em(24, 18),
- paddingLeft: em(28, 18),
- },
- ul: {
- marginTop: em(24, 18),
- marginBottom: em(24, 18),
- paddingLeft: em(28, 18),
- },
- li: {
- marginTop: em(12, 18),
- marginBottom: em(12, 18),
- },
- 'ol > li': {
- paddingLeft: em(8, 18),
- },
- 'ul > li': {
- paddingLeft: em(8, 18),
- },
- '> ul > li p': {
- marginTop: em(16, 18),
- marginBottom: em(16, 18),
- },
- '> ul > li > *:first-child': {
- marginTop: em(24, 18),
- },
- '> ul > li > *:last-child': {
- marginBottom: em(24, 18),
- },
- '> ol > li > *:first-child': {
- marginTop: em(24, 18),
- },
- '> ol > li > *:last-child': {
- marginBottom: em(24, 18),
- },
- 'ul ul, ul ol, ol ul, ol ol': {
- marginTop: em(16, 18),
- marginBottom: em(16, 18),
- },
- dl: {
- marginTop: em(24, 18),
- marginBottom: em(24, 18),
- },
- dt: {
- marginTop: em(24, 18),
- },
- dd: {
- marginTop: em(12, 18),
- paddingLeft: em(28, 18),
- },
- hr: {
- marginTop: em(56, 18),
- marginBottom: em(56, 18),
- },
- 'hr + *': {
- marginTop: '0',
- },
- 'h2 + *': {
- marginTop: '0',
- },
- 'h3 + *': {
- marginTop: '0',
- },
- 'h4 + *': {
- marginTop: '0',
- },
- table: {
- fontSize: em(16, 18),
- lineHeight: round(24 / 16),
- },
- 'thead th': {
- paddingRight: em(12, 16),
- paddingBottom: em(12, 16),
- paddingLeft: em(12, 16),
- },
- 'thead th:first-child': {
- paddingLeft: '0',
- },
- 'thead th:last-child': {
- paddingRight: '0',
- },
- 'tbody td, tfoot td': {
- paddingTop: em(12, 16),
- paddingRight: em(12, 16),
- paddingBottom: em(12, 16),
- paddingLeft: em(12, 16),
- },
- 'tbody td:first-child, tfoot td:first-child': {
- paddingLeft: '0',
- },
- 'tbody td:last-child, tfoot td:last-child': {
- paddingRight: '0',
- },
- figure: {
- marginTop: em(32, 18),
- marginBottom: em(32, 18),
- },
- 'figure > *': {
- marginTop: '0',
- marginBottom: '0',
- },
- figcaption: {
- fontSize: em(16, 18),
- lineHeight: round(24 / 16),
- marginTop: em(16, 16),
- },
- },
- {
- '> :first-child': {
- marginTop: '0',
- },
- '> :last-child': {
- marginBottom: '0',
- },
- },
- ],
- },
- xl: {
- css: [
- {
- fontSize: rem(20),
- lineHeight: round(36 / 20),
- p: {
- marginTop: em(24, 20),
- marginBottom: em(24, 20),
- },
- '[class~="lead"]': {
- fontSize: em(24, 20),
- lineHeight: round(36 / 24),
- marginTop: em(24, 24),
- marginBottom: em(24, 24),
- },
- blockquote: {
- marginTop: em(48, 30),
- marginBottom: em(48, 30),
- paddingLeft: em(32, 30),
- },
- h1: {
- fontSize: em(56, 20),
- marginTop: '0',
- marginBottom: em(48, 56),
- lineHeight: round(56 / 56),
- },
- h2: {
- fontSize: em(36, 20),
- marginTop: em(56, 36),
- marginBottom: em(32, 36),
- lineHeight: round(40 / 36),
- },
- h3: {
- fontSize: em(30, 20),
- marginTop: em(48, 30),
- marginBottom: em(20, 30),
- lineHeight: round(40 / 30),
- },
- h4: {
- marginTop: em(36, 20),
- marginBottom: em(12, 20),
- lineHeight: round(32 / 20),
- },
- img: {
- marginTop: em(40, 20),
- marginBottom: em(40, 20),
- },
- picture: {
- marginTop: em(40, 20),
- marginBottom: em(40, 20),
- },
- 'picture > img': {
- marginTop: '0',
- marginBottom: '0',
- },
- video: {
- marginTop: em(40, 20),
- marginBottom: em(40, 20),
- },
- kbd: {
- fontSize: em(18, 20),
- borderRadius: rem(5),
- paddingTop: em(5, 20),
- paddingRight: em(8, 20),
- paddingBottom: em(5, 20),
- paddingLeft: em(8, 20),
- },
- code: {
- fontSize: em(18, 20),
- },
- 'h2 code': {
- fontSize: em(31, 36),
- },
- 'h3 code': {
- fontSize: em(27, 30),
- },
- pre: {
- fontSize: em(18, 20),
- lineHeight: round(32 / 18),
- marginTop: em(36, 18),
- marginBottom: em(36, 18),
- borderRadius: rem(8),
- paddingTop: em(20, 18),
- paddingRight: em(24, 18),
- paddingBottom: em(20, 18),
- paddingLeft: em(24, 18),
- },
- ol: {
- marginTop: em(24, 20),
- marginBottom: em(24, 20),
- paddingLeft: em(32, 20),
- },
- ul: {
- marginTop: em(24, 20),
- marginBottom: em(24, 20),
- paddingLeft: em(32, 20),
- },
- li: {
- marginTop: em(12, 20),
- marginBottom: em(12, 20),
- },
- 'ol > li': {
- paddingLeft: em(8, 20),
- },
- 'ul > li': {
- paddingLeft: em(8, 20),
- },
- '> ul > li p': {
- marginTop: em(16, 20),
- marginBottom: em(16, 20),
- },
- '> ul > li > *:first-child': {
- marginTop: em(24, 20),
- },
- '> ul > li > *:last-child': {
- marginBottom: em(24, 20),
- },
- '> ol > li > *:first-child': {
- marginTop: em(24, 20),
- },
- '> ol > li > *:last-child': {
- marginBottom: em(24, 20),
- },
- 'ul ul, ul ol, ol ul, ol ol': {
- marginTop: em(16, 20),
- marginBottom: em(16, 20),
- },
- dl: {
- marginTop: em(24, 20),
- marginBottom: em(24, 20),
- },
- dt: {
- marginTop: em(24, 20),
- },
- dd: {
- marginTop: em(12, 20),
- paddingLeft: em(32, 20),
- },
- hr: {
- marginTop: em(56, 20),
- marginBottom: em(56, 20),
- },
- 'hr + *': {
- marginTop: '0',
- },
- 'h2 + *': {
- marginTop: '0',
- },
- 'h3 + *': {
- marginTop: '0',
- },
- 'h4 + *': {
- marginTop: '0',
- },
- table: {
- fontSize: em(18, 20),
- lineHeight: round(28 / 18),
- },
- 'thead th': {
- paddingRight: em(12, 18),
- paddingBottom: em(16, 18),
- paddingLeft: em(12, 18),
- },
- 'thead th:first-child': {
- paddingLeft: '0',
- },
- 'thead th:last-child': {
- paddingRight: '0',
- },
- 'tbody td, tfoot td': {
- paddingTop: em(16, 18),
- paddingRight: em(12, 18),
- paddingBottom: em(16, 18),
- paddingLeft: em(12, 18),
- },
- 'tbody td:first-child, tfoot td:first-child': {
- paddingLeft: '0',
- },
- 'tbody td:last-child, tfoot td:last-child': {
- paddingRight: '0',
- },
- figure: {
- marginTop: em(40, 20),
- marginBottom: em(40, 20),
- },
- 'figure > *': {
- marginTop: '0',
- marginBottom: '0',
- },
- figcaption: {
- fontSize: em(18, 20),
- lineHeight: round(28 / 18),
- marginTop: em(18, 18),
- },
- },
- {
- '> :first-child': {
- marginTop: '0',
- },
- '> :last-child': {
- marginBottom: '0',
- },
- },
- ],
- },
- '2xl': {
- css: [
- {
- fontSize: rem(24),
- lineHeight: round(40 / 24),
- p: {
- marginTop: em(32, 24),
- marginBottom: em(32, 24),
- },
- '[class~="lead"]': {
- fontSize: em(30, 24),
- lineHeight: round(44 / 30),
- marginTop: em(32, 30),
- marginBottom: em(32, 30),
- },
- blockquote: {
- marginTop: em(64, 36),
- marginBottom: em(64, 36),
- paddingLeft: em(40, 36),
- },
- h1: {
- fontSize: em(64, 24),
- marginTop: '0',
- marginBottom: em(56, 64),
- lineHeight: round(64 / 64),
- },
- h2: {
- fontSize: em(48, 24),
- marginTop: em(72, 48),
- marginBottom: em(40, 48),
- lineHeight: round(52 / 48),
- },
- h3: {
- fontSize: em(36, 24),
- marginTop: em(56, 36),
- marginBottom: em(24, 36),
- lineHeight: round(44 / 36),
- },
- h4: {
- marginTop: em(40, 24),
- marginBottom: em(16, 24),
- lineHeight: round(36 / 24),
- },
- img: {
- marginTop: em(48, 24),
- marginBottom: em(48, 24),
- },
- picture: {
- marginTop: em(48, 24),
- marginBottom: em(48, 24),
- },
- 'picture > img': {
- marginTop: '0',
- marginBottom: '0',
- },
- video: {
- marginTop: em(48, 24),
- marginBottom: em(48, 24),
- },
- kbd: {
- fontSize: em(20, 24),
- borderRadius: rem(6),
- paddingTop: em(6, 24),
- paddingRight: em(8, 24),
- paddingBottom: em(6, 24),
- paddingLeft: em(8, 24),
- },
- code: {
- fontSize: em(20, 24),
- },
- 'h2 code': {
- fontSize: em(42, 48),
- },
- 'h3 code': {
- fontSize: em(32, 36),
- },
- pre: {
- fontSize: em(20, 24),
- lineHeight: round(36 / 20),
- marginTop: em(40, 20),
- marginBottom: em(40, 20),
- borderRadius: rem(8),
- paddingTop: em(24, 20),
- paddingRight: em(32, 20),
- paddingBottom: em(24, 20),
- paddingLeft: em(32, 20),
- },
- ol: {
- marginTop: em(32, 24),
- marginBottom: em(32, 24),
- paddingLeft: em(38, 24),
- },
- ul: {
- marginTop: em(32, 24),
- marginBottom: em(32, 24),
- paddingLeft: em(38, 24),
- },
- li: {
- marginTop: em(12, 24),
- marginBottom: em(12, 24),
- },
- 'ol > li': {
- paddingLeft: em(10, 24),
- },
- 'ul > li': {
- paddingLeft: em(10, 24),
- },
- '> ul > li p': {
- marginTop: em(20, 24),
- marginBottom: em(20, 24),
- },
- '> ul > li > *:first-child': {
- marginTop: em(32, 24),
- },
- '> ul > li > *:last-child': {
- marginBottom: em(32, 24),
- },
- '> ol > li > *:first-child': {
- marginTop: em(32, 24),
- },
- '> ol > li > *:last-child': {
- marginBottom: em(32, 24),
- },
- 'ul ul, ul ol, ol ul, ol ol': {
- marginTop: em(16, 24),
- marginBottom: em(16, 24),
- },
- dl: {
- marginTop: em(32, 24),
- marginBottom: em(32, 24),
- },
- dt: {
- marginTop: em(32, 24),
- },
- dd: {
- marginTop: em(12, 24),
- paddingLeft: em(38, 24),
- },
- hr: {
- marginTop: em(72, 24),
- marginBottom: em(72, 24),
- },
- 'hr + *': {
- marginTop: '0',
- },
- 'h2 + *': {
- marginTop: '0',
- },
- 'h3 + *': {
- marginTop: '0',
- },
- 'h4 + *': {
- marginTop: '0',
- },
- table: {
- fontSize: em(20, 24),
- lineHeight: round(28 / 20),
- },
- 'thead th': {
- paddingRight: em(12, 20),
- paddingBottom: em(16, 20),
- paddingLeft: em(12, 20),
- },
- 'thead th:first-child': {
- paddingLeft: '0',
- },
- 'thead th:last-child': {
- paddingRight: '0',
- },
- 'tbody td, tfoot td': {
- paddingTop: em(16, 20),
- paddingRight: em(12, 20),
- paddingBottom: em(16, 20),
- paddingLeft: em(12, 20),
- },
- 'tbody td:first-child, tfoot td:first-child': {
- paddingLeft: '0',
- },
- 'tbody td:last-child, tfoot td:last-child': {
- paddingRight: '0',
- },
- figure: {
- marginTop: em(48, 24),
- marginBottom: em(48, 24),
- },
- 'figure > *': {
- marginTop: '0',
- marginBottom: '0',
- },
- figcaption: {
- fontSize: em(20, 24),
- lineHeight: round(32 / 20),
- marginTop: em(20, 20),
- },
- },
- {
- '> :first-child': {
- marginTop: '0',
- },
- '> :last-child': {
- marginBottom: '0',
- },
- },
- ],
- },
-
- // Gray color themes
-
- slate: {
- css: {
- '--tw-prose-body': colors.slate[700],
- '--tw-prose-headings': colors.slate[900],
- '--tw-prose-lead': colors.slate[600],
- '--tw-prose-links': colors.slate[900],
- '--tw-prose-bold': colors.slate[900],
- '--tw-prose-counters': colors.slate[500],
- '--tw-prose-bullets': colors.slate[300],
- '--tw-prose-hr': colors.slate[200],
- '--tw-prose-quotes': colors.slate[900],
- '--tw-prose-quote-borders': colors.slate[200],
- '--tw-prose-captions': colors.slate[500],
- '--tw-prose-kbd': colors.slate[900],
- '--tw-prose-kbd-shadows': hexToRgb(colors.slate[900]),
- '--tw-prose-code': colors.slate[900],
- '--tw-prose-pre-code': colors.slate[200],
- '--tw-prose-pre-bg': colors.slate[800],
- '--tw-prose-th-borders': colors.slate[300],
- '--tw-prose-td-borders': colors.slate[200],
- '--tw-prose-invert-body': colors.slate[300],
- '--tw-prose-invert-headings': colors.white,
- '--tw-prose-invert-lead': colors.slate[400],
- '--tw-prose-invert-links': colors.white,
- '--tw-prose-invert-bold': colors.white,
- '--tw-prose-invert-counters': colors.slate[400],
- '--tw-prose-invert-bullets': colors.slate[600],
- '--tw-prose-invert-hr': colors.slate[700],
- '--tw-prose-invert-quotes': colors.slate[100],
- '--tw-prose-invert-quote-borders': colors.slate[700],
- '--tw-prose-invert-captions': colors.slate[400],
- '--tw-prose-invert-kbd': colors.white,
- '--tw-prose-invert-kbd-shadows': hexToRgb(colors.white),
- '--tw-prose-invert-code': colors.white,
- '--tw-prose-invert-pre-code': colors.slate[300],
- '--tw-prose-invert-pre-bg': 'rgb(0 0 0 / 50%)',
- '--tw-prose-invert-th-borders': colors.slate[600],
- '--tw-prose-invert-td-borders': colors.slate[700],
- },
- },
-
- gray: {
- css: {
- '--tw-prose-body': colors.gray[700],
- '--tw-prose-headings': colors.gray[900],
- '--tw-prose-lead': colors.gray[600],
- '--tw-prose-links': colors.gray[900],
- '--tw-prose-bold': colors.gray[900],
- '--tw-prose-counters': colors.gray[500],
- '--tw-prose-bullets': colors.gray[300],
- '--tw-prose-hr': colors.gray[200],
- '--tw-prose-quotes': colors.gray[900],
- '--tw-prose-quote-borders': colors.gray[200],
- '--tw-prose-captions': colors.gray[500],
- '--tw-prose-kbd': colors.gray[900],
- '--tw-prose-kbd-shadows': hexToRgb(colors.gray[900]),
- '--tw-prose-code': colors.gray[900],
- '--tw-prose-pre-code': colors.gray[200],
- '--tw-prose-pre-bg': colors.gray[800],
- '--tw-prose-th-borders': colors.gray[300],
- '--tw-prose-td-borders': colors.gray[200],
- '--tw-prose-invert-body': colors.gray[300],
- '--tw-prose-invert-headings': colors.white,
- '--tw-prose-invert-lead': colors.gray[400],
- '--tw-prose-invert-links': colors.white,
- '--tw-prose-invert-bold': colors.white,
- '--tw-prose-invert-counters': colors.gray[400],
- '--tw-prose-invert-bullets': colors.gray[600],
- '--tw-prose-invert-hr': colors.gray[700],
- '--tw-prose-invert-quotes': colors.gray[100],
- '--tw-prose-invert-quote-borders': colors.gray[700],
- '--tw-prose-invert-captions': colors.gray[400],
- '--tw-prose-invert-kbd': colors.white,
- '--tw-prose-invert-kbd-shadows': hexToRgb(colors.white),
- '--tw-prose-invert-code': colors.white,
- '--tw-prose-invert-pre-code': colors.gray[300],
- '--tw-prose-invert-pre-bg': 'rgb(0 0 0 / 50%)',
- '--tw-prose-invert-th-borders': colors.gray[600],
- '--tw-prose-invert-td-borders': colors.gray[700],
- },
- },
-
- zinc: {
- css: {
- '--tw-prose-body': colors.zinc[700],
- '--tw-prose-headings': colors.zinc[900],
- '--tw-prose-lead': colors.zinc[600],
- '--tw-prose-links': colors.zinc[900],
- '--tw-prose-bold': colors.zinc[900],
- '--tw-prose-counters': colors.zinc[500],
- '--tw-prose-bullets': colors.zinc[300],
- '--tw-prose-hr': colors.zinc[200],
- '--tw-prose-quotes': colors.zinc[900],
- '--tw-prose-quote-borders': colors.zinc[200],
- '--tw-prose-captions': colors.zinc[500],
- '--tw-prose-kbd': colors.zinc[900],
- '--tw-prose-kbd-shadows': hexToRgb(colors.zinc[900]),
- '--tw-prose-code': colors.zinc[900],
- '--tw-prose-pre-code': colors.zinc[200],
- '--tw-prose-pre-bg': colors.zinc[800],
- '--tw-prose-th-borders': colors.zinc[300],
- '--tw-prose-td-borders': colors.zinc[200],
- '--tw-prose-invert-body': colors.zinc[300],
- '--tw-prose-invert-headings': colors.white,
- '--tw-prose-invert-lead': colors.zinc[400],
- '--tw-prose-invert-links': colors.white,
- '--tw-prose-invert-bold': colors.white,
- '--tw-prose-invert-counters': colors.zinc[400],
- '--tw-prose-invert-bullets': colors.zinc[600],
- '--tw-prose-invert-hr': colors.zinc[700],
- '--tw-prose-invert-quotes': colors.zinc[100],
- '--tw-prose-invert-quote-borders': colors.zinc[700],
- '--tw-prose-invert-captions': colors.zinc[400],
- '--tw-prose-invert-kbd': colors.white,
- '--tw-prose-invert-kbd-shadows': hexToRgb(colors.white),
- '--tw-prose-invert-code': colors.white,
- '--tw-prose-invert-pre-code': colors.zinc[300],
- '--tw-prose-invert-pre-bg': 'rgb(0 0 0 / 50%)',
- '--tw-prose-invert-th-borders': colors.zinc[600],
- '--tw-prose-invert-td-borders': colors.zinc[700],
- },
- },
-
- neutral: {
- css: {
- '--tw-prose-body': colors.neutral[700],
- '--tw-prose-headings': colors.neutral[900],
- '--tw-prose-lead': colors.neutral[600],
- '--tw-prose-links': colors.neutral[900],
- '--tw-prose-bold': colors.neutral[900],
- '--tw-prose-counters': colors.neutral[500],
- '--tw-prose-bullets': colors.neutral[300],
- '--tw-prose-hr': colors.neutral[200],
- '--tw-prose-quotes': colors.neutral[900],
- '--tw-prose-quote-borders': colors.neutral[200],
- '--tw-prose-captions': colors.neutral[500],
- '--tw-prose-kbd': colors.neutral[900],
- '--tw-prose-kbd-shadows': hexToRgb(colors.neutral[900]),
- '--tw-prose-code': colors.neutral[900],
- '--tw-prose-pre-code': colors.neutral[200],
- '--tw-prose-pre-bg': colors.neutral[800],
- '--tw-prose-th-borders': colors.neutral[300],
- '--tw-prose-td-borders': colors.neutral[200],
- '--tw-prose-invert-body': colors.neutral[300],
- '--tw-prose-invert-headings': colors.white,
- '--tw-prose-invert-lead': colors.neutral[400],
- '--tw-prose-invert-links': colors.white,
- '--tw-prose-invert-bold': colors.white,
- '--tw-prose-invert-counters': colors.neutral[400],
- '--tw-prose-invert-bullets': colors.neutral[600],
- '--tw-prose-invert-hr': colors.neutral[700],
- '--tw-prose-invert-quotes': colors.neutral[100],
- '--tw-prose-invert-quote-borders': colors.neutral[700],
- '--tw-prose-invert-captions': colors.neutral[400],
- '--tw-prose-invert-kbd': colors.white,
- '--tw-prose-invert-kbd-shadows': hexToRgb(colors.white),
- '--tw-prose-invert-code': colors.white,
- '--tw-prose-invert-pre-code': colors.neutral[300],
- '--tw-prose-invert-pre-bg': 'rgb(0 0 0 / 50%)',
- '--tw-prose-invert-th-borders': colors.neutral[600],
- '--tw-prose-invert-td-borders': colors.neutral[700],
- },
- },
-
- stone: {
- css: {
- '--tw-prose-body': colors.stone[700],
- '--tw-prose-headings': colors.stone[900],
- '--tw-prose-lead': colors.stone[600],
- '--tw-prose-links': colors.stone[900],
- '--tw-prose-bold': colors.stone[900],
- '--tw-prose-counters': colors.stone[500],
- '--tw-prose-bullets': colors.stone[300],
- '--tw-prose-hr': colors.stone[200],
- '--tw-prose-quotes': colors.stone[900],
- '--tw-prose-quote-borders': colors.stone[200],
- '--tw-prose-captions': colors.stone[500],
- '--tw-prose-kbd': colors.stone[900],
- '--tw-prose-kbd-shadows': hexToRgb(colors.stone[900]),
- '--tw-prose-code': colors.stone[900],
- '--tw-prose-pre-code': colors.stone[200],
- '--tw-prose-pre-bg': colors.stone[800],
- '--tw-prose-th-borders': colors.stone[300],
- '--tw-prose-td-borders': colors.stone[200],
- '--tw-prose-invert-body': colors.stone[300],
- '--tw-prose-invert-headings': colors.white,
- '--tw-prose-invert-lead': colors.stone[400],
- '--tw-prose-invert-links': colors.white,
- '--tw-prose-invert-bold': colors.white,
- '--tw-prose-invert-counters': colors.stone[400],
- '--tw-prose-invert-bullets': colors.stone[600],
- '--tw-prose-invert-hr': colors.stone[700],
- '--tw-prose-invert-quotes': colors.stone[100],
- '--tw-prose-invert-quote-borders': colors.stone[700],
- '--tw-prose-invert-captions': colors.stone[400],
- '--tw-prose-invert-kbd': colors.white,
- '--tw-prose-invert-kbd-shadows': hexToRgb(colors.white),
- '--tw-prose-invert-code': colors.white,
- '--tw-prose-invert-pre-code': colors.stone[300],
- '--tw-prose-invert-pre-bg': 'rgb(0 0 0 / 50%)',
- '--tw-prose-invert-th-borders': colors.stone[600],
- '--tw-prose-invert-td-borders': colors.stone[700],
- },
- },
-
- // Link-only themes (for backward compatibility)
-
- red: {
- css: {
- '--tw-prose-links': colors.red[600],
- '--tw-prose-invert-links': colors.red[500],
- },
- },
-
- orange: {
- css: {
- '--tw-prose-links': colors.orange[600],
- '--tw-prose-invert-links': colors.orange[500],
- },
- },
-
- amber: {
- css: {
- '--tw-prose-links': colors.amber[600],
- '--tw-prose-invert-links': colors.amber[500],
- },
- },
-
- yellow: {
- css: {
- '--tw-prose-links': colors.yellow[600],
- '--tw-prose-invert-links': colors.yellow[500],
- },
- },
-
- lime: {
- css: {
- '--tw-prose-links': colors.lime[600],
- '--tw-prose-invert-links': colors.lime[500],
- },
- },
-
- green: {
- css: {
- '--tw-prose-links': colors.green[600],
- '--tw-prose-invert-links': colors.green[500],
- },
- },
-
- emerald: {
- css: {
- '--tw-prose-links': colors.emerald[600],
- '--tw-prose-invert-links': colors.emerald[500],
- },
- },
-
- teal: {
- css: {
- '--tw-prose-links': colors.teal[600],
- '--tw-prose-invert-links': colors.teal[500],
- },
- },
-
- cyan: {
- css: {
- '--tw-prose-links': colors.cyan[600],
- '--tw-prose-invert-links': colors.cyan[500],
- },
- },
-
- sky: {
- css: {
- '--tw-prose-links': colors.sky[600],
- '--tw-prose-invert-links': colors.sky[500],
- },
- },
-
- blue: {
- css: {
- '--tw-prose-links': colors.blue[600],
- '--tw-prose-invert-links': colors.blue[500],
- },
- },
-
- indigo: {
- css: {
- '--tw-prose-links': colors.indigo[600],
- '--tw-prose-invert-links': colors.indigo[500],
- },
- },
-
- violet: {
- css: {
- '--tw-prose-links': colors.violet[600],
- '--tw-prose-invert-links': colors.violet[500],
- },
- },
-
- purple: {
- css: {
- '--tw-prose-links': colors.purple[600],
- '--tw-prose-invert-links': colors.purple[500],
- },
- },
-
- fuchsia: {
- css: {
- '--tw-prose-links': colors.fuchsia[600],
- '--tw-prose-invert-links': colors.fuchsia[500],
- },
- },
-
- pink: {
- css: {
- '--tw-prose-links': colors.pink[600],
- '--tw-prose-invert-links': colors.pink[500],
- },
- },
-
- rose: {
- css: {
- '--tw-prose-links': colors.rose[600],
- '--tw-prose-invert-links': colors.rose[500],
- },
- },
-
- // Invert (for dark mode)
- invert: {
- css: {
- '--tw-prose-body': 'var(--tw-prose-invert-body)',
- '--tw-prose-headings': 'var(--tw-prose-invert-headings)',
- '--tw-prose-lead': 'var(--tw-prose-invert-lead)',
- '--tw-prose-links': 'var(--tw-prose-invert-links)',
- '--tw-prose-bold': 'var(--tw-prose-invert-bold)',
- '--tw-prose-counters': 'var(--tw-prose-invert-counters)',
- '--tw-prose-bullets': 'var(--tw-prose-invert-bullets)',
- '--tw-prose-hr': 'var(--tw-prose-invert-hr)',
- '--tw-prose-quotes': 'var(--tw-prose-invert-quotes)',
- '--tw-prose-quote-borders': 'var(--tw-prose-invert-quote-borders)',
- '--tw-prose-captions': 'var(--tw-prose-invert-captions)',
- '--tw-prose-kbd': 'var(--tw-prose-invert-kbd)',
- '--tw-prose-kbd-shadows': 'var(--tw-prose-invert-kbd-shadows)',
- '--tw-prose-code': 'var(--tw-prose-invert-code)',
- '--tw-prose-pre-code': 'var(--tw-prose-invert-pre-code)',
- '--tw-prose-pre-bg': 'var(--tw-prose-invert-pre-bg)',
- '--tw-prose-th-borders': 'var(--tw-prose-invert-th-borders)',
- '--tw-prose-td-borders': 'var(--tw-prose-invert-td-borders)',
- },
- },
-}
-
-module.exports = {
- DEFAULT: {
- css: [
- {
- color: 'var(--tw-prose-body)',
- maxWidth: '65ch',
- p: {}, // Required to maintain correct order when merging
- '[class~="lead"]': {
- color: 'var(--tw-prose-lead)',
- },
- a: {
- color: 'var(--tw-prose-links)',
- textDecoration: 'underline',
- fontWeight: '500',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- 'a strong': {
- color: 'inherit',
- },
- 'blockquote strong': {
- color: 'inherit',
- },
- 'thead th strong': {
- color: 'inherit',
- },
- ol: {
- listStyleType: 'decimal',
- },
- 'ol[type="A"]': {
- listStyleType: 'upper-alpha',
- },
- 'ol[type="a"]': {
- listStyleType: 'lower-alpha',
- },
- 'ol[type="A" s]': {
- listStyleType: 'upper-alpha',
- },
- 'ol[type="a" s]': {
- listStyleType: 'lower-alpha',
- },
- 'ol[type="I"]': {
- listStyleType: 'upper-roman',
- },
- 'ol[type="i"]': {
- listStyleType: 'lower-roman',
- },
- 'ol[type="I" s]': {
- listStyleType: 'upper-roman',
- },
- 'ol[type="i" s]': {
- listStyleType: 'lower-roman',
- },
- 'ol[type="1"]': {
- listStyleType: 'decimal',
- },
- ul: {
- listStyleType: 'disc',
- },
- 'ol > li::marker': {
- fontWeight: '400',
- color: 'var(--tw-prose-counters)',
- },
- 'ul > li::marker': {
- color: 'var(--tw-prose-bullets)',
- },
- dt: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '600',
- },
- hr: {
- borderColor: 'var(--tw-prose-hr)',
- borderTopWidth: 1,
- },
- blockquote: {
- fontWeight: '500',
- fontStyle: 'italic',
- color: 'var(--tw-prose-quotes)',
- borderLeftWidth: '0.25rem',
- borderLeftColor: 'var(--tw-prose-quote-borders)',
- quotes: '"\\201C""\\201D""\\2018""\\2019"',
- },
- 'blockquote p:first-of-type::before': {
- content: 'open-quote',
- },
- 'blockquote p:last-of-type::after': {
- content: 'close-quote',
- },
- h1: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '800',
- },
- 'h1 strong': {
- fontWeight: '900',
- color: 'inherit',
- },
- h2: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '700',
- },
- 'h2 strong': {
- fontWeight: '800',
- color: 'inherit',
- },
- h3: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '600',
- },
- 'h3 strong': {
- fontWeight: '700',
- color: 'inherit',
- },
- h4: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '600',
- },
- 'h4 strong': {
- fontWeight: '700',
- color: 'inherit',
- },
- img: {}, // Required to maintain correct order when merging
- picture: {
- display: 'block',
- },
- kbd: {
- fontWeight: '500',
- fontFamily: 'inherit',
- color: 'var(--tw-prose-kbd)',
- boxShadow:
- '0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%)',
- },
- code: {
- color: 'var(--tw-prose-code)',
- fontWeight: '600',
- },
- 'code::before': {
- content: '"`"',
- },
- 'code::after': {
- content: '"`"',
- },
- 'a code': {
- color: 'inherit',
- },
- 'h1 code': {
- color: 'inherit',
- },
- 'h2 code': {
- color: 'inherit',
- },
- 'h3 code': {
- color: 'inherit',
- },
- 'h4 code': {
- color: 'inherit',
- },
- 'blockquote code': {
- color: 'inherit',
- },
- 'thead th code': {
- color: 'inherit',
- },
- pre: {
- color: 'var(--tw-prose-pre-code)',
- backgroundColor: 'var(--tw-prose-pre-bg)',
- overflowX: 'auto',
- fontWeight: '400',
- },
- 'pre code': {
- backgroundColor: 'transparent',
- borderWidth: '0',
- borderRadius: '0',
- padding: '0',
- fontWeight: 'inherit',
- color: 'inherit',
- fontSize: 'inherit',
- fontFamily: 'inherit',
- lineHeight: 'inherit',
- },
- 'pre code::before': {
- content: 'none',
- },
- 'pre code::after': {
- content: 'none',
- },
- table: {
- width: '100%',
- tableLayout: 'auto',
- textAlign: 'left',
- marginTop: em(32, 16),
- marginBottom: em(32, 16),
- },
- thead: {
- borderBottomWidth: '1px',
- borderBottomColor: 'var(--tw-prose-th-borders)',
- },
- 'thead th': {
- color: 'var(--tw-prose-headings)',
- fontWeight: '600',
- verticalAlign: 'bottom',
- },
- 'tbody tr': {
- borderBottomWidth: '1px',
- borderBottomColor: 'var(--tw-prose-td-borders)',
- },
- 'tbody tr:last-child': {
- borderBottomWidth: '0',
- },
- 'tbody td': {
- verticalAlign: 'baseline',
- },
- tfoot: {
- borderTopWidth: '1px',
- borderTopColor: 'var(--tw-prose-th-borders)',
- },
- 'tfoot td': {
- verticalAlign: 'top',
- },
- 'figure > *': {}, // Required to maintain correct order when merging
- figcaption: {
- color: 'var(--tw-prose-captions)',
- },
- },
- defaultModifiers.gray.css,
- ...defaultModifiers.base.css,
- ],
- },
- ...defaultModifiers,
-}
diff --git a/website/node_modules/@tailwindcss/typography/src/utils.js b/website/node_modules/@tailwindcss/typography/src/utils.js
deleted file mode 100644
index 085f72e1..00000000
--- a/website/node_modules/@tailwindcss/typography/src/utils.js
+++ /dev/null
@@ -1,62 +0,0 @@
-const isPlainObject = require('lodash.isplainobject')
-
-const parser = require('postcss-selector-parser')
-const parseSelector = parser()
-
-module.exports = {
- isUsableColor(color, values) {
- return isPlainObject(values) && color !== 'gray' && values[600]
- },
-
- /**
- * @param {string} selector
- */
- commonTrailingPseudos(selector) {
- let ast = parseSelector.astSync(selector)
-
- /** @type {import('postcss-selector-parser').Pseudo[][]} */
- let matrix = []
-
- // Put the pseudo elements in reverse order in a sparse, column-major 2D array
- for (let [i, sel] of ast.nodes.entries()) {
- for (const [j, child] of [...sel.nodes].reverse().entries()) {
- // We only care about pseudo elements
- if (child.type !== 'pseudo' || !child.value.startsWith('::')) {
- break
- }
-
- matrix[j] = matrix[j] || []
- matrix[j][i] = child
- }
- }
-
- let trailingPseudos = parser.selector()
-
- // At this point the pseudo elements are in a column-major 2D array
- // This means each row contains one "column" of pseudo elements from each selector
- // We can compare all the pseudo elements in a row to see if they are the same
- for (const pseudos of matrix) {
- // It's a sparse 2D array so there are going to be holes in the rows
- // We skip those
- if (!pseudos) {
- continue
- }
-
- let values = new Set([...pseudos.map((p) => p.value)])
-
- // The pseudo elements are not the same
- if (values.size > 1) {
- break
- }
-
- pseudos.forEach((pseudo) => pseudo.remove())
- trailingPseudos.prepend(pseudos[0])
- }
-
- if (trailingPseudos.nodes.length) {
- return [trailingPseudos.toString(), ast.toString()]
- }
-
- return [null, selector]
- },
-}
diff --git a/website/node_modules/ansi-regex/index.d.ts b/website/node_modules/ansi-regex/index.d.ts
deleted file mode 100644
index 2dbf6af2..00000000
--- a/website/node_modules/ansi-regex/index.d.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-declare namespace ansiRegex {
- interface Options {
- /**
- Match only the first ANSI escape.
-
- @default false
- */
- onlyFirst: boolean;
- }
-}
-
-/**
-Regular expression for matching ANSI escape codes.
-
-@example
-```
-import ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001B[4mcake\u001B[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex());
-//=> ['\u001B[4m', '\u001B[0m']
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
-//=> ['\u001B[4m']
-
-'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
-//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
-```
-*/
-declare function ansiRegex(options?: ansiRegex.Options): RegExp;
-
-export = ansiRegex;
diff --git a/website/node_modules/ansi-regex/index.js b/website/node_modules/ansi-regex/index.js
deleted file mode 100644
index 616ff837..00000000
--- a/website/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-module.exports = ({onlyFirst = false} = {}) => {
- const pattern = [
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
- ].join('|');
-
- return new RegExp(pattern, onlyFirst ? undefined : 'g');
-};
diff --git a/website/node_modules/ansi-regex/license b/website/node_modules/ansi-regex/license
deleted file mode 100644
index e7af2f77..00000000
--- a/website/node_modules/ansi-regex/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/ansi-regex/package.json b/website/node_modules/ansi-regex/package.json
deleted file mode 100644
index 017f5311..00000000
--- a/website/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "name": "ansi-regex",
- "version": "5.0.1",
- "description": "Regular expression for matching ANSI escape codes",
- "license": "MIT",
- "repository": "chalk/ansi-regex",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=8"
- },
- "scripts": {
- "test": "xo && ava && tsd",
- "view-supported": "node fixtures/view-codes.js"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "devDependencies": {
- "ava": "^2.4.0",
- "tsd": "^0.9.0",
- "xo": "^0.25.3"
- }
-}
diff --git a/website/node_modules/ansi-regex/readme.md b/website/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 4d848bc3..00000000
--- a/website/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# ansi-regex
-
-> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install ansi-regex
-```
-
-
-## Usage
-
-```js
-const ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001B[4mcake\u001B[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex());
-//=> ['\u001B[4m', '\u001B[0m']
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
-//=> ['\u001B[4m']
-
-'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
-//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
-```
-
-
-## API
-
-### ansiRegex(options?)
-
-Returns a regex for matching ANSI escape codes.
-
-#### options
-
-Type: `object`
-
-##### onlyFirst
-
-Type: `boolean`
-Default: `false` *(Matches any ANSI escape codes in a string)*
-
-Match only the first ANSI escape.
-
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-
----
-
-
diff --git a/website/node_modules/ansi-styles/index.d.ts b/website/node_modules/ansi-styles/index.d.ts
deleted file mode 100644
index 44a907e5..00000000
--- a/website/node_modules/ansi-styles/index.d.ts
+++ /dev/null
@@ -1,345 +0,0 @@
-declare type CSSColor =
- | 'aliceblue'
- | 'antiquewhite'
- | 'aqua'
- | 'aquamarine'
- | 'azure'
- | 'beige'
- | 'bisque'
- | 'black'
- | 'blanchedalmond'
- | 'blue'
- | 'blueviolet'
- | 'brown'
- | 'burlywood'
- | 'cadetblue'
- | 'chartreuse'
- | 'chocolate'
- | 'coral'
- | 'cornflowerblue'
- | 'cornsilk'
- | 'crimson'
- | 'cyan'
- | 'darkblue'
- | 'darkcyan'
- | 'darkgoldenrod'
- | 'darkgray'
- | 'darkgreen'
- | 'darkgrey'
- | 'darkkhaki'
- | 'darkmagenta'
- | 'darkolivegreen'
- | 'darkorange'
- | 'darkorchid'
- | 'darkred'
- | 'darksalmon'
- | 'darkseagreen'
- | 'darkslateblue'
- | 'darkslategray'
- | 'darkslategrey'
- | 'darkturquoise'
- | 'darkviolet'
- | 'deeppink'
- | 'deepskyblue'
- | 'dimgray'
- | 'dimgrey'
- | 'dodgerblue'
- | 'firebrick'
- | 'floralwhite'
- | 'forestgreen'
- | 'fuchsia'
- | 'gainsboro'
- | 'ghostwhite'
- | 'gold'
- | 'goldenrod'
- | 'gray'
- | 'green'
- | 'greenyellow'
- | 'grey'
- | 'honeydew'
- | 'hotpink'
- | 'indianred'
- | 'indigo'
- | 'ivory'
- | 'khaki'
- | 'lavender'
- | 'lavenderblush'
- | 'lawngreen'
- | 'lemonchiffon'
- | 'lightblue'
- | 'lightcoral'
- | 'lightcyan'
- | 'lightgoldenrodyellow'
- | 'lightgray'
- | 'lightgreen'
- | 'lightgrey'
- | 'lightpink'
- | 'lightsalmon'
- | 'lightseagreen'
- | 'lightskyblue'
- | 'lightslategray'
- | 'lightslategrey'
- | 'lightsteelblue'
- | 'lightyellow'
- | 'lime'
- | 'limegreen'
- | 'linen'
- | 'magenta'
- | 'maroon'
- | 'mediumaquamarine'
- | 'mediumblue'
- | 'mediumorchid'
- | 'mediumpurple'
- | 'mediumseagreen'
- | 'mediumslateblue'
- | 'mediumspringgreen'
- | 'mediumturquoise'
- | 'mediumvioletred'
- | 'midnightblue'
- | 'mintcream'
- | 'mistyrose'
- | 'moccasin'
- | 'navajowhite'
- | 'navy'
- | 'oldlace'
- | 'olive'
- | 'olivedrab'
- | 'orange'
- | 'orangered'
- | 'orchid'
- | 'palegoldenrod'
- | 'palegreen'
- | 'paleturquoise'
- | 'palevioletred'
- | 'papayawhip'
- | 'peachpuff'
- | 'peru'
- | 'pink'
- | 'plum'
- | 'powderblue'
- | 'purple'
- | 'rebeccapurple'
- | 'red'
- | 'rosybrown'
- | 'royalblue'
- | 'saddlebrown'
- | 'salmon'
- | 'sandybrown'
- | 'seagreen'
- | 'seashell'
- | 'sienna'
- | 'silver'
- | 'skyblue'
- | 'slateblue'
- | 'slategray'
- | 'slategrey'
- | 'snow'
- | 'springgreen'
- | 'steelblue'
- | 'tan'
- | 'teal'
- | 'thistle'
- | 'tomato'
- | 'turquoise'
- | 'violet'
- | 'wheat'
- | 'white'
- | 'whitesmoke'
- | 'yellow'
- | 'yellowgreen';
-
-declare namespace ansiStyles {
- interface ColorConvert {
- /**
- The RGB color space.
-
- @param red - (`0`-`255`)
- @param green - (`0`-`255`)
- @param blue - (`0`-`255`)
- */
- rgb(red: number, green: number, blue: number): string;
-
- /**
- The RGB HEX color space.
-
- @param hex - A hexadecimal string containing RGB data.
- */
- hex(hex: string): string;
-
- /**
- @param keyword - A CSS color name.
- */
- keyword(keyword: CSSColor): string;
-
- /**
- The HSL color space.
-
- @param hue - (`0`-`360`)
- @param saturation - (`0`-`100`)
- @param lightness - (`0`-`100`)
- */
- hsl(hue: number, saturation: number, lightness: number): string;
-
- /**
- The HSV color space.
-
- @param hue - (`0`-`360`)
- @param saturation - (`0`-`100`)
- @param value - (`0`-`100`)
- */
- hsv(hue: number, saturation: number, value: number): string;
-
- /**
- The HSV color space.
-
- @param hue - (`0`-`360`)
- @param whiteness - (`0`-`100`)
- @param blackness - (`0`-`100`)
- */
- hwb(hue: number, whiteness: number, blackness: number): string;
-
- /**
- Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color.
- */
- ansi(ansi: number): string;
-
- /**
- Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color.
- */
- ansi256(ansi: number): string;
- }
-
- interface CSPair {
- /**
- The ANSI terminal control sequence for starting this style.
- */
- readonly open: string;
-
- /**
- The ANSI terminal control sequence for ending this style.
- */
- readonly close: string;
- }
-
- interface ColorBase {
- readonly ansi: ColorConvert;
- readonly ansi256: ColorConvert;
- readonly ansi16m: ColorConvert;
-
- /**
- The ANSI terminal control sequence for ending this color.
- */
- readonly close: string;
- }
-
- interface Modifier {
- /**
- Resets the current color chain.
- */
- readonly reset: CSPair;
-
- /**
- Make text bold.
- */
- readonly bold: CSPair;
-
- /**
- Emitting only a small amount of light.
- */
- readonly dim: CSPair;
-
- /**
- Make text italic. (Not widely supported)
- */
- readonly italic: CSPair;
-
- /**
- Make text underline. (Not widely supported)
- */
- readonly underline: CSPair;
-
- /**
- Inverse background and foreground colors.
- */
- readonly inverse: CSPair;
-
- /**
- Prints the text, but makes it invisible.
- */
- readonly hidden: CSPair;
-
- /**
- Puts a horizontal line through the center of the text. (Not widely supported)
- */
- readonly strikethrough: CSPair;
- }
-
- interface ForegroundColor {
- readonly black: CSPair;
- readonly red: CSPair;
- readonly green: CSPair;
- readonly yellow: CSPair;
- readonly blue: CSPair;
- readonly cyan: CSPair;
- readonly magenta: CSPair;
- readonly white: CSPair;
-
- /**
- Alias for `blackBright`.
- */
- readonly gray: CSPair;
-
- /**
- Alias for `blackBright`.
- */
- readonly grey: CSPair;
-
- readonly blackBright: CSPair;
- readonly redBright: CSPair;
- readonly greenBright: CSPair;
- readonly yellowBright: CSPair;
- readonly blueBright: CSPair;
- readonly cyanBright: CSPair;
- readonly magentaBright: CSPair;
- readonly whiteBright: CSPair;
- }
-
- interface BackgroundColor {
- readonly bgBlack: CSPair;
- readonly bgRed: CSPair;
- readonly bgGreen: CSPair;
- readonly bgYellow: CSPair;
- readonly bgBlue: CSPair;
- readonly bgCyan: CSPair;
- readonly bgMagenta: CSPair;
- readonly bgWhite: CSPair;
-
- /**
- Alias for `bgBlackBright`.
- */
- readonly bgGray: CSPair;
-
- /**
- Alias for `bgBlackBright`.
- */
- readonly bgGrey: CSPair;
-
- readonly bgBlackBright: CSPair;
- readonly bgRedBright: CSPair;
- readonly bgGreenBright: CSPair;
- readonly bgYellowBright: CSPair;
- readonly bgBlueBright: CSPair;
- readonly bgCyanBright: CSPair;
- readonly bgMagentaBright: CSPair;
- readonly bgWhiteBright: CSPair;
- }
-}
-
-declare const ansiStyles: {
- readonly modifier: ansiStyles.Modifier;
- readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase;
- readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase;
- readonly codes: ReadonlyMap;
-} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier;
-
-export = ansiStyles;
diff --git a/website/node_modules/ansi-styles/index.js b/website/node_modules/ansi-styles/index.js
deleted file mode 100644
index 5d82581a..00000000
--- a/website/node_modules/ansi-styles/index.js
+++ /dev/null
@@ -1,163 +0,0 @@
-'use strict';
-
-const wrapAnsi16 = (fn, offset) => (...args) => {
- const code = fn(...args);
- return `\u001B[${code + offset}m`;
-};
-
-const wrapAnsi256 = (fn, offset) => (...args) => {
- const code = fn(...args);
- return `\u001B[${38 + offset};5;${code}m`;
-};
-
-const wrapAnsi16m = (fn, offset) => (...args) => {
- const rgb = fn(...args);
- return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
-};
-
-const ansi2ansi = n => n;
-const rgb2rgb = (r, g, b) => [r, g, b];
-
-const setLazyProperty = (object, property, get) => {
- Object.defineProperty(object, property, {
- get: () => {
- const value = get();
-
- Object.defineProperty(object, property, {
- value,
- enumerable: true,
- configurable: true
- });
-
- return value;
- },
- enumerable: true,
- configurable: true
- });
-};
-
-/** @type {typeof import('color-convert')} */
-let colorConvert;
-const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {
- if (colorConvert === undefined) {
- colorConvert = require('color-convert');
- }
-
- const offset = isBackground ? 10 : 0;
- const styles = {};
-
- for (const [sourceSpace, suite] of Object.entries(colorConvert)) {
- const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;
- if (sourceSpace === targetSpace) {
- styles[name] = wrap(identity, offset);
- } else if (typeof suite === 'object') {
- styles[name] = wrap(suite[targetSpace], offset);
- }
- }
-
- return styles;
-};
-
-function assembleStyles() {
- const codes = new Map();
- const styles = {
- modifier: {
- reset: [0, 0],
- // 21 isn't widely supported and 22 does the same thing
- bold: [1, 22],
- dim: [2, 22],
- italic: [3, 23],
- underline: [4, 24],
- inverse: [7, 27],
- hidden: [8, 28],
- strikethrough: [9, 29]
- },
- color: {
- black: [30, 39],
- red: [31, 39],
- green: [32, 39],
- yellow: [33, 39],
- blue: [34, 39],
- magenta: [35, 39],
- cyan: [36, 39],
- white: [37, 39],
-
- // Bright color
- blackBright: [90, 39],
- redBright: [91, 39],
- greenBright: [92, 39],
- yellowBright: [93, 39],
- blueBright: [94, 39],
- magentaBright: [95, 39],
- cyanBright: [96, 39],
- whiteBright: [97, 39]
- },
- bgColor: {
- bgBlack: [40, 49],
- bgRed: [41, 49],
- bgGreen: [42, 49],
- bgYellow: [43, 49],
- bgBlue: [44, 49],
- bgMagenta: [45, 49],
- bgCyan: [46, 49],
- bgWhite: [47, 49],
-
- // Bright color
- bgBlackBright: [100, 49],
- bgRedBright: [101, 49],
- bgGreenBright: [102, 49],
- bgYellowBright: [103, 49],
- bgBlueBright: [104, 49],
- bgMagentaBright: [105, 49],
- bgCyanBright: [106, 49],
- bgWhiteBright: [107, 49]
- }
- };
-
- // Alias bright black as gray (and grey)
- styles.color.gray = styles.color.blackBright;
- styles.bgColor.bgGray = styles.bgColor.bgBlackBright;
- styles.color.grey = styles.color.blackBright;
- styles.bgColor.bgGrey = styles.bgColor.bgBlackBright;
-
- for (const [groupName, group] of Object.entries(styles)) {
- for (const [styleName, style] of Object.entries(group)) {
- styles[styleName] = {
- open: `\u001B[${style[0]}m`,
- close: `\u001B[${style[1]}m`
- };
-
- group[styleName] = styles[styleName];
-
- codes.set(style[0], style[1]);
- }
-
- Object.defineProperty(styles, groupName, {
- value: group,
- enumerable: false
- });
- }
-
- Object.defineProperty(styles, 'codes', {
- value: codes,
- enumerable: false
- });
-
- styles.color.close = '\u001B[39m';
- styles.bgColor.close = '\u001B[49m';
-
- setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));
- setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));
- setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));
- setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));
- setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));
- setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));
-
- return styles;
-}
-
-// Make the export immutable
-Object.defineProperty(module, 'exports', {
- enumerable: true,
- get: assembleStyles
-});
diff --git a/website/node_modules/ansi-styles/license b/website/node_modules/ansi-styles/license
deleted file mode 100644
index e7af2f77..00000000
--- a/website/node_modules/ansi-styles/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/website/node_modules/ansi-styles/package.json b/website/node_modules/ansi-styles/package.json
deleted file mode 100644
index 75393284..00000000
--- a/website/node_modules/ansi-styles/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "ansi-styles",
- "version": "4.3.0",
- "description": "ANSI escape codes for styling strings in the terminal",
- "license": "MIT",
- "repository": "chalk/ansi-styles",
- "funding": "https://github.com/chalk/ansi-styles?sponsor=1",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=8"
- },
- "scripts": {
- "test": "xo && ava && tsd",
- "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor"
- },
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "devDependencies": {
- "@types/color-convert": "^1.9.0",
- "ava": "^2.3.0",
- "svg-term-cli": "^2.1.1",
- "tsd": "^0.11.0",
- "xo": "^0.25.3"
- }
-}
diff --git a/website/node_modules/ansi-styles/readme.md b/website/node_modules/ansi-styles/readme.md
deleted file mode 100644
index 24883de8..00000000
--- a/website/node_modules/ansi-styles/readme.md
+++ /dev/null
@@ -1,152 +0,0 @@
-# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)
-
-> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
-
-You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
-
-
-
-## Install
-
-```
-$ npm install ansi-styles
-```
-
-## Usage
-
-```js
-const style = require('ansi-styles');
-
-console.log(`${style.green.open}Hello world!${style.green.close}`);
-
-
-// Color conversion between 16/256/truecolor
-// NOTE: If conversion goes to 16 colors or 256 colors, the original color
-// may be degraded to fit that color palette. This means terminals
-// that do not support 16 million colors will best-match the
-// original color.
-console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close);
-console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close);
-console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close);
-```
-
-## API
-
-Each style has an `open` and `close` property.
-
-## Styles
-
-### Modifiers
-
-- `reset`
-- `bold`
-- `dim`
-- `italic` *(Not widely supported)*
-- `underline`
-- `inverse`
-- `hidden`
-- `strikethrough` *(Not widely supported)*
-
-### Colors
-
-- `black`
-- `red`
-- `green`
-- `yellow`
-- `blue`
-- `magenta`
-- `cyan`
-- `white`
-- `blackBright` (alias: `gray`, `grey`)
-- `redBright`
-- `greenBright`
-- `yellowBright`
-- `blueBright`
-- `magentaBright`
-- `cyanBright`
-- `whiteBright`
-
-### Background colors
-
-- `bgBlack`
-- `bgRed`
-- `bgGreen`
-- `bgYellow`
-- `bgBlue`
-- `bgMagenta`
-- `bgCyan`
-- `bgWhite`
-- `bgBlackBright` (alias: `bgGray`, `bgGrey`)
-- `bgRedBright`
-- `bgGreenBright`
-- `bgYellowBright`
-- `bgBlueBright`
-- `bgMagentaBright`
-- `bgCyanBright`
-- `bgWhiteBright`
-
-## Advanced usage
-
-By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
-
-- `style.modifier`
-- `style.color`
-- `style.bgColor`
-
-###### Example
-
-```js
-console.log(style.color.green.open);
-```
-
-Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values.
-
-###### Example
-
-```js
-console.log(style.codes.get(36));
-//=> 39
-```
-
-## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728)
-
-`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors.
-
-The following color spaces from `color-convert` are supported:
-
-- `rgb`
-- `hex`
-- `keyword`
-- `hsl`
-- `hsv`
-- `hwb`
-- `ansi`
-- `ansi256`
-
-To use these, call the associated conversion function with the intended output, for example:
-
-```js
-style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code
-style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code
-
-style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
-style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
-
-style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code
-style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code
-```
-
-## Related
-
-- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-## For enterprise
-
-Available as part of the Tidelift Subscription.
-
-The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
diff --git a/website/node_modules/any-promise/.jshintrc b/website/node_modules/any-promise/.jshintrc
deleted file mode 100644
index 979105e9..00000000
--- a/website/node_modules/any-promise/.jshintrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "node":true,
- "strict":true
-}
diff --git a/website/node_modules/any-promise/.npmignore b/website/node_modules/any-promise/.npmignore
deleted file mode 100644
index 1354abc0..00000000
--- a/website/node_modules/any-promise/.npmignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.git*
-test/
-test-browser/
-build/
-.travis.yml
-*.swp
-Makefile
diff --git a/website/node_modules/any-promise/LICENSE b/website/node_modules/any-promise/LICENSE
deleted file mode 100644
index 9187fe5d..00000000
--- a/website/node_modules/any-promise/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2014-2016 Kevin Beaty
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/website/node_modules/any-promise/README.md b/website/node_modules/any-promise/README.md
deleted file mode 100644
index 174bea4a..00000000
--- a/website/node_modules/any-promise/README.md
+++ /dev/null
@@ -1,161 +0,0 @@
-## Any Promise
-
-[![Build Status](https://secure.travis-ci.org/kevinbeaty/any-promise.svg)](http://travis-ci.org/kevinbeaty/any-promise)
-
-Let your library support any ES 2015 (ES6) compatible `Promise` and leave the choice to application authors. The application can *optionally* register its preferred `Promise` implementation and it will be exported when requiring `any-promise` from library code.
-
-If no preference is registered, defaults to the global `Promise` for newer Node.js versions. The browser version defaults to the window `Promise`, so polyfill or register as necessary.
-
-### Usage with global Promise:
-
-Assuming the global `Promise` is the desired implementation:
-
-```bash
-# Install any libraries depending on any-promise
-$ npm install mz
-```
-
-The installed libraries will use global Promise by default.
-
-```js
-// in library
-var Promise = require('any-promise') // the global Promise
-
-function promiseReturningFunction(){
- return new Promise(function(resolve, reject){...})
-}
-```
-
-### Usage with registration:
-
-Assuming `bluebird` is the desired Promise implementation:
-
-```bash
-# Install preferred promise library
-$ npm install bluebird
-# Install any-promise to allow registration
-$ npm install any-promise
-# Install any libraries you would like to use depending on any-promise
-$ npm install mz
-```
-
-Register your preference in the application entry point before any other `require` of packages that load `any-promise`:
-
-```javascript
-// top of application index.js or other entry point
-require('any-promise/register/bluebird')
-
-// -or- Equivalent to above, but allows customization of Promise library
-require('any-promise/register')('bluebird', {Promise: require('bluebird')})
-```
-
-Now that the implementation is registered, you can use any package depending on `any-promise`:
-
-
-```javascript
-var fsp = require('mz/fs') // mz/fs will use registered bluebird promises
-var Promise = require('any-promise') // the registered bluebird promise
-```
-
-It is safe to call `register` multiple times, but it must always be with the same implementation.
-
-Again, registration is *optional*. It should only be called by the application user if overriding the global `Promise` implementation is desired.
-
-### Optional Application Registration
-
-As an application author, you can *optionally* register a preferred `Promise` implementation on application startup (before any call to `require('any-promise')`:
-
-You must register your preference before any call to `require('any-promise')` (by you or required packages), and only one implementation can be registered. Typically, this registration would occur at the top of the application entry point.
-
-
-#### Registration shortcuts
-
-If you are using a known `Promise` implementation, you can register your preference with a shortcut:
-
-
-```js
-require('any-promise/register/bluebird')
-// -or-
-import 'any-promise/register/q';
-```
-
-Shortcut registration is the preferred registration method as it works in the browser and Node.js. It is also convenient for using with `import` and many test runners, that offer a `--require` flag:
-
-```
-$ ava --require=any-promise/register/bluebird test.js
-```
-
-Current known implementations include `bluebird`, `q`, `when`, `rsvp`, `es6-promise`, `promise`, `native-promise-only`, `pinkie`, `vow` and `lie`. If you are not using a known implementation, you can use another registration method described below.
-
-
-#### Basic Registration
-
-As an alternative to registration shortcuts, you can call the `register` function with the preferred `Promise` implementation. The benefit of this approach is that a `Promise` library can be required by name without being a known implementation. This approach does NOT work in the browser. To use `any-promise` in the browser use either registration shortcuts or specify the `Promise` constructor using advanced registration (see below).
-
-```javascript
-require('any-promise/register')('when')
-// -or- require('any-promise/register')('any other ES6 compatible library (known or otherwise)')
-```
-
-This registration method will try to detect the `Promise` constructor from requiring the specified implementation. If you would like to specify your own constructor, see advanced registration.
-
-
-#### Advanced Registration
-
-To use the browser version, you should either install a polyfill or explicitly register the `Promise` constructor:
-
-```javascript
-require('any-promise/register')('bluebird', {Promise: require('bluebird')})
-```
-
-This could also be used for registering a custom `Promise` implementation or subclass.
-
-Your preference will be registered globally, allowing a single registration even if multiple versions of `any-promise` are installed in the NPM dependency tree or are using multiple bundled JavaScript files in the browser. You can bypass this global registration in options:
-
-
-```javascript
-require('../register')('es6-promise', {Promise: require('es6-promise').Promise, global: false})
-```
-
-### Library Usage
-
-To use any `Promise` constructor, simply require it:
-
-```javascript
-var Promise = require('any-promise');
-
-return Promise
- .all([xf, f, init, coll])
- .then(fn);
-
-
-return new Promise(function(resolve, reject){
- try {
- resolve(item);
- } catch(e){
- reject(e);
- }
-});
-
-```
-
-Except noted below, libraries using `any-promise` should only use [documented](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) functions as there is no guarantee which implementation will be chosen by the application author. Libraries should never call `register`, only the application user should call if desired.
-
-
-#### Advanced Library Usage
-
-If your library needs to branch code based on the registered implementation, you can retrieve it using `var impl = require('any-promise/implementation')`, where `impl` will be the package name (`"bluebird"`, `"when"`, etc.) if registered, `"global.Promise"` if using the global version on Node.js, or `"window.Promise"` if using the browser version. You should always include a default case, as there is no guarantee what package may be registered.
-
-
-### Support for old Node.js versions
-
-Node.js versions prior to `v0.12` may have contained buggy versions of the global `Promise`. For this reason, the global `Promise` is not loaded automatically for these old versions. If using `any-promise` in Node.js versions versions `<= v0.12`, the user should register a desired implementation.
-
-If an implementation is not registered, `any-promise` will attempt to discover an installed `Promise` implementation. If no implementation can be found, an error will be thrown on `require('any-promise')`. While the auto-discovery usually avoids errors, it is non-deterministic. It is recommended that the user always register a preferred implementation for older Node.js versions.
-
-This auto-discovery is only available for Node.jS versions prior to `v0.12`. Any newer versions will always default to the global `Promise` implementation.
-
-### Related
-
-- [any-observable](https://github.com/sindresorhus/any-observable) - `any-promise` for Observables.
-
diff --git a/website/node_modules/any-promise/implementation.d.ts b/website/node_modules/any-promise/implementation.d.ts
deleted file mode 100644
index c331a56a..00000000
--- a/website/node_modules/any-promise/implementation.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-declare var implementation: string;
-
-export = implementation;
diff --git a/website/node_modules/any-promise/implementation.js b/website/node_modules/any-promise/implementation.js
deleted file mode 100644
index a45ae94d..00000000
--- a/website/node_modules/any-promise/implementation.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./register')().implementation
diff --git a/website/node_modules/any-promise/index.d.ts b/website/node_modules/any-promise/index.d.ts
deleted file mode 100644
index 9f646c5d..00000000
--- a/website/node_modules/any-promise/index.d.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-declare class Promise implements Promise.Thenable {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Promise.Thenable) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then (onFulfilled?: (value: R) => U | Promise.Thenable, onRejected?: (error: any) => U | Promise.Thenable): Promise;
- then (onFulfilled?: (value: R) => U | Promise.Thenable, onRejected?: (error: any) => void): Promise;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch (onRejected?: (error: any) => U | Promise.Thenable): Promise;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise;
- static resolve (value: R | Promise.Thenable): Promise;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject (error: any): Promise;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all (values: [T1 | Promise.Thenable, T2 | Promise.Thenable, T3 | Promise.Thenable, T4 | Promise.Thenable , T5 | Promise.Thenable, T6 | Promise.Thenable, T7 | Promise.Thenable, T8 | Promise.Thenable, T9 | Promise.Thenable, T10 | Promise.Thenable]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all (values: [T1 | Promise.Thenable, T2 | Promise.Thenable, T3 | Promise.Thenable, T4 | Promise.Thenable , T5 | Promise.Thenable, T6 | Promise.Thenable, T7 | Promise.Thenable, T8 | Promise.Thenable, T9 | Promise.Thenable]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all (values: [T1 | Promise.Thenable, T2 | Promise.Thenable, T3 | Promise.Thenable