diff --git a/.github/workflows/hugo.yaml b/.github/workflows/hugo.yaml new file mode 100644 index 0000000..aaecf56 --- /dev/null +++ b/.github/workflows/hugo.yaml @@ -0,0 +1,78 @@ +# Sample workflow for building and deploying a Hugo site to GitHub Pages +name: Deploy Hugo site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: + - frontend + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.125.3 + steps: + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Install Dart Sass + run: sudo snap install dart-sass + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + - name: Install Node.js dependencies + run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + hugo \ + --gc \ + --minify \ + --baseURL "${{ steps.pages.outputs.base_url }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..7e0cb02 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "cvex/themes/hugo-xterm"] + path = cvex/themes/hugo-xterm + url = https://github.com/manid2/hugo-xterm diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 35db667..0b297a5 100644 --- a/README.md +++ b/README.md @@ -1 +1,8 @@ -# xplor-cvex +# CVEX: Common Vulnerability and Exposure Executable + +This static HUGO website serves as a database of completed CVEXes. These CVEXes were created by Team Kruegel & Vigna, 4 undergraduate researchers affiliated with UCSB's Early Research Scholars Program 2023-2024 cohort. + +Special thanks to Noah Spahn, Professor Giovanni Vigna, and Professor Christopher Kruegel, and UCSB SecLab. + +# What is a CVEX? +CVEX is an executable that runs a software exploit and outputs relevant data in the form of network traffic. Each CVEX is packaged in the form of a Docker container, which has the benefit of being convenient and compatible with any operating system. As a result, CVEXes can be run and analyzed by any person curious to understand the workings of a software vulnerability. \ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..c6f3fce --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +title = '{{ replace .File.ContentBaseName "-" " " | title }}' +date = {{ .Date }} +draft = true ++++ diff --git a/content/CVEX_directory/CVEX-2017-1000499.md b/content/CVEX_directory/CVEX-2017-1000499.md new file mode 100644 index 0000000..8b8f611 --- /dev/null +++ b/content/CVEX_directory/CVEX-2017-1000499.md @@ -0,0 +1,11 @@ +--- +title: CVEX-2017-1000499 +description: phpMyAdmin versions 4.7.x (prior to 4.7.6.1/4.7.7) are vulnerable to a CSRF weakness. By deceiving a user to click on a crafted URL, it is possible to perform harmful database operations such as deleting records, dropping/truncating tables etc. +layout: single +date: 2021-12-19T20:39:39-08:00 +draft: true +weight: 50 +url: /CVEX-2017-1000499/ +--- + +Description goes here. \ No newline at end of file diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..83daf4d --- /dev/null +++ b/content/_index.md @@ -0,0 +1,7 @@ +--- +title: Common Vulnerability and Exposure Executables (CVEX) +description: A Collection of our Completed CVEXes +layout: single +--- + +CVEXes go here. \ No newline at end of file diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..3364057 --- /dev/null +++ b/hugo.toml @@ -0,0 +1,4 @@ +baseURL = 'https://example.org/' +languageCode = 'en-us' +title = 'CVEX' +theme = 'hugo-xterm' \ No newline at end of file diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..623196c --- /dev/null +++ b/public/404.html @@ -0,0 +1,85 @@ + + + +404 Page not found :: CVEX + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+
+ + diff --git a/public/CVEX-2017-1000499/index.html b/public/CVEX-2017-1000499/index.html new file mode 100644 index 0000000..c703927 --- /dev/null +++ b/public/CVEX-2017-1000499/index.html @@ -0,0 +1,100 @@ + + + +CVEX-2017-1000499 :: CVEX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+

CVEX-2017-1000499

+ +

phpMyAdmin versions 4.7.x (prior to 4.7.6.1/4.7.7) are vulnerable to a CSRF weakness. By deceiving a user to click on a crafted URL, it is possible to perform harmful database operations such as deleting records, dropping/truncating tables etc.

+
+
+

Description goes here.

+ +
+ + +
+
+
+
+ +
+
+ + diff --git a/public/bundle.js b/public/bundle.js new file mode 100644 index 0000000..2c3366d --- /dev/null +++ b/public/bundle.js @@ -0,0 +1,106 @@ +(() => { + // + var container = document.querySelector(".container"); + var allMenus = document.querySelectorAll(".menu"); + document.body.addEventListener("click", () => { + allMenus.forEach((menu) => { + if (menu.classList.contains("open")) { + menu.classList.remove("open"); + } + }); + }); + window.addEventListener("resize", () => { + allMenus.forEach((menu) => { + menu.classList.remove("open"); + }); + }); + allMenus.forEach((menu) => { + const trigger = menu.querySelector(".menu-trigger"); + const dropdown = menu.querySelector(".menu-dropdown"); + trigger.addEventListener("click", (e) => { + e.stopPropagation(); + if (menu.classList.contains("open")) { + menu.classList.remove("open"); + } else { + allMenus.forEach((m) => m.classList.remove("open")); + menu.classList.add("open"); + } + if (dropdown.getBoundingClientRect().right > container.getBoundingClientRect().right) { + dropdown.style.left = "auto"; + dropdown.style.right = 0; + } + }); + dropdown.addEventListener("click", (e) => e.stopPropagation()); + }); +})(); + +; +(() => { + // + var themeDark = "theme--dark"; + var themeLight = "theme--light"; + var bodyClassList = document.body.classList; + var isSystemDark = window.matchMedia( + "(prefers-color-scheme: dark)" + ).matches; + var themeToggle = document.querySelector(".theme-toggle"); + var preferTheme = "prefer-theme"; + var localTheme = localStorage.getItem(preferTheme); + if (localTheme === themeDark) { + bodyClassList.add(themeDark); + } else if (localTheme === themeLight) { + bodyClassList.remove(themeDark); + } else if (isSystemDark) { + bodyClassList.add(themeDark); + } + themeToggle.addEventListener("click", () => { + if (bodyClassList.contains(themeDark)) { + bodyClassList.remove(themeDark); + localStorage.setItem(preferTheme, themeLight); + } else { + bodyClassList.add(themeDark); + localStorage.setItem(preferTheme, themeDark); + } + }); +})(); + +; +(() => { + // + var hiTextBlock = document.querySelectorAll(".highlight-wrapper"); + hiTextBlock.forEach(function(hiTextBlock2) { + const hiToolbar = hiTextBlock2.querySelector(".highlight-toolbar"); + if (!hiToolbar) + return; + const hiText = hiTextBlock2.querySelector(".highlight"); + if (!hiText) + return; + const copyButton = hiToolbar.querySelector(".js-btn-copy-code"); + if (!copyButton) + return; + copyButton.classList.remove("hide"); + function copyingDone() { + copyButton.innerHTML = "Copied!"; + setTimeout(() => { + copyButton.innerHTML = "Copy"; + }, 2e3); + } + copyButton.addEventListener("click", () => { + const range = document.createRange(); + range.selectNodeContents(hiText); + const selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange(range); + try { + document.execCommand("copy"); + copyingDone(); + } catch (e) { + } + selection.removeRange(range); + }); + }); +})(); + +; +(() => { +})(); diff --git a/public/categories/index.html b/public/categories/index.html new file mode 100644 index 0000000..95936d1 --- /dev/null +++ b/public/categories/index.html @@ -0,0 +1,86 @@ + + + +Categories :: CVEX + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+

+ Categories +

+ + +
+
    +
+
+
+ +
+
+ + diff --git a/public/categories/index.xml b/public/categories/index.xml new file mode 100644 index 0000000..37e2f97 --- /dev/null +++ b/public/categories/index.xml @@ -0,0 +1,10 @@ + + + + Categories on CVEX + http://localhost:1313/categories/ + Recent content in Categories on CVEX + Hugo -- gohugo.io + en-us + + diff --git a/public/cvex_directory/index.html b/public/cvex_directory/index.html new file mode 100644 index 0000000..40b1ec0 --- /dev/null +++ b/public/cvex_directory/index.html @@ -0,0 +1,90 @@ + + + +CVEX_directories :: CVEX + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+

CVEX_directories

+ +
+

See

+

CVEX-2017-1000499

phpMyAdmin versions 4.7.x (prior to 4.7.6.1/4.7.7) are vulnerable to a CSRF weakness. By deceiving a user to click on a crafted URL, it is possible to perform harmful database operations such as deleting records, dropping/truncating tables etc.

+
+ +
+ +
+
+
+ +
+
+ + diff --git a/public/cvex_directory/index.xml b/public/cvex_directory/index.xml new file mode 100644 index 0000000..99058d8 --- /dev/null +++ b/public/cvex_directory/index.xml @@ -0,0 +1,21 @@ + + + + CVEX_directories on CVEX + http://localhost:1313/cvex_directory/ + Recent content in CVEX_directories on CVEX + Hugo -- gohugo.io + en-us + Sun, 19 Dec 2021 20:39:39 -0800 + + CVEX-2017-1000499 + http://localhost:1313/CVEX-2017-1000499/ + Sun, 19 Dec 2021 20:39:39 -0800 + + http://localhost:1313/CVEX-2017-1000499/ + Description goes here. + <p>Description goes here.</p> + + + + diff --git a/public/cvex_directory/page/1/index.html b/public/cvex_directory/page/1/index.html new file mode 100644 index 0000000..6cb6eec --- /dev/null +++ b/public/cvex_directory/page/1/index.html @@ -0,0 +1,10 @@ + + + + http://localhost:1313/cvex_directory/ + + + + + + diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..f05a91d --- /dev/null +++ b/public/index.html @@ -0,0 +1,91 @@ + + + + +CVEX + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+ + diff --git a/public/index.xml b/public/index.xml new file mode 100644 index 0000000..30c9211 --- /dev/null +++ b/public/index.xml @@ -0,0 +1,21 @@ + + + + Common Vulnerability and Exposure Executables (CVEX) on CVEX + http://localhost:1313/ + Recent content in Common Vulnerability and Exposure Executables (CVEX) on CVEX + Hugo -- gohugo.io + en-us + Sun, 19 Dec 2021 20:39:39 -0800 + + CVEX-2017-1000499 + http://localhost:1313/CVEX-2017-1000499/ + Sun, 19 Dec 2021 20:39:39 -0800 + + http://localhost:1313/CVEX-2017-1000499/ + Description goes here. + <p>Description goes here.</p> + + + + diff --git a/public/screenshots/hugo-xterm-ss-01-dark.png b/public/screenshots/hugo-xterm-ss-01-dark.png new file mode 100644 index 0000000..3d7f384 Binary files /dev/null and b/public/screenshots/hugo-xterm-ss-01-dark.png differ diff --git a/public/screenshots/hugo-xterm-ss-02-light.png b/public/screenshots/hugo-xterm-ss-02-light.png new file mode 100644 index 0000000..ab44fbf Binary files /dev/null and b/public/screenshots/hugo-xterm-ss-02-light.png differ diff --git a/public/screenshots/hugo-xterm-ss-03-cv.png b/public/screenshots/hugo-xterm-ss-03-cv.png new file mode 100644 index 0000000..9ce43e4 Binary files /dev/null and b/public/screenshots/hugo-xterm-ss-03-cv.png differ diff --git a/public/screenshots/hugo-xterm-ss-04-slides.png b/public/screenshots/hugo-xterm-ss-04-slides.png new file mode 100644 index 0000000..dcfaf8b Binary files /dev/null and b/public/screenshots/hugo-xterm-ss-04-slides.png differ diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..af9ba9a --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,18 @@ + + + + http://localhost:1313/CVEX-2017-1000499/ + 2021-12-19T20:39:39-08:00 + + http://localhost:1313/ + 2021-12-19T20:39:39-08:00 + + http://localhost:1313/cvex_directory/ + 2021-12-19T20:39:39-08:00 + + http://localhost:1313/categories/ + + http://localhost:1313/tags/ + + diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..021da68 --- /dev/null +++ b/public/styles.css @@ -0,0 +1,3 @@ +:root{--phone: (max-width: 684px);--tablet: (max-width: 900px)}button,.button{align-items:center;border-radius:8px;border:1px solid;cursor:pointer;display:flex;font-weight:500;padding:8px 16px;text-align:center}button,.button{background:#dbdbf0;border-color:blue}button:hover,.button:hover{background:rgba(219,219,240,0.4);text-decoration:none}@media print{button,.button{background:#dbdbf0;border-color:blue}button:hover,.button:hover{background:rgba(219,219,240,0.4);text-decoration:none}}.theme--dark button,.theme--dark .button{background:#33334d;border-color:blue}.theme--dark button:hover,.theme--dark .button:hover{background:rgba(51,51,77,0.4);text-decoration:none}@media print{button,.button{display:none}}button:active,.button:active{transform:scale(0.95);transition:transform 0.2s ease}button.outline,button.transparent,.button.outline,.button.transparent{font-weight:400;background:none}button.outline,button.transparent,.button.outline,.button.transparent{color:#2525a7}button.outline:hover,button.transparent:hover,.button.outline:hover,.button.transparent:hover{background:rgba(219,219,240,0.9)}@media print{button.outline,button.transparent,.button.outline,.button.transparent{color:#2525a7}button.outline:hover,button.transparent:hover,.button.outline:hover,.button.transparent:hover{background:rgba(219,219,240,0.9)}}.theme--dark button.outline,.theme--dark button.transparent,.theme--dark .button.outline,.theme--dark .button.transparent{color:#ebebff}.theme--dark button.outline:hover,.theme--dark button.transparent:hover,.theme--dark .button.outline:hover,.theme--dark .button.transparent:hover{background:rgba(51,51,77,0.9)}button.transparent,.button.transparent{border:none}button.outline.brighter,.button.outline.brighter{border-color:#dcdcf0}@media print{button.outline.brighter,.button.outline.brighter{border-color:#dcdcf0}}.theme--dark button.outline.brighter,.theme--dark .button.outline.brighter{border-color:#393956}button.right,.button.right{justify-content:flex-end}button .label,.button .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}button .icon,.button .icon{margin-right:4px}button .icon.right,.button .icon.right{margin:0 0 0 4px}@media print{a.button{display:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.buttons{display:flex;flex-flow:row wrap;align-items:center;column-gap:8px}@media (max-width: 684px){.buttons{flex-direction:column;row-gap:8px}}.buttons.fill button,.buttons.fill .button{flex:1 0 0}@media (max-width: 684px){.buttons.fill button,.buttons.fill .button{width:100%;justify-content:center}}.gitinfo,.breadcrumbs{font-size:.875rem;font-style:italic}.breadcrumbs{width:fit-content;border-bottom:1px solid}.breadcrumbs{border-color:blue}@media print{.breadcrumbs{border-color:blue}}.theme--dark .breadcrumbs{border-color:blue}.gitinfo{margin:16px 0;border-top:1px solid}.gitinfo{color:#37373c;border-color:blue}@media print{.gitinfo{color:#37373c;border-color:blue}}.theme--dark .gitinfo{color:#b0b0bf;border-color:blue}@media print{.gitinfo{margin:0}.gitinfo a::after{display:none}.gitinfo p{margin:8px 0 0 0;font-size:.875rem}}.theme-toggle{cursor:pointer;padding:0}.theme-toggler{fill:currentcolor}.navbar{display:flex;flex-flow:row wrap;align-items:flex-start;justify-content:space-between}.navbar__first{font-weight:500;display:block}.navbar__separator{flex-grow:1;border-top:2px dotted}.navbar__separator{border-color:blue}@media print{.navbar__separator{border-color:blue}}.theme--dark .navbar__separator{border-color:blue}.navbar__last{display:block}.navbar__list{list-style:none;margin:0;padding:0;display:flex}.navbar__list>li{flex:0 0 auto;padding-left:8px;display:flex;justify-content:center}.navbar__list.borders>li{padding:4px 8px;border:2px dotted;margin-right:-2px}.navbar__list.borders>li{border-color:blue}@media print{.navbar__list.borders>li{border-color:blue}}.theme--dark .navbar__list.borders>li{border-color:blue}.site-header .navbar{margin-bottom:32px;font-size:1.125rem}@media print{.site-header{display:none}}.menu{display:flex;flex-direction:column;position:relative;list-style:none;padding:0;margin:0}.menu-trigger{margin-right:0;user-select:none;cursor:pointer}.menu-trigger{color:blue}@media print{.menu-trigger{color:blue}}.theme--dark .menu-trigger{color:blue}.menu-dropdown{display:none;flex-direction:column;position:absolute;margin:0;padding:0;top:8px;left:0;list-style:none;z-index:99}.menu-dropdown{background:#ededf7;box-shadow:0 8px rgba(237,237,247,0.8),-8px 8px rgba(237,237,247,0.8),8px 8px rgba(237,237,247,0.8)}@media print{.menu-dropdown{background:#ededf7;box-shadow:0 8px rgba(237,237,247,0.8), -8px 8px rgba(237,237,247,0.8), 8px 8px rgba(237,237,247,0.8)}}.theme--dark .menu-dropdown{background:#14141f;box-shadow:0 8px rgba(20,20,31,0.8),-8px 8px rgba(20,20,31,0.8),8px 8px rgba(20,20,31,0.8)}.open .menu-dropdown{display:flex}.menu-dropdown>li{flex:0 0 auto;padding:4px 8px;border:2px dotted}.menu-dropdown>li{border-color:blue}@media print{.menu-dropdown>li{border-color:blue}}.theme--dark .menu-dropdown>li{border-color:blue}.menu-dropdown>li a{display:flex;text-decoration:none}.menu-dropdown>li a:hover{text-decoration:underline}@media (max-width: 684px){.menu--desktop{display:none}}.menu--mobile .menu-trigger{font-weight:700;padding:4px 8px;height:100%;margin-bottom:0 !important;position:relative;cursor:pointer;border:2px dotted;display:none}.menu--mobile .menu-trigger{color:#262659;background:#ededf7;border-color:blue}@media print{.menu--mobile .menu-trigger{color:#262659;background:#ededf7;border-color:blue}}.theme--dark .menu--mobile .menu-trigger{color:#ccf;background:#14141f;border-color:blue}@media (max-width: 684px){.menu--mobile .menu-trigger{display:block}}@media (max-width: 684px){.menu--mobile .menu-dropdown{left:auto;right:0}}.menu--mobile li{flex:0 0 auto;margin-bottom:-2px}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}body{margin:0;padding:0;font-family:"Fira Sans",arial,helvetica,sans-serif;font-weight:400;font-size:1rem;line-height:1.54;letter-spacing:-0.02em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-feature-settings:"liga", "tnum", "zero", "ss01", "locl";font-variant-ligatures:contextual;-webkit-overflow-scrolling:touch;text-size-adjust:100%}@media print{@page{size:a4 portrait;margin:0.5in}}.theme-container{background:#ededf7;color:#262659}@media print{.theme-container{background:#ededf7;color:#262659}}.theme--dark .theme-container{background:#14141f;color:#ccf}@media print{.theme-container{background:white !important;color:black !important}}.site-main{margin:0;padding:0}.hanchor{float:right;margin-right:-24px}.hanchor::after{content:"#";visibility:hidden}.hanchor{color:#4d4dff}@media print{.hanchor{color:#4d4dff}}.theme--dark .hanchor{color:#99f}@media print{.hanchor{display:none}}h1,h2,h3{border-color:blue}@media print{h1,h2,h3{border-color:blue}}.theme--dark h1,.theme--dark h2,.theme--dark h3{border-color:blue}h1{font-size:2rem;border-bottom:2px dotted}h2{font-size:1.6rem;border-bottom:1px solid}h3{font-size:1.25rem;border-bottom:1px dashed}h1,h2,h3,h4,h5,h6{font-family:"Roboto Slab","Times New Roman",garamond,serif;font-weight:500;margin:32px 0 16px 0;width:fit-content}@media print{h1,h2,h3,h4,h5,h6{break-after:avoid-page;margin:8px 0}}h1>a.hanchor,h2>a.hanchor,h3>a.hanchor,h4>a.hanchor,h5>a.hanchor,h6>a.hanchor{text-decoration:none}h1>a.hanchor:focus::after,h2>a.hanchor:focus::after,h3>a.hanchor:focus::after,h4>a.hanchor:focus::after,h5>a.hanchor:focus::after,h6>a.hanchor:focus::after{visibility:visible}h1:hover>a.hanchor::after,h2:hover>a.hanchor::after,h3:hover>a.hanchor::after,h4:hover>a.hanchor::after,h5:hover>a.hanchor::after,h6:hover>a.hanchor::after{visibility:visible}@media print{h1{margin-top:0}}a{text-decoration:none}a:hover{text-decoration:underline}a{color:#063}@media print{a{color:#063}}.theme--dark a{color:#0c6}@media print{a::after{margin-left:4px;content:"(" attr(href) ")";text-decoration:underline;font-style:italic}a::after{color:#262659}}@media print{a::after{color:#262659}}@media print{.theme--dark a::after{color:#ccf}}p{margin:16px 0}code{font-family:"Ubuntu Mono",monaco,consolas,monospace;border-radius:2px;padding:2px 4px}code{color:#8c3800;background:#f8f8fc}@media print{code{color:#8c3800;background:#f8f8fc}}.theme--dark code{color:#ffab73;background:#393956}img{max-width:100%}img.left{margin-right:auto}img.center{margin-left:auto;margin-right:auto}img.right{margin-left:auto}figure{display:table;max-width:100%;margin:24px 0}figure.left{margin-right:auto}figure.center{margin-left:auto;margin-right:auto}figure.right{margin-left:auto}figure figcaption{font-size:.875rem;padding:4px 8px;margin-top:4px;opacity:0.8}figure figcaption.left{text-align:left}figure figcaption.center{text-align:center}figure figcaption.right{text-align:right}figure figcaption{background:blue;color:#ededf7}@media print{figure figcaption{background:blue;color:#ededf7}}.theme--dark figure figcaption{background:blue;color:#14141f}blockquote{border-left:4px solid;margin:24px 0;padding:16px 16px 16px 24px;font-style:italic}blockquote{color:#2525a7;background:#e6e6f4;border-color:blue}@media print{blockquote{color:#2525a7;background:#e6e6f4;border-color:blue}}.theme--dark blockquote{color:#ebebff;background:#1f1f2e;border-color:blue}@media print{blockquote{margin:24px 0}}blockquote p{position:relative}blockquote p:first-of-type{margin-top:0}blockquote p:last-of-type{margin-bottom:0}blockquote p:first-of-type::before{content:">";display:block;position:absolute;left:-24px;padding:4px}table{table-layout:auto;border-collapse:collapse;width:100%;margin:24px 0}table,th,td{border:1px dashed;padding:4px}table,th,td{border-color:blue}@media print{table,th,td{border-color:blue}}.theme--dark table,.theme--dark th,.theme--dark td{border-color:blue}@media print{table,th,td{padding:4px}}th{font-weight:500}th{color:#2525a7;background:#dcdcf0}@media print{th{color:#2525a7;background:#dcdcf0}}.theme--dark th{color:#ebebff;background:#393956}td{font-size:.875rem}ul,ol{margin:0 0 16px 24px;padding:0}@media print{ul,ol{margin-bottom:0}}ul li,ol li{position:relative}@media print{ul li,ol li{break-inside:avoid-page}ul li>p,ol li>p{margin:0 0 4px 0}}ol{list-style:none;counter-reset:li}ol li{counter-increment:li}ol li::before{content:counter(li);position:absolute;right:calc(100% + 10px);display:inline-block;text-align:right}ol li::before{color:"accent"}@media print{ol li::before{color:"accent"}}.theme--dark ol li::before{color:"accent"}ol ol{margin-left:24px}ol ol li{counter-increment:li}ol ol li::before{content:counters(li, ".") " "}li ol,li ul{margin:0 0 0 24px}hr{width:100%;border:none;height:1px}hr{background:blue}@media print{hr{background:blue}}.theme--dark hr{background:blue}@media print{hr{margin:0}}.container{display:flex;flex-direction:column;padding:16px;max-width:864px;min-height:100vh}.container.full,.container.center{border:none;margin:0 auto}.container.full{max-width:100%}@media print{.container{display:initial;padding:0}}.content{display:flex;flex-direction:column}@media print{.content{display:initial}}.hide{display:none}.row{display:flex;flex-flow:row wrap;align-items:center;justify-content:space-between}.row.start{gap:8px;justify-content:flex-start}.col{display:flex;flex-flow:column wrap}.row.lead,.col.lead{font-weight:500;font-size:1.125rem}.row.bold,.col.bold{font-weight:500}.row.sub,.col.sub{font-weight:300;font-style:italic}.cv-title{display:block;border:none;margin:0 0 4px 0}.cv-contacts{display:block;text-align:end;margin:0 0 4px 0}.cv-description{font-style:italic;font-size:.875rem;margin:4px 0}.cv-experience{margin:8px 0;border-bottom:none}@media print{.cv-experience{break-after:avoid-page;break-inside:avoid-page}}.cv-content h2{font-size:1.125rem;width:100%}.cv-content h2 .hanchor{display:none}@media print{.cv-content *{margin-top:2px;margin-bottom:0;line-height:1.2}}.post{width:100%;text-align:left;margin:16px 0}@media print{.post{margin:0 0 24px 0}}.post-entries .item{padding-bottom:8px;margin-bottom:24px}.post-entries .item p{margin:0}.post-entries .item h2,.post-entries .item h3{border-style:none;margin:0;padding:0}.post-header{margin:16px 0}@media print{.post-header{margin:0}}.post-title{position:relative;border-bottom:4px dotted;width:100%;padding-bottom:4px}.post-title{border-color:blue}@media print{.post-title{border-color:blue}}.theme--dark .post-title{border-color:blue}.post-title::after{content:"";position:absolute;bottom:2px;display:block;width:100%;border-bottom:4px dotted}.post-title::after{border-color:blue}@media print{.post-title::after{border-color:blue}}.theme--dark .post-title::after{border-color:blue}.post-title a{text-decoration:none}@media print{.post-title a::after{display:none}}.post-meta,.post-tags{font-style:italic;font-size:.875rem;margin:8px 0}.post-meta,.post-tags{color:#4d4dff}@media print{.post-meta,.post-tags{color:#4d4dff}}.theme--dark .post-meta,.theme--dark .post-tags{color:#99f}@media print{.post-meta a::after,.post-tags a::after{display:none}}.post-description{font-size:1.125rem;font-weight:300}.post-description{color:#2525a7}@media print{.post-description{color:#2525a7}}.theme--dark .post-description{color:#ebebff}.post-toc{margin:16px 0}@media print{.post-toc{display:none}}.post-toc ul,.post-toc ol{margin-bottom:0}.post-cover{border:24px solid "accent";background:transparent;margin:48px 0;padding:24px}@media (max-width: 684px){.post-cover{padding:8px;border-width:8px}}.post-footer{margin:48px 0}@media print{.post-footer{margin:8px 0 0 0}}.post-support{font-style:italic;margin:16px 0;border-top:1px solid}.post-support{border-color:blue}@media print{.post-support{border-color:blue}}.theme--dark .post-support{border-color:blue}@media print{.post-support{margin:24px 0}}.pagination{margin:48px 0}@media print{.pagination{display:none}}.pagination-title{display:flex;text-align:center;position:relative;margin:24px 0}.pagination-title-h{text-align:center;margin:0 auto;padding:4px 16px;font-size:smaller;text-transform:uppercase;text-decoration:none;letter-spacing:0.1em;z-index:1}.pagination-title-h{background:#ededf7;color:rgba(38,38,89,0.6)}@media print{.pagination-title-h{background:#ededf7;color:rgba(38,38,89,0.6)}}.theme--dark .pagination-title-h{background:#14141f;color:rgba(204,204,255,0.6)}.pagination-title hr{position:absolute;left:0;right:0;width:100%;margin-top:16px;z-index:0}.site-footer{margin-top:32px;border-top:1px solid}.site-footer{border-color:blue;color:#37373c}@media print{.site-footer{border-color:blue;color:#37373c}}.theme--dark .site-footer{border-color:blue;color:#b0b0bf}@media print{.site-footer{display:none}}.themeinfo,.buildinfo{font-size:.875rem;margin:8px 0}.copyright{display:flex;flex-flow:row wrap;align-items:center;justify-content:space-between;margin:16px 0}.copyright>p{margin:0}.copyright .navbar__list>li{border:none}.chroma .ln{white-space:pre;user-select:none;padding:0 0.4em;color:#7f7f7f}.chroma .cl{padding:0 0.4em}.chroma .line{display:flex}.chroma .ge{font-style:italic}.chroma .gs{font-weight:500}.chroma .err{color:#960050;background-color:#1e0010}.chroma .hl{background-color:#ffc}.bg,.chroma{color:#272822;background-color:#fafafa}@media print{.bg,.chroma{color:#272822;background-color:#fafafa}}.theme--dark .bg,.theme--dark .chroma{color:#f8f8f2;background-color:#272822}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .no{color:#00a8c8}@media print{.chroma .k,.chroma .kc,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .no{color:#00a8c8}}.theme--dark .chroma .k,.theme--dark .chroma .kc,.theme--dark .chroma .kd,.theme--dark .chroma .kp,.theme--dark .chroma .kr,.theme--dark .chroma .kt,.theme--dark .chroma .no{color:#66d9ef}.chroma .kn,.chroma .nt,.chroma .o,.chroma .ow,.chroma .gd{color:#f92672}.chroma .n{color:#111}@media print{.chroma .n{color:#111}}.theme--dark .chroma .n{color:#f8f8f2}.chroma .na,.chroma .nc,.chroma .nd,.chroma .ne,.chroma .nf,.chroma .nx,.chroma .gi{color:#75af00}@media print{.chroma .na,.chroma .nc,.chroma .nd,.chroma .ne,.chroma .nf,.chroma .nx,.chroma .gi{color:#75af00}}.theme--dark .chroma .na,.theme--dark .chroma .nc,.theme--dark .chroma .nd,.theme--dark .chroma .ne,.theme--dark .chroma .nf,.theme--dark .chroma .nx,.theme--dark .chroma .gi{color:#a6e22e}.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#d88200}@media print{.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#d88200}}.theme--dark .chroma .ld,.theme--dark .chroma .s,.theme--dark .chroma .sa,.theme--dark .chroma .sb,.theme--dark .chroma .sc,.theme--dark .chroma .dl,.theme--dark .chroma .sd,.theme--dark .chroma .s2,.theme--dark .chroma .sh,.theme--dark .chroma .si,.theme--dark .chroma .sx,.theme--dark .chroma .sr,.theme--dark .chroma .s1,.theme--dark .chroma .ss{color:#e6db74}.chroma .l,.chroma .se,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#ae81ff}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf,.chroma .gu{color:#75715e}div.highlight-wrapper{margin:24px 0;border-radius:2px;border:1px solid}div.highlight-wrapper{border-color:#dcdcf0}@media print{div.highlight-wrapper{border-color:#dcdcf0}}.theme--dark div.highlight-wrapper{border-color:#393956}div.highlight-wrapper div.highlight-toolbar{display:flex;border-bottom:1px solid}div.highlight-wrapper div.highlight-toolbar{color:#2525a7;background:#f0f0f5;border-color:#dcdcf0}@media print{div.highlight-wrapper div.highlight-toolbar{color:#2525a7;background:#f0f0f5;border-color:#dcdcf0}}.theme--dark div.highlight-wrapper div.highlight-toolbar{color:#ebebff;background:#22222a;border-color:#393956}div.highlight-wrapper div.highlight-toolbar .item{padding:0 8px}div.highlight-wrapper div.highlight-toolbar .item .label{color:#37373c}@media print{div.highlight-wrapper div.highlight-toolbar .item .label{color:#37373c}}.theme--dark div.highlight-wrapper div.highlight-toolbar .item .label{color:#b0b0bf}@media (max-width: 684px){div.highlight-wrapper div.highlight-toolbar .item .label{display:none}}div.highlight-wrapper div.highlight-toolbar .item.right{margin-left:auto}div.highlight .chroma{margin:0;padding:4px 0;overflow:auto}div.highlight .chroma code{color:inherit;background:inherit;padding:0;margin:0}div.highlight .chroma .line span.cl.wrap{white-space:pre-wrap}div.highlight .chroma .cl{padding-right:8px}:root{--r-code-font: Ubuntu Mono,monaco,consolas,monospace;--r-heading-font: Roboto Slab,Times New Roman,garamond,serif;--r-main-font-size: 1rem;--r-main-font: Fira Sans,arial,helvetica,sans-serif}:root{--r-background-color: t($background);--r-heading-color: t($text);--r-main-color: t($text);--r-link-color: t($text-links);--r-link-color-dark: t($text-links);--r-link-color-hover: t($text)}@media print{:root{--r-background-color: t($background);--r-heading-color: t($text);--r-main-color: t($text);--r-link-color: t($text-links);--r-link-color-dark: t($text-links);--r-link-color-hover: t($text)}}.theme--dark :root{--r-background-color: t($background);--r-heading-color: t($text);--r-main-color: t($text);--r-link-color: t($text-links);--r-link-color-dark: t($text-links);--r-link-color-hover: t($text)}.reveal a{color:#063}@media print{.reveal a{color:#063}}.theme--dark .reveal a{color:#0c6}.reveal{width:100%;height:600px}.reveal .slides{text-align:left}.header-left,.footer-left{position:absolute;left:0%;margin:16px 16px}.header-left{top:0%}.footer-left{bottom:0%} + +/*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/public/styles.css.map b/public/styles.css.map new file mode 100644 index 0000000..e5a20e4 --- /dev/null +++ b/public/styles.css.map @@ -0,0 +1,37 @@ +{ + "version": 3, + "file": "styles.css", + "sourceRoot": "/Users/gracefeng/Desktop/CVEX Website/xplor-cvex", + "sources": [ + "themes/hugo-xterm/assets/styles/app.scss", + "themes/hugo-xterm/assets/styles/_variables.scss", + "themes/hugo-xterm/assets/styles/_themes.scss", + "themes/hugo-xterm/assets/styles/_buttons.scss", + "themes/hugo-xterm/assets/styles/_header.scss", + "themes/hugo-xterm/assets/styles/_menu.scss", + "themes/hugo-xterm/assets/styles/_main.scss", + "themes/hugo-xterm/assets/styles/_post.scss", + "themes/hugo-xterm/assets/styles/_pagination.scss", + "themes/hugo-xterm/assets/styles/_footer.scss", + "themes/hugo-xterm/assets/styles/_gen_syntax.scss", + "themes/hugo-xterm/assets/styles/_syntax.scss", + "themes/hugo-xterm/assets/styles/_slides.scss" + ], + "sourcesContent": [ + "@import \"variables\";\n@import \"themes\";\n\n/* components */\n@import \"buttons\";\n@import \"header\";\n@import \"menu\";\n@import \"main\";\n@import \"post\";\n@import \"pagination\";\n@import \"footer\";\n\n/* code syntax highlight */\n@import \"gen_syntax\";\n@import \"syntax\";\n@import \"slides\";\n", + "/* Fonts */\n$font-family-title: \"Roboto Slab\", \"Times New Roman\", garamond, serif;\n$font-family-normal: \"Fira Sans\", arial, helvetica, sans-serif;\n$font-family-mono: \"Ubuntu Mono\", monaco, consolas, monospace;\n\n/* Font weights */\n$font-light: 300;\n$font-normal: 400;\n$font-bold: 500;\n\n/* Font sizes */\n$font-size: 1rem;\n$font-size-smaller: $font-size - 0.125;\n$font-size-larger: $font-size + 0.125;\n\n/* Layouts */\n$container-max-width: 864px;\n\n/* Spacers */\n$spacer-1: 1px;\n$spacer-2: $spacer-1 * 2;\n$spacer-smallest: $spacer-2 * 2;\n$spacer-small: $spacer-smallest * 2;\n$spacer-normal: $spacer-small * 2;\n$spacer-large: $spacer-small * 3;\n$spacer-large2: $spacer-small * 4;\n$spacer-largest: $spacer-small * 6;\n\n/* Colors */\n$blue: hsl(\n $hue: 240deg,\n $saturation: 100%,\n $lightness: 50%,\n);\n\n/* Light theme colors */\n$accent--light: $blue;\n$background--light: scale-color(\n $accent--light,\n $saturation: -60%,\n $lightness: 90%\n);\n$text--light: scale-color(\n $accent--light,\n $saturation: -60%,\n $lightness: -50%\n);\n$text-links--light: adjust-color(\n $accent--light,\n $hue: -90deg,\n $lightness: -30%\n);\n\n/* Dark theme colors */\n$accent--dark: $blue;\n$background--dark: scale-color(\n $accent--dark,\n $saturation: -80%,\n $lightness: -80%\n);\n$text--dark: scale-color($accent--dark, $lightness: 80%);\n$text-links--dark: adjust-color(\n $accent--dark,\n $hue: -90deg,\n $lightness: -10%\n);\n\n/* Media queries */\n$phone: \"max-width: 684px\";\n$tablet: \"max-width: 900px\";\n\n:root {\n --phone: (#{$phone});\n --tablet: (#{$tablet});\n}\n", + "/* Shortcuts */\n$accent: \"accent\";\n$background: \"background\";\n$text: \"text\";\n$text-links: \"text-links\";\n$text-accent: \"text-accent\";\n$text-brighter: \"text-brighter\";\n$text-duller: \"text-duller\";\n$background-brighter: \"background-brighter\";\n$background-grey: \"background-grey\";\n$code-text: \"code-text\";\n$code-background: \"code-background\";\n$blockquote-background: \"blockquote-background\";\n$button-text: \"button-text\";\n$button-background: \"button-background\";\n\n/* Syntax highlighting colors variables */\n$syn-bg: \"syn-bg\";\n$syn-fg: \"syn-fg\";\n$syn-kw: \"syn-kw\";\n$syn-ld: \"syn-ld\";\n$syn-lse: \"syn-lse\";\n$syn-n: \"syn-n\";\n$syn-na: \"syn-na\";\n\n/* Syntax highlighting common colors based on monokailight and monokai */\n$syn-c: #75715e;\n$syn-op: #f92672;\n$syn-l: #ae81ff;\n\n/* Themes */\n$themes: (\n light: (\n $accent: $accent--light,\n $background: $background--light,\n $text: $text--light,\n $text-links: $text-links--light,\n $text-accent: scale-color($accent--light, $lightness: 30%),\n $text-brighter:\n scale-color($text--light, $saturation: 40%, $lightness: 20%),\n $text-duller:\n scale-color($text--light, $saturation: -90%, $lightness: -10%),\n $background-brighter: scale-color($background--light, $lightness: -5%),\n $background-grey:\n scale-color($accent--light, $saturation: -80%, $lightness: 90%),\n $code-text: scale-color($accent--light, $hue: -90%, $lightness: -45%),\n $code-background: scale-color($background--light, $lightness: 60%),\n $blockquote-background: darken($background--light, 2%),\n $button-text: darken($text--light, 5%),\n $button-background: darken($background--light, 5%),\n $syn-bg: #fafafa,\n $syn-fg: #272822,\n $syn-kw: #00a8c8,\n $syn-ld: #d88200,\n $syn-lse: #8045ff,\n $syn-n: #111,\n $syn-na: #75af00,\n ),\n dark: (\n $accent: $accent--dark,\n $background: $background--dark,\n $text: $text--dark,\n $text-links: $text-links--dark,\n $text-accent: scale-color($accent--dark, $lightness: 60%),\n $text-brighter:\n scale-color($text--dark, $saturation: 60%, $lightness: 60%),\n $text-duller:\n scale-color($text--dark, $saturation: -90%, $lightness: -20%),\n $background-brighter: scale-color($background--dark, $lightness: 20%),\n $background-grey:\n scale-color($accent--dark, $saturation: -90%, $lightness: -70%),\n $code-text: scale-color($accent--dark, $hue: -90%, $lightness: 45%),\n $code-background: scale-color($background--dark, $lightness: 20%),\n $blockquote-background: lighten($background--dark, 5%),\n $button-text: lighten($text--dark, 10%),\n $button-background: lighten($background--dark, 15%),\n $syn-bg: #272822,\n $syn-fg: #f8f8f2,\n $syn-kw: #66d9ef,\n $syn-ld: #e6db74,\n $syn-lse: #ae81ff,\n $syn-n: #f8f8f2,\n $syn-na: #a6e22e,\n ),\n);\n\n/* Current theme global variable */\n$current-theme: null;\n\n@mixin themed() {\n $current-theme: map-get($themes, \"light\") !global;\n\n & {\n @content;\n }\n\n @media print {\n & {\n @content;\n }\n }\n\n $themes-local: map-remove($themes, \"light\");\n\n @each $theme-name, $theme-map in $themes-local {\n .theme--#{$theme-name} & {\n $current-theme: $theme-map !global;\n @content;\n\n $current-theme: null !global;\n }\n }\n}\n\n@function t($key) {\n @return map-get($current-theme, $key);\n}\n", + "/* Buttons */\nbutton,\n.button {\n align-items: center;\n border-radius: $spacer-small;\n border: $spacer-1 solid;\n cursor: pointer;\n display: flex;\n font-weight: $font-bold;\n padding: $spacer-small $spacer-normal;\n text-align: center;\n\n @include themed {\n background: t($button-background);\n border-color: t($accent);\n\n &:hover {\n background: transparentize(t($button-background), 0.6);\n text-decoration: none;\n }\n }\n\n @media print {\n display: none;\n }\n\n &:active {\n transform: scale(0.95);\n transition: transform 0.2s ease;\n }\n\n /* button variants */\n &.outline,\n &.transparent {\n font-weight: $font-normal;\n background: none;\n\n @include themed {\n color: t($text-brighter);\n\n &:hover {\n background: transparentize(t($button-background), 0.1);\n }\n }\n }\n\n &.transparent {\n border: none;\n }\n\n &.outline.brighter {\n @include themed {\n border-color: t($background-brighter);\n }\n }\n\n /* button content align right */\n &.right {\n justify-content: flex-end;\n }\n\n /* button label */\n .label {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n /* button icon */\n .icon {\n margin-right: $spacer-smallest;\n\n &.right {\n margin: 0 0 0 $spacer-smallest;\n }\n }\n}\n\na.button {\n @media print {\n display: initial;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n/* Buttons container */\n.buttons {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n column-gap: $spacer-small;\n\n @media ($phone) {\n flex-direction: column;\n row-gap: $spacer-small;\n }\n\n /* Buttons filling the container */\n &.fill {\n button,\n .button {\n flex: 1 0 0;\n\n @media ($phone) {\n width: 100%;\n justify-content: center;\n }\n }\n }\n}\n", + ".gitinfo,\n.breadcrumbs {\n font-size: $font-size-smaller;\n font-style: italic;\n}\n\n.breadcrumbs {\n width: fit-content;\n border-bottom: $spacer-1 solid;\n\n @include themed {\n border-color: t($accent);\n }\n}\n\n.gitinfo {\n margin: $spacer-normal 0;\n border-top: $spacer-1 solid;\n\n @include themed {\n color: t($text-duller);\n border-color: t($accent);\n }\n\n @media print {\n margin: 0;\n\n a {\n &::after {\n display: none;\n }\n }\n\n p {\n margin: $spacer-small 0 0 0;\n font-size: $font-size-smaller;\n }\n }\n}\n\n.theme-toggle {\n cursor: pointer;\n padding: 0;\n}\n\n.theme-toggler {\n fill: currentcolor;\n}\n\n.navbar {\n display: flex;\n flex-flow: row wrap;\n align-items: flex-start;\n justify-content: space-between;\n\n &__first {\n font-weight: $font-bold;\n display: block;\n }\n\n &__separator {\n flex-grow: 1;\n border-top: $spacer-2 dotted;\n\n @include themed {\n border-color: t($accent);\n }\n }\n\n &__last {\n display: block;\n }\n\n &__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n\n > li {\n flex: 0 0 auto;\n padding-left: $spacer-small;\n display: flex;\n justify-content: center;\n }\n\n &.borders {\n > li {\n padding: $spacer-smallest $spacer-small;\n border: $spacer-2 dotted;\n margin-right: $spacer-2 * -1;\n\n @include themed {\n border-color: t($accent);\n }\n }\n }\n }\n}\n\n.site-header {\n .navbar {\n margin-bottom: $spacer-large2;\n font-size: $font-size-larger;\n }\n\n @media print {\n display: none;\n }\n}\n", + "@mixin menu {\n display: none;\n flex-direction: column;\n position: absolute;\n margin: 0;\n padding: 0;\n top: $spacer-small;\n left: 0;\n list-style: none;\n z-index: 99;\n\n @include themed {\n $shadow-color: transparentize(t($background), 0.2);\n $shadow: 0 $spacer-small $shadow-color,\n -$spacer-small $spacer-small $shadow-color,\n $spacer-small $spacer-small $shadow-color;\n\n background: t($background);\n box-shadow: $shadow;\n }\n}\n\n@mixin header-menu-trigger {\n font-weight: 700;\n padding: $spacer-smallest $spacer-small;\n height: 100%;\n margin-bottom: 0 !important;\n position: relative;\n cursor: pointer;\n border: $spacer-2 dotted;\n\n @include themed {\n color: t($text);\n background: t($background);\n border-color: t($accent);\n }\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n position: relative;\n list-style: none;\n padding: 0;\n margin: 0;\n\n &-trigger {\n margin-right: 0;\n user-select: none;\n cursor: pointer;\n\n @include themed {\n color: t($accent);\n }\n }\n\n &-dropdown {\n @include menu;\n\n .open & {\n display: flex;\n }\n\n > li {\n flex: 0 0 auto;\n padding: $spacer-smallest $spacer-small;\n border: $spacer-2 dotted;\n\n @include themed {\n border-color: t($accent);\n }\n\n a {\n display: flex;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n &--desktop {\n @media ($phone) {\n display: none;\n }\n }\n\n &--mobile {\n .menu-trigger {\n @include header-menu-trigger;\n\n display: none;\n\n @media ($phone) {\n display: block;\n }\n }\n\n .menu-dropdown {\n @media ($phone) {\n left: auto;\n right: 0;\n }\n }\n\n li {\n flex: 0 0 auto;\n margin-bottom: $spacer-2 * -1;\n }\n }\n}\n", + "html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\nbody {\n margin: 0;\n padding: 0;\n font-family: $font-family-normal;\n font-weight: $font-normal;\n font-size: $font-size;\n line-height: 1.54;\n letter-spacing: -0.02em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n font-feature-settings: \"liga\", \"tnum\", \"zero\", \"ss01\", \"locl\";\n font-variant-ligatures: contextual;\n -webkit-overflow-scrolling: touch;\n text-size-adjust: 100%;\n}\n\n@media print {\n @page {\n size: a4 portrait;\n margin: 0.5in;\n }\n}\n\n.theme-container {\n @include themed {\n background: t($background);\n color: t($text);\n }\n\n @media print {\n background: white !important;\n color: black !important;\n }\n}\n\n.site-main {\n margin: 0;\n padding: 0;\n}\n\n.hanchor {\n float: right;\n margin-right: $spacer-large * -1;\n\n &::after {\n content: \"#\";\n visibility: hidden;\n }\n\n @include themed {\n color: t($text-accent);\n }\n\n @media print {\n display: none;\n }\n}\n\nh1,\nh2,\nh3 {\n @include themed {\n border-color: t($accent);\n }\n}\n\nh1 {\n font-size: $font-size * 2;\n border-bottom: $spacer-2 dotted;\n}\n\nh2 {\n font-size: $font-size * 1.6;\n border-bottom: $spacer-1 solid;\n}\n\nh3 {\n font-size: $font-size * 1.25;\n border-bottom: $spacer-1 dashed;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-family: $font-family-title;\n font-weight: $font-bold;\n margin: $spacer-large2 0 $spacer-normal 0;\n width: fit-content;\n\n @media print {\n break-after: avoid-page;\n margin: $spacer-small 0;\n }\n\n > a.hanchor {\n text-decoration: none;\n }\n\n > a.hanchor:focus::after {\n visibility: visible;\n }\n\n &:hover {\n > a.hanchor::after {\n visibility: visible;\n }\n }\n}\n\n@media print {\n h1 {\n margin-top: 0;\n }\n}\n\na {\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n @include themed {\n color: t($text-links);\n }\n\n @media print {\n &::after {\n margin-left: $spacer-smallest;\n content: \"(\" attr(href) \")\";\n text-decoration: underline;\n font-style: italic;\n\n @include themed {\n color: t($text);\n }\n }\n }\n}\n\np {\n margin: $spacer-normal 0;\n}\n\ncode {\n font-family: $font-family-mono;\n border-radius: $spacer-2;\n padding: $spacer-2 $spacer-smallest;\n\n @include themed {\n color: t($code-text);\n background: t($code-background);\n }\n}\n\nimg {\n max-width: 100%;\n\n &.left {\n margin-right: auto;\n }\n\n &.center {\n margin-left: auto;\n margin-right: auto;\n }\n\n &.right {\n margin-left: auto;\n }\n}\n\nfigure {\n display: table;\n max-width: 100%;\n margin: $spacer-large 0;\n\n &.left {\n margin-right: auto;\n }\n\n &.center {\n margin-left: auto;\n margin-right: auto;\n }\n\n &.right {\n margin-left: auto;\n }\n\n figcaption {\n font-size: $font-size-smaller;\n padding: $spacer-smallest $spacer-small;\n margin-top: $spacer-smallest;\n opacity: 0.8;\n\n &.left {\n text-align: left;\n }\n\n &.center {\n text-align: center;\n }\n\n &.right {\n text-align: right;\n }\n\n @include themed {\n background: t($accent);\n color: t($background);\n }\n }\n}\n\nblockquote {\n border-left: $spacer-smallest solid;\n margin: $spacer-large 0;\n padding: $spacer-normal $spacer-normal $spacer-normal $spacer-large;\n font-style: italic;\n\n @include themed {\n color: t($text-brighter);\n background: t($blockquote-background);\n border-color: t($accent);\n }\n\n @media print {\n margin: $spacer-large 0;\n }\n\n p {\n position: relative;\n }\n\n p:first-of-type {\n margin-top: 0;\n }\n\n p:last-of-type {\n margin-bottom: 0;\n }\n\n p:first-of-type::before {\n content: \">\";\n display: block;\n position: absolute;\n left: $spacer-large * -1;\n padding: $spacer-smallest;\n }\n}\n\ntable {\n table-layout: auto;\n border-collapse: collapse;\n width: 100%;\n margin: $spacer-large 0;\n}\n\ntable,\nth,\ntd {\n border: $spacer-1 dashed;\n padding: $spacer-smallest;\n\n @include themed {\n border-color: t($accent);\n }\n\n @media print {\n padding: $spacer-smallest;\n }\n}\n\nth {\n font-weight: $font-bold;\n\n @include themed {\n color: t($text-brighter);\n background: t($background-brighter);\n }\n}\n\ntd {\n font-size: $font-size-smaller;\n}\n\nul,\nol {\n margin: 0 0 $spacer-normal $spacer-large;\n padding: 0;\n\n @media print {\n margin-bottom: 0;\n }\n\n li {\n position: relative;\n\n @media print {\n > p {\n margin: 0 0 $spacer-smallest 0;\n }\n\n break-inside: avoid-page;\n }\n }\n}\n\nol {\n list-style: none;\n counter-reset: li;\n\n li {\n counter-increment: li;\n }\n\n li::before {\n content: counter(li);\n position: absolute;\n right: calc(100% + 10px);\n display: inline-block;\n text-align: right;\n\n @include themed {\n color: $accent;\n }\n }\n\n ol {\n margin-left: $spacer-large;\n\n li {\n counter-increment: li;\n }\n\n li::before {\n content: counters(li, \".\") \" \";\n }\n }\n}\n\nli ol,\nli ul {\n margin: 0 0 0 $spacer-large;\n}\n\nhr {\n width: 100%;\n border: none;\n height: $spacer-1;\n\n @include themed {\n background: t($accent);\n }\n\n @media print {\n margin: 0;\n }\n}\n\n.container {\n display: flex;\n flex-direction: column;\n padding: $spacer-normal;\n max-width: $container-max-width;\n min-height: 100vh;\n\n &.full,\n &.center {\n border: none;\n margin: 0 auto;\n }\n\n &.full {\n max-width: 100%;\n }\n\n @media print {\n display: initial;\n padding: 0;\n }\n}\n\n.content {\n display: flex;\n flex-direction: column;\n\n @media print {\n display: initial;\n }\n}\n\n.hide {\n display: none;\n}\n\n.row {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n justify-content: space-between;\n\n &.start {\n gap: $spacer-small;\n justify-content: flex-start;\n }\n}\n\n.col {\n display: flex;\n flex-flow: column wrap;\n}\n\n.row,\n.col {\n &.lead {\n font-weight: $font-bold;\n font-size: $font-size-larger;\n }\n\n &.bold {\n font-weight: $font-bold;\n }\n\n &.sub {\n font-weight: $font-light;\n font-style: italic;\n }\n}\n\n.cv-title {\n display: block;\n border: none;\n margin: 0 0 $spacer-smallest 0;\n}\n\n.cv-contacts {\n display: block;\n text-align: end;\n margin: 0 0 $spacer-smallest 0;\n}\n\n.cv-description {\n font-style: italic;\n font-size: $font-size-smaller;\n margin: $spacer-smallest 0;\n}\n\n.cv-experience {\n margin: $spacer-small 0;\n border-bottom: none;\n\n @media print {\n break-after: avoid-page;\n break-inside: avoid-page;\n }\n}\n\n.cv-content {\n h2 {\n font-size: $font-size-larger;\n width: 100%;\n\n .hanchor {\n display: none;\n }\n }\n\n @media print {\n * {\n margin-top: $spacer-2;\n margin-bottom: 0;\n line-height: 1.2;\n }\n }\n}\n", + ".post {\n width: 100%;\n text-align: left;\n margin: $spacer-normal 0;\n\n @media print {\n margin: 0 0 $spacer-large 0;\n }\n\n &-entries {\n .item {\n padding-bottom: $spacer-small;\n margin-bottom: $spacer-large;\n\n p {\n margin: 0;\n }\n\n h2,\n h3 {\n border-style: none;\n margin: 0;\n padding: 0;\n }\n }\n }\n\n &-header {\n margin: $spacer-normal 0;\n\n @media print {\n margin: 0;\n }\n }\n\n &-title {\n $border-title: $spacer-smallest dotted;\n\n position: relative;\n border-bottom: $border-title;\n width: 100%;\n padding-bottom: $spacer-smallest;\n\n @include themed {\n border-color: t($accent);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n bottom: $spacer-2;\n display: block;\n width: 100%;\n border-bottom: $border-title;\n\n @include themed {\n border-color: t($accent);\n }\n }\n\n a {\n text-decoration: none;\n\n @media print {\n &::after {\n display: none;\n }\n }\n }\n }\n\n &-meta,\n &-tags {\n font-style: italic;\n font-size: $font-size-smaller;\n margin: $spacer-small 0;\n\n @include themed {\n color: t($text-accent);\n }\n\n a {\n @media print {\n &::after {\n display: none;\n }\n }\n }\n }\n\n &-description {\n font-size: $font-size-larger;\n font-weight: $font-light;\n\n @include themed {\n color: t($text-brighter);\n }\n }\n\n &-toc {\n margin: $spacer-normal 0;\n\n @media print {\n display: none;\n }\n\n ul,\n ol {\n margin-bottom: 0;\n }\n }\n\n &-cover {\n border: $spacer-large solid $accent;\n background: transparent;\n margin: $spacer-largest 0;\n padding: $spacer-large;\n\n @media ($phone) {\n padding: $spacer-small;\n border-width: $spacer-small;\n }\n }\n\n &-footer {\n margin: $spacer-largest 0;\n\n @media print {\n margin: $spacer-small 0 0 0;\n }\n }\n\n &-support {\n font-style: italic;\n margin: $spacer-normal 0;\n border-top: $spacer-1 solid;\n\n @include themed {\n border-color: t($accent);\n }\n\n @media print {\n margin: $spacer-large 0;\n }\n }\n}\n", + ".pagination {\n margin: $spacer-largest 0;\n\n @media print {\n display: none;\n }\n\n &-title {\n display: flex;\n text-align: center;\n position: relative;\n margin: $spacer-large 0;\n\n &-h {\n text-align: center;\n margin: 0 auto;\n padding: $spacer-smallest $spacer-normal;\n font-size: smaller;\n text-transform: uppercase;\n text-decoration: none;\n letter-spacing: 0.1em;\n z-index: 1;\n\n @include themed {\n background: t($background);\n color: transparentize(t($text), 0.4);\n }\n }\n\n hr {\n position: absolute;\n left: 0;\n right: 0;\n width: 100%;\n margin-top: $spacer-normal;\n z-index: 0;\n }\n }\n}\n", + ".site-footer {\n margin-top: $spacer-large2;\n border-top: $spacer-1 solid;\n\n @include themed {\n border-color: t($accent);\n color: t($text-duller);\n }\n\n @media print {\n display: none;\n }\n}\n\n.themeinfo,\n.buildinfo {\n font-size: $font-size-smaller;\n margin: $spacer-small 0;\n}\n\n.copyright {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n justify-content: space-between;\n margin: $spacer-normal 0;\n\n > p {\n margin: 0;\n }\n\n .navbar {\n &__list {\n > li {\n border: none;\n }\n }\n }\n}\n", + "/* Syntax highlighting styles */\n.chroma .ln {\n white-space: pre;\n user-select: none;\n padding: 0 0.4em;\n color: #7f7f7f;\n}\n\n.chroma .cl {\n padding: 0 0.4em;\n}\n\n.chroma .line {\n display: flex;\n}\n\n.chroma .ge {\n font-style: italic;\n}\n\n.chroma .gs {\n font-weight: $font-bold;\n}\n\n/* Syntax highlighting colors */\n.chroma .err {\n color: #960050;\n background-color: #1e0010;\n}\n\n.chroma .hl {\n background-color: #ffc;\n}\n\n.bg,\n.chroma {\n @include themed {\n color: t($syn-fg);\n background-color: t($syn-bg);\n }\n}\n\n.chroma .k,\n.chroma .kc,\n.chroma .kd,\n.chroma .kp,\n.chroma .kr,\n.chroma .kt,\n.chroma .no {\n @include themed {\n color: t($syn-kw);\n }\n}\n\n.chroma .kn,\n.chroma .nt,\n.chroma .o,\n.chroma .ow,\n.chroma .gd {\n color: $syn-op;\n}\n\n.chroma .n {\n @include themed {\n color: t($syn-n);\n }\n}\n\n.chroma .na,\n.chroma .nc,\n.chroma .nd,\n.chroma .ne,\n.chroma .nf,\n.chroma .nx,\n.chroma .gi {\n @include themed {\n color: t($syn-na);\n }\n}\n\n.chroma .ld,\n.chroma .s,\n.chroma .sa,\n.chroma .sb,\n.chroma .sc,\n.chroma .dl,\n.chroma .sd,\n.chroma .s2,\n.chroma .sh,\n.chroma .si,\n.chroma .sx,\n.chroma .sr,\n.chroma .s1,\n.chroma .ss {\n @include themed {\n color: t($syn-ld);\n }\n}\n\n.chroma .l,\n.chroma .se,\n.chroma .m,\n.chroma .mb,\n.chroma .mf,\n.chroma .mh,\n.chroma .mi,\n.chroma .il,\n.chroma .mo {\n color: $syn-l;\n}\n\n.chroma .c,\n.chroma .ch,\n.chroma .cm,\n.chroma .c1,\n.chroma .cs,\n.chroma .cp,\n.chroma .cpf,\n.chroma .gu {\n color: $syn-c;\n}\n\n/* Commented to fix linter errors, uncomment when needed.\n.chroma .x,\n.chroma .nb,\n.chroma .bp,\n.chroma .ni,\n.chroma .fm,\n.chroma .nl,\n.chroma .nn,\n.chroma .py,\n.chroma .nv,\n.chroma .vc,\n.chroma .vg,\n.chroma .vi,\n.chroma .vm,\n.chroma .p,\n.chroma .g,\n.chroma .gr,\n.chroma .gh,\n.chroma .go,\n.chroma .gp,\n.chroma .gt,\n.chroma .gl,\n.chroma .w {\n}\n*/\n", + "/* syntax highlighted code layout */\ndiv.highlight-wrapper {\n margin: $spacer-large 0;\n border-radius: $spacer-2;\n border: $spacer-1 solid;\n\n @include themed {\n border-color: t($background-brighter);\n }\n}\n\ndiv.highlight-wrapper div.highlight-toolbar {\n display: flex;\n border-bottom: $spacer-1 solid;\n\n @include themed {\n color: t($text-brighter);\n background: t($background-grey);\n border-color: t($background-brighter);\n }\n\n .item {\n padding: 0 $spacer-small;\n\n .label {\n @include themed {\n color: t($text-duller);\n }\n\n @media ($phone) {\n display: none;\n }\n }\n\n &.right {\n margin-left: auto;\n }\n }\n}\n\ndiv.highlight .chroma {\n margin: 0;\n padding: $spacer-smallest 0;\n overflow: auto;\n}\n\ndiv.highlight .chroma code {\n color: inherit;\n background: inherit;\n padding: 0;\n margin: 0;\n}\n\ndiv.highlight .chroma .line span.cl.wrap {\n white-space: pre-wrap;\n}\n\ndiv.highlight .chroma .cl {\n padding-right: $spacer-small;\n}\n", + ":root {\n --r-code-font: #{$font-family-mono};\n --r-heading-font: #{$font-family-title};\n --r-main-font-size: #{$font-size};\n --r-main-font: #{$font-family-normal};\n\n /* FIXME doesn't work in light theme */\n @include themed {\n --r-background-color: t($background);\n --r-heading-color: t($text);\n --r-main-color: t($text);\n --r-link-color: t($text-links);\n --r-link-color-dark: t($text-links);\n --r-link-color-hover: t($text);\n }\n}\n\n/* HACK use this until reveal.js theme colors are fixed */\n.reveal a {\n @include themed {\n color: t($text-links);\n }\n}\n\n.reveal {\n width: 100%;\n height: $spacer-large * 25;\n}\n\n.reveal .slides {\n text-align: left;\n}\n\n.header-left,\n.footer-left {\n position: absolute;\n left: 0%;\n margin: $spacer-normal $spacer-normal;\n}\n\n.header-left {\n top: 0%;\n}\n\n.footer-left {\n bottom: 0%;\n}\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/public/tags/index.html b/public/tags/index.html new file mode 100644 index 0000000..4f68330 --- /dev/null +++ b/public/tags/index.html @@ -0,0 +1,86 @@ + + + +Tags :: CVEX + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+

+ Tags +

+ + +
+
    +
+
+
+ +
+
+ + diff --git a/public/tags/index.xml b/public/tags/index.xml new file mode 100644 index 0000000..fdd8f56 --- /dev/null +++ b/public/tags/index.xml @@ -0,0 +1,10 @@ + + + + Tags on CVEX + http://localhost:1313/tags/ + Recent content in Tags on CVEX + Hugo -- gohugo.io + en-us + + diff --git a/resources/_gen/assets/styles/app.scss_1c38d186feae41eb01b71d0f07e68cfd.content b/resources/_gen/assets/styles/app.scss_1c38d186feae41eb01b71d0f07e68cfd.content new file mode 100644 index 0000000..021da68 --- /dev/null +++ b/resources/_gen/assets/styles/app.scss_1c38d186feae41eb01b71d0f07e68cfd.content @@ -0,0 +1,3 @@ +:root{--phone: (max-width: 684px);--tablet: (max-width: 900px)}button,.button{align-items:center;border-radius:8px;border:1px solid;cursor:pointer;display:flex;font-weight:500;padding:8px 16px;text-align:center}button,.button{background:#dbdbf0;border-color:blue}button:hover,.button:hover{background:rgba(219,219,240,0.4);text-decoration:none}@media print{button,.button{background:#dbdbf0;border-color:blue}button:hover,.button:hover{background:rgba(219,219,240,0.4);text-decoration:none}}.theme--dark button,.theme--dark .button{background:#33334d;border-color:blue}.theme--dark button:hover,.theme--dark .button:hover{background:rgba(51,51,77,0.4);text-decoration:none}@media print{button,.button{display:none}}button:active,.button:active{transform:scale(0.95);transition:transform 0.2s ease}button.outline,button.transparent,.button.outline,.button.transparent{font-weight:400;background:none}button.outline,button.transparent,.button.outline,.button.transparent{color:#2525a7}button.outline:hover,button.transparent:hover,.button.outline:hover,.button.transparent:hover{background:rgba(219,219,240,0.9)}@media print{button.outline,button.transparent,.button.outline,.button.transparent{color:#2525a7}button.outline:hover,button.transparent:hover,.button.outline:hover,.button.transparent:hover{background:rgba(219,219,240,0.9)}}.theme--dark button.outline,.theme--dark button.transparent,.theme--dark .button.outline,.theme--dark .button.transparent{color:#ebebff}.theme--dark button.outline:hover,.theme--dark button.transparent:hover,.theme--dark .button.outline:hover,.theme--dark .button.transparent:hover{background:rgba(51,51,77,0.9)}button.transparent,.button.transparent{border:none}button.outline.brighter,.button.outline.brighter{border-color:#dcdcf0}@media print{button.outline.brighter,.button.outline.brighter{border-color:#dcdcf0}}.theme--dark button.outline.brighter,.theme--dark .button.outline.brighter{border-color:#393956}button.right,.button.right{justify-content:flex-end}button .label,.button .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}button .icon,.button .icon{margin-right:4px}button .icon.right,.button .icon.right{margin:0 0 0 4px}@media print{a.button{display:initial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.buttons{display:flex;flex-flow:row wrap;align-items:center;column-gap:8px}@media (max-width: 684px){.buttons{flex-direction:column;row-gap:8px}}.buttons.fill button,.buttons.fill .button{flex:1 0 0}@media (max-width: 684px){.buttons.fill button,.buttons.fill .button{width:100%;justify-content:center}}.gitinfo,.breadcrumbs{font-size:.875rem;font-style:italic}.breadcrumbs{width:fit-content;border-bottom:1px solid}.breadcrumbs{border-color:blue}@media print{.breadcrumbs{border-color:blue}}.theme--dark .breadcrumbs{border-color:blue}.gitinfo{margin:16px 0;border-top:1px solid}.gitinfo{color:#37373c;border-color:blue}@media print{.gitinfo{color:#37373c;border-color:blue}}.theme--dark .gitinfo{color:#b0b0bf;border-color:blue}@media print{.gitinfo{margin:0}.gitinfo a::after{display:none}.gitinfo p{margin:8px 0 0 0;font-size:.875rem}}.theme-toggle{cursor:pointer;padding:0}.theme-toggler{fill:currentcolor}.navbar{display:flex;flex-flow:row wrap;align-items:flex-start;justify-content:space-between}.navbar__first{font-weight:500;display:block}.navbar__separator{flex-grow:1;border-top:2px dotted}.navbar__separator{border-color:blue}@media print{.navbar__separator{border-color:blue}}.theme--dark .navbar__separator{border-color:blue}.navbar__last{display:block}.navbar__list{list-style:none;margin:0;padding:0;display:flex}.navbar__list>li{flex:0 0 auto;padding-left:8px;display:flex;justify-content:center}.navbar__list.borders>li{padding:4px 8px;border:2px dotted;margin-right:-2px}.navbar__list.borders>li{border-color:blue}@media print{.navbar__list.borders>li{border-color:blue}}.theme--dark .navbar__list.borders>li{border-color:blue}.site-header .navbar{margin-bottom:32px;font-size:1.125rem}@media print{.site-header{display:none}}.menu{display:flex;flex-direction:column;position:relative;list-style:none;padding:0;margin:0}.menu-trigger{margin-right:0;user-select:none;cursor:pointer}.menu-trigger{color:blue}@media print{.menu-trigger{color:blue}}.theme--dark .menu-trigger{color:blue}.menu-dropdown{display:none;flex-direction:column;position:absolute;margin:0;padding:0;top:8px;left:0;list-style:none;z-index:99}.menu-dropdown{background:#ededf7;box-shadow:0 8px rgba(237,237,247,0.8),-8px 8px rgba(237,237,247,0.8),8px 8px rgba(237,237,247,0.8)}@media print{.menu-dropdown{background:#ededf7;box-shadow:0 8px rgba(237,237,247,0.8), -8px 8px rgba(237,237,247,0.8), 8px 8px rgba(237,237,247,0.8)}}.theme--dark .menu-dropdown{background:#14141f;box-shadow:0 8px rgba(20,20,31,0.8),-8px 8px rgba(20,20,31,0.8),8px 8px rgba(20,20,31,0.8)}.open .menu-dropdown{display:flex}.menu-dropdown>li{flex:0 0 auto;padding:4px 8px;border:2px dotted}.menu-dropdown>li{border-color:blue}@media print{.menu-dropdown>li{border-color:blue}}.theme--dark .menu-dropdown>li{border-color:blue}.menu-dropdown>li a{display:flex;text-decoration:none}.menu-dropdown>li a:hover{text-decoration:underline}@media (max-width: 684px){.menu--desktop{display:none}}.menu--mobile .menu-trigger{font-weight:700;padding:4px 8px;height:100%;margin-bottom:0 !important;position:relative;cursor:pointer;border:2px dotted;display:none}.menu--mobile .menu-trigger{color:#262659;background:#ededf7;border-color:blue}@media print{.menu--mobile .menu-trigger{color:#262659;background:#ededf7;border-color:blue}}.theme--dark .menu--mobile .menu-trigger{color:#ccf;background:#14141f;border-color:blue}@media (max-width: 684px){.menu--mobile .menu-trigger{display:block}}@media (max-width: 684px){.menu--mobile .menu-dropdown{left:auto;right:0}}.menu--mobile li{flex:0 0 auto;margin-bottom:-2px}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}body{margin:0;padding:0;font-family:"Fira Sans",arial,helvetica,sans-serif;font-weight:400;font-size:1rem;line-height:1.54;letter-spacing:-0.02em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-feature-settings:"liga", "tnum", "zero", "ss01", "locl";font-variant-ligatures:contextual;-webkit-overflow-scrolling:touch;text-size-adjust:100%}@media print{@page{size:a4 portrait;margin:0.5in}}.theme-container{background:#ededf7;color:#262659}@media print{.theme-container{background:#ededf7;color:#262659}}.theme--dark .theme-container{background:#14141f;color:#ccf}@media print{.theme-container{background:white !important;color:black !important}}.site-main{margin:0;padding:0}.hanchor{float:right;margin-right:-24px}.hanchor::after{content:"#";visibility:hidden}.hanchor{color:#4d4dff}@media print{.hanchor{color:#4d4dff}}.theme--dark .hanchor{color:#99f}@media print{.hanchor{display:none}}h1,h2,h3{border-color:blue}@media print{h1,h2,h3{border-color:blue}}.theme--dark h1,.theme--dark h2,.theme--dark h3{border-color:blue}h1{font-size:2rem;border-bottom:2px dotted}h2{font-size:1.6rem;border-bottom:1px solid}h3{font-size:1.25rem;border-bottom:1px dashed}h1,h2,h3,h4,h5,h6{font-family:"Roboto Slab","Times New Roman",garamond,serif;font-weight:500;margin:32px 0 16px 0;width:fit-content}@media print{h1,h2,h3,h4,h5,h6{break-after:avoid-page;margin:8px 0}}h1>a.hanchor,h2>a.hanchor,h3>a.hanchor,h4>a.hanchor,h5>a.hanchor,h6>a.hanchor{text-decoration:none}h1>a.hanchor:focus::after,h2>a.hanchor:focus::after,h3>a.hanchor:focus::after,h4>a.hanchor:focus::after,h5>a.hanchor:focus::after,h6>a.hanchor:focus::after{visibility:visible}h1:hover>a.hanchor::after,h2:hover>a.hanchor::after,h3:hover>a.hanchor::after,h4:hover>a.hanchor::after,h5:hover>a.hanchor::after,h6:hover>a.hanchor::after{visibility:visible}@media print{h1{margin-top:0}}a{text-decoration:none}a:hover{text-decoration:underline}a{color:#063}@media print{a{color:#063}}.theme--dark a{color:#0c6}@media print{a::after{margin-left:4px;content:"(" attr(href) ")";text-decoration:underline;font-style:italic}a::after{color:#262659}}@media print{a::after{color:#262659}}@media print{.theme--dark a::after{color:#ccf}}p{margin:16px 0}code{font-family:"Ubuntu Mono",monaco,consolas,monospace;border-radius:2px;padding:2px 4px}code{color:#8c3800;background:#f8f8fc}@media print{code{color:#8c3800;background:#f8f8fc}}.theme--dark code{color:#ffab73;background:#393956}img{max-width:100%}img.left{margin-right:auto}img.center{margin-left:auto;margin-right:auto}img.right{margin-left:auto}figure{display:table;max-width:100%;margin:24px 0}figure.left{margin-right:auto}figure.center{margin-left:auto;margin-right:auto}figure.right{margin-left:auto}figure figcaption{font-size:.875rem;padding:4px 8px;margin-top:4px;opacity:0.8}figure figcaption.left{text-align:left}figure figcaption.center{text-align:center}figure figcaption.right{text-align:right}figure figcaption{background:blue;color:#ededf7}@media print{figure figcaption{background:blue;color:#ededf7}}.theme--dark figure figcaption{background:blue;color:#14141f}blockquote{border-left:4px solid;margin:24px 0;padding:16px 16px 16px 24px;font-style:italic}blockquote{color:#2525a7;background:#e6e6f4;border-color:blue}@media print{blockquote{color:#2525a7;background:#e6e6f4;border-color:blue}}.theme--dark blockquote{color:#ebebff;background:#1f1f2e;border-color:blue}@media print{blockquote{margin:24px 0}}blockquote p{position:relative}blockquote p:first-of-type{margin-top:0}blockquote p:last-of-type{margin-bottom:0}blockquote p:first-of-type::before{content:">";display:block;position:absolute;left:-24px;padding:4px}table{table-layout:auto;border-collapse:collapse;width:100%;margin:24px 0}table,th,td{border:1px dashed;padding:4px}table,th,td{border-color:blue}@media print{table,th,td{border-color:blue}}.theme--dark table,.theme--dark th,.theme--dark td{border-color:blue}@media print{table,th,td{padding:4px}}th{font-weight:500}th{color:#2525a7;background:#dcdcf0}@media print{th{color:#2525a7;background:#dcdcf0}}.theme--dark th{color:#ebebff;background:#393956}td{font-size:.875rem}ul,ol{margin:0 0 16px 24px;padding:0}@media print{ul,ol{margin-bottom:0}}ul li,ol li{position:relative}@media print{ul li,ol li{break-inside:avoid-page}ul li>p,ol li>p{margin:0 0 4px 0}}ol{list-style:none;counter-reset:li}ol li{counter-increment:li}ol li::before{content:counter(li);position:absolute;right:calc(100% + 10px);display:inline-block;text-align:right}ol li::before{color:"accent"}@media print{ol li::before{color:"accent"}}.theme--dark ol li::before{color:"accent"}ol ol{margin-left:24px}ol ol li{counter-increment:li}ol ol li::before{content:counters(li, ".") " "}li ol,li ul{margin:0 0 0 24px}hr{width:100%;border:none;height:1px}hr{background:blue}@media print{hr{background:blue}}.theme--dark hr{background:blue}@media print{hr{margin:0}}.container{display:flex;flex-direction:column;padding:16px;max-width:864px;min-height:100vh}.container.full,.container.center{border:none;margin:0 auto}.container.full{max-width:100%}@media print{.container{display:initial;padding:0}}.content{display:flex;flex-direction:column}@media print{.content{display:initial}}.hide{display:none}.row{display:flex;flex-flow:row wrap;align-items:center;justify-content:space-between}.row.start{gap:8px;justify-content:flex-start}.col{display:flex;flex-flow:column wrap}.row.lead,.col.lead{font-weight:500;font-size:1.125rem}.row.bold,.col.bold{font-weight:500}.row.sub,.col.sub{font-weight:300;font-style:italic}.cv-title{display:block;border:none;margin:0 0 4px 0}.cv-contacts{display:block;text-align:end;margin:0 0 4px 0}.cv-description{font-style:italic;font-size:.875rem;margin:4px 0}.cv-experience{margin:8px 0;border-bottom:none}@media print{.cv-experience{break-after:avoid-page;break-inside:avoid-page}}.cv-content h2{font-size:1.125rem;width:100%}.cv-content h2 .hanchor{display:none}@media print{.cv-content *{margin-top:2px;margin-bottom:0;line-height:1.2}}.post{width:100%;text-align:left;margin:16px 0}@media print{.post{margin:0 0 24px 0}}.post-entries .item{padding-bottom:8px;margin-bottom:24px}.post-entries .item p{margin:0}.post-entries .item h2,.post-entries .item h3{border-style:none;margin:0;padding:0}.post-header{margin:16px 0}@media print{.post-header{margin:0}}.post-title{position:relative;border-bottom:4px dotted;width:100%;padding-bottom:4px}.post-title{border-color:blue}@media print{.post-title{border-color:blue}}.theme--dark .post-title{border-color:blue}.post-title::after{content:"";position:absolute;bottom:2px;display:block;width:100%;border-bottom:4px dotted}.post-title::after{border-color:blue}@media print{.post-title::after{border-color:blue}}.theme--dark .post-title::after{border-color:blue}.post-title a{text-decoration:none}@media print{.post-title a::after{display:none}}.post-meta,.post-tags{font-style:italic;font-size:.875rem;margin:8px 0}.post-meta,.post-tags{color:#4d4dff}@media print{.post-meta,.post-tags{color:#4d4dff}}.theme--dark .post-meta,.theme--dark .post-tags{color:#99f}@media print{.post-meta a::after,.post-tags a::after{display:none}}.post-description{font-size:1.125rem;font-weight:300}.post-description{color:#2525a7}@media print{.post-description{color:#2525a7}}.theme--dark .post-description{color:#ebebff}.post-toc{margin:16px 0}@media print{.post-toc{display:none}}.post-toc ul,.post-toc ol{margin-bottom:0}.post-cover{border:24px solid "accent";background:transparent;margin:48px 0;padding:24px}@media (max-width: 684px){.post-cover{padding:8px;border-width:8px}}.post-footer{margin:48px 0}@media print{.post-footer{margin:8px 0 0 0}}.post-support{font-style:italic;margin:16px 0;border-top:1px solid}.post-support{border-color:blue}@media print{.post-support{border-color:blue}}.theme--dark .post-support{border-color:blue}@media print{.post-support{margin:24px 0}}.pagination{margin:48px 0}@media print{.pagination{display:none}}.pagination-title{display:flex;text-align:center;position:relative;margin:24px 0}.pagination-title-h{text-align:center;margin:0 auto;padding:4px 16px;font-size:smaller;text-transform:uppercase;text-decoration:none;letter-spacing:0.1em;z-index:1}.pagination-title-h{background:#ededf7;color:rgba(38,38,89,0.6)}@media print{.pagination-title-h{background:#ededf7;color:rgba(38,38,89,0.6)}}.theme--dark .pagination-title-h{background:#14141f;color:rgba(204,204,255,0.6)}.pagination-title hr{position:absolute;left:0;right:0;width:100%;margin-top:16px;z-index:0}.site-footer{margin-top:32px;border-top:1px solid}.site-footer{border-color:blue;color:#37373c}@media print{.site-footer{border-color:blue;color:#37373c}}.theme--dark .site-footer{border-color:blue;color:#b0b0bf}@media print{.site-footer{display:none}}.themeinfo,.buildinfo{font-size:.875rem;margin:8px 0}.copyright{display:flex;flex-flow:row wrap;align-items:center;justify-content:space-between;margin:16px 0}.copyright>p{margin:0}.copyright .navbar__list>li{border:none}.chroma .ln{white-space:pre;user-select:none;padding:0 0.4em;color:#7f7f7f}.chroma .cl{padding:0 0.4em}.chroma .line{display:flex}.chroma .ge{font-style:italic}.chroma .gs{font-weight:500}.chroma .err{color:#960050;background-color:#1e0010}.chroma .hl{background-color:#ffc}.bg,.chroma{color:#272822;background-color:#fafafa}@media print{.bg,.chroma{color:#272822;background-color:#fafafa}}.theme--dark .bg,.theme--dark .chroma{color:#f8f8f2;background-color:#272822}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .no{color:#00a8c8}@media print{.chroma .k,.chroma .kc,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .no{color:#00a8c8}}.theme--dark .chroma .k,.theme--dark .chroma .kc,.theme--dark .chroma .kd,.theme--dark .chroma .kp,.theme--dark .chroma .kr,.theme--dark .chroma .kt,.theme--dark .chroma .no{color:#66d9ef}.chroma .kn,.chroma .nt,.chroma .o,.chroma .ow,.chroma .gd{color:#f92672}.chroma .n{color:#111}@media print{.chroma .n{color:#111}}.theme--dark .chroma .n{color:#f8f8f2}.chroma .na,.chroma .nc,.chroma .nd,.chroma .ne,.chroma .nf,.chroma .nx,.chroma .gi{color:#75af00}@media print{.chroma .na,.chroma .nc,.chroma .nd,.chroma .ne,.chroma .nf,.chroma .nx,.chroma .gi{color:#75af00}}.theme--dark .chroma .na,.theme--dark .chroma .nc,.theme--dark .chroma .nd,.theme--dark .chroma .ne,.theme--dark .chroma .nf,.theme--dark .chroma .nx,.theme--dark .chroma .gi{color:#a6e22e}.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#d88200}@media print{.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#d88200}}.theme--dark .chroma .ld,.theme--dark .chroma .s,.theme--dark .chroma .sa,.theme--dark .chroma .sb,.theme--dark .chroma .sc,.theme--dark .chroma .dl,.theme--dark .chroma .sd,.theme--dark .chroma .s2,.theme--dark .chroma .sh,.theme--dark .chroma .si,.theme--dark .chroma .sx,.theme--dark .chroma .sr,.theme--dark .chroma .s1,.theme--dark .chroma .ss{color:#e6db74}.chroma .l,.chroma .se,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#ae81ff}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf,.chroma .gu{color:#75715e}div.highlight-wrapper{margin:24px 0;border-radius:2px;border:1px solid}div.highlight-wrapper{border-color:#dcdcf0}@media print{div.highlight-wrapper{border-color:#dcdcf0}}.theme--dark div.highlight-wrapper{border-color:#393956}div.highlight-wrapper div.highlight-toolbar{display:flex;border-bottom:1px solid}div.highlight-wrapper div.highlight-toolbar{color:#2525a7;background:#f0f0f5;border-color:#dcdcf0}@media print{div.highlight-wrapper div.highlight-toolbar{color:#2525a7;background:#f0f0f5;border-color:#dcdcf0}}.theme--dark div.highlight-wrapper div.highlight-toolbar{color:#ebebff;background:#22222a;border-color:#393956}div.highlight-wrapper div.highlight-toolbar .item{padding:0 8px}div.highlight-wrapper div.highlight-toolbar .item .label{color:#37373c}@media print{div.highlight-wrapper div.highlight-toolbar .item .label{color:#37373c}}.theme--dark div.highlight-wrapper div.highlight-toolbar .item .label{color:#b0b0bf}@media (max-width: 684px){div.highlight-wrapper div.highlight-toolbar .item .label{display:none}}div.highlight-wrapper div.highlight-toolbar .item.right{margin-left:auto}div.highlight .chroma{margin:0;padding:4px 0;overflow:auto}div.highlight .chroma code{color:inherit;background:inherit;padding:0;margin:0}div.highlight .chroma .line span.cl.wrap{white-space:pre-wrap}div.highlight .chroma .cl{padding-right:8px}:root{--r-code-font: Ubuntu Mono,monaco,consolas,monospace;--r-heading-font: Roboto Slab,Times New Roman,garamond,serif;--r-main-font-size: 1rem;--r-main-font: Fira Sans,arial,helvetica,sans-serif}:root{--r-background-color: t($background);--r-heading-color: t($text);--r-main-color: t($text);--r-link-color: t($text-links);--r-link-color-dark: t($text-links);--r-link-color-hover: t($text)}@media print{:root{--r-background-color: t($background);--r-heading-color: t($text);--r-main-color: t($text);--r-link-color: t($text-links);--r-link-color-dark: t($text-links);--r-link-color-hover: t($text)}}.theme--dark :root{--r-background-color: t($background);--r-heading-color: t($text);--r-main-color: t($text);--r-link-color: t($text-links);--r-link-color-dark: t($text-links);--r-link-color-hover: t($text)}.reveal a{color:#063}@media print{.reveal a{color:#063}}.theme--dark .reveal a{color:#0c6}.reveal{width:100%;height:600px}.reveal .slides{text-align:left}.header-left,.footer-left{position:absolute;left:0%;margin:16px 16px}.header-left{top:0%}.footer-left{bottom:0%} + +/*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/styles/app.scss_1c38d186feae41eb01b71d0f07e68cfd.json b/resources/_gen/assets/styles/app.scss_1c38d186feae41eb01b71d0f07e68cfd.json new file mode 100644 index 0000000..e7b8e7c --- /dev/null +++ b/resources/_gen/assets/styles/app.scss_1c38d186feae41eb01b71d0f07e68cfd.json @@ -0,0 +1 @@ +{"Target":"styles.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/themes/hugo-xterm/.eslintrc.yml b/themes/hugo-xterm/.eslintrc.yml new file mode 100644 index 0000000..d8125e5 --- /dev/null +++ b/themes/hugo-xterm/.eslintrc.yml @@ -0,0 +1,52 @@ +env: + browser: true + es2021: true + +extends: + - standard + - prettier + +parserOptions: + ecmaVersion: latest + +rules: + # best practices + arrow-parens: + - 2 + - as-needed + semi: + - 2 + - always + class-methods-use-this: 0 + comma-dangle: + - 2 + - always-multiline + no-console: + - 2 + no-unused-expressions: 0 + no-param-reassign: + - 2 + - props: false + no-useless-escape: 0 + func-names: 0 + quotes: + - 2 + - double + - allowTemplateLiterals: true + no-underscore-dangle: 0 + object-curly-newline: 0 + function-paren-newline: 0 + operator-linebreak: + - 2 + - after + no-unused-vars: + - 2 + - argsIgnorePattern: "^_" + +globals: + document: true + requestAnimationFrame: true + window: true + self: true + fetch: true + Headers: true diff --git a/themes/hugo-xterm/.github/FUNDING.yml b/themes/hugo-xterm/.github/FUNDING.yml new file mode 100644 index 0000000..b65877d --- /dev/null +++ b/themes/hugo-xterm/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: https://buymeacoffee.com/manid2 diff --git a/themes/hugo-xterm/.github/workflows/hugo.yaml b/themes/hugo-xterm/.github/workflows/hugo.yaml new file mode 100644 index 0000000..5281687 --- /dev/null +++ b/themes/hugo-xterm/.github/workflows/hugo.yaml @@ -0,0 +1,102 @@ +name: GitHub Pages + +on: + push: + branches: + - main + - dev + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + +jobs: + test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: false + fetch-depth: 50 + + - name: Install test dependencies + run: | + sudo apt-get update && \ + sudo apt-get -y install npm tzdata && \ + npm ci + + - name: Run tests + run: | + npm run test + + build: + needs: test + runs-on: ubuntu-22.04 + env: + HUGO_VERSION: 0.125.5 + + steps: + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: false + fetch-depth: 50 + + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + source ./exampleSite/scripts/hugo-env && \ + hugo --source exampleSite + + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: ./exampleSite/public + + - uses: actions/cache@v2 + with: + path: /tmp/hugo_cache + key: ${{ runner.os }}-hugomod-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-hugomod- + + deploy: + needs: build + runs-on: ubuntu-latest + if: github.ref_name == 'main' + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/themes/hugo-xterm/.gitignore b/themes/hugo-xterm/.gitignore new file mode 100644 index 0000000..d3efe77 --- /dev/null +++ b/themes/hugo-xterm/.gitignore @@ -0,0 +1,13 @@ +/public +/resources +/exampleSite/public +/exampleSite/resources +/node_modules +.vscode +.hugo_build.lock +*.swp + +# ctags +tags +*.tags +TAGS diff --git a/themes/hugo-xterm/.linkinator.config.json b/themes/hugo-xterm/.linkinator.config.json new file mode 100644 index 0000000..54c7783 --- /dev/null +++ b/themes/hugo-xterm/.linkinator.config.json @@ -0,0 +1,6 @@ +{ + "silent": true, + "timeout": 10000, + "retryErrors": false, + "skip": ["^(?!http://localhost)"] +} diff --git a/themes/hugo-xterm/.markdownlint.json b/themes/hugo-xterm/.markdownlint.json new file mode 100644 index 0000000..88f1705 --- /dev/null +++ b/themes/hugo-xterm/.markdownlint.json @@ -0,0 +1,57 @@ +{ + "default": true, + "heading-style": { + "style": "setext_with_atx" + }, + "hr-style": { + "style": "---" + }, + "code-block-style": { + "style": "fenced" + }, + "code-fence-style": { + "style": "backtick" + }, + "no-hard-tabs": { + "code_blocks": false + }, + "fenced-code-language": { + "allowed_languages": [ + "bash", + "c", + "cpp", + "css", + "html", + "js", + "json", + "lua", + "md", + "py", + "scss", + "sh", + "text", + "toml", + "vim", + "xml", + "yml", + "zsh" + ], + "language_only": false + }, + "emphasis-style": { + "style": "underscore" + }, + "strong-style": { + "style": "underscore" + }, + "ul-style": { + "style": "sublist" + }, + "line-length": { + "line_length": 78, + "heading_line_length": 72, + "code_block_line_length": 78, + "tables": false, + "strict": true + } +} diff --git a/themes/hugo-xterm/.prettier.json b/themes/hugo-xterm/.prettier.json new file mode 100644 index 0000000..a961157 --- /dev/null +++ b/themes/hugo-xterm/.prettier.json @@ -0,0 +1,14 @@ +{ + "printWidth": 78, + "trailingComma": "all", + "arrowParens": "avoid", + "overrides": [ + { + "files": ["*.html"], + "options": { + "printWidth": 180, + "parser": "go-template" + } + } + ] +} diff --git a/themes/hugo-xterm/.prettierignore b/themes/hugo-xterm/.prettierignore new file mode 100644 index 0000000..4e298a3 --- /dev/null +++ b/themes/hugo-xterm/.prettierignore @@ -0,0 +1,2 @@ +# ignore this file as there is an issue with prettier go-template formatter +render-heading.html diff --git a/themes/hugo-xterm/.stylelintrc.json b/themes/hugo-xterm/.stylelintrc.json new file mode 100644 index 0000000..df28d90 --- /dev/null +++ b/themes/hugo-xterm/.stylelintrc.json @@ -0,0 +1,19 @@ +{ + "extends": "stylelint-config-standard-scss", + "quiet": true, + "rules": { + "declaration-empty-line-before": [ + "always", + { + "ignore": [ + "after-comment", + "after-declaration", + "first-nested", + "inside-single-line-block" + ] + } + ], + "scss/no-global-function-names": null, + "scss/dollar-variable-pattern": "^([a-z][a-z0-9]*)(-[a-z0-9]+)*(--[a-z0-9]+)?" + } +} diff --git a/themes/hugo-xterm/LICENSE b/themes/hugo-xterm/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/themes/hugo-xterm/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/themes/hugo-xterm/README.md b/themes/hugo-xterm/README.md new file mode 100644 index 0000000..dedfae3 --- /dev/null +++ b/themes/hugo-xterm/README.md @@ -0,0 +1,263 @@ +hugo-xterm +========== + +Hugo theme designed for reading and printing text with dark and light modes. + +It uses Hugo extended version with __>= 0.110__ to build the theme to take +advantage of builtin SCSS compiler and reduce dependency on external +libraries. + +This theme is fully free and open source so it can be used and modified as you +like but redistributing requires attribution to [license][hx_lic_link] and +credits to author [Mani Kumar][md2_gh_link] with link to this repository +[hugo-xterm][hx_gh_link]. + +[![Hugo][hugo_ver_img]][hugo_v0110] +[![LICENSE][hx_lic_img]][hx_lic_link] +[![Build][hx_ci_build_img]][hx_ci_build_link] + +Demo +---- + +Demo example site [manid2.github.io/hugo-xterm][7]. + +[![Hugo Xterm demo site QR code][hx_demo_qr_img]][7] + +Screenshots +----------- + +### Dark mode + +![Hugo Xterm Dark][hx_ss_dark] + +### Light mode + +![Hugo Xterm Light][hx_ss_light] + +### CV template + +![Hugo Xterm CV][hx_ss_cv] + +### Slides + +![Hugo Xterm Slides][hx_ss_slides] + +Features +-------- + +### Distinguishing features + +* Designed for __reading__ and __printing__ text. +* __Print:__ any page in light theme mode for readability. +* __[CV][10]:__ or resume template to reduce vertical space by using 2 columns + and shortcodes to list the experiences and skills. +* __Slides:__ support using [reveal.js][4]. +* __Lists__: separate view and pagination for simple list items and post + entries. +* __GitInfo:__ show the latest git commit short hash and subject message for + each page (requires Hugo GitInfo config enabled). +* __Fonts:__ + - __"Roboto Slab (serif)"__ for title (heading) text. + - __"Fira Sans (sans-serif)"__ for normal text. + - __"Ubuntu Mono (monospace)"__ for code. +* __Colors:__ in the theme are derived using a single primary color (blue) + from the [HSL colors][8]. +* Website banner is supported. + +### Adopted features + +* Minimal configuration. +* Switchable dark and light themes with automatic selection based on system + theme. +* SEO friendly OpenGraph and twitter cards support +* Customizable using configurations for: "full width", "centered". +* Taxonomies and posts RSS. +* Responsive tested on desktop and on smart phones. +* Responsive menus for desktop and mobile screens. +* Accessibility tested using [WAVE Web Accessibility Evaluation Tool][5]. +* Code blocks are highlighted using Hugo built-in blazing fast [Chroma][9]. +* Copy code, see code language and file name (optional). +* Tightly coupled with Hugo extended latest version (v1.110.0) to compile and + generate asset bundles with pipelines, fingerprinting and minification. + +### Other features + +These are supported due to [panr/terminal][1] theme base code but not +tested as I don't use them myself: + +* Post cover image. +* Images in post with caption. +* Comments. + +Installation +------------ + +Follow the steps in any one of these methods to install or update a Hugo +theme. + +### Method - Using hugo mod + +Add hugo-xterm theme as Hugo module to hide the theme content and let you +focus only on your site content. Let Hugo handle the theme updates +automatically and control the theme as a Hugo module instead of git. + +```bash +cd + +# initialize your site as a hugo module. +hugo mod init + +# import hugo-xterm theme as hugo module in configuration +$ cat config/_default/config.toml +[module] + [[module.imports]] + path = "github.com/manid2/hugo-xterm" + +# update theme +hugo mod get -u +``` + +For all below methods your site needs to point to hugo-xterm theme +subdirectory in configuration as below: + +```bash +$ cat config/_default/config.toml +theme = "hugo-xterm" +``` + +### Method - Download and copy theme + +Download the archived (i.e. .zip or tar.gz) theme from github repository +releases page. Extract and copy the contents into `themes/hugo-xterm` +subdirectory in your site directory. + +To update the theme just download a new release and overwrite the same +subdirectory. + +This method is simple, can be automated with script and saves space on disk by +omitting the theme repository history. + +### Method - Using git clone + +This method clones the theme repository with history into your site's themes +subdirectory which is useful if you want to control the history or make your +own private modifications to the theme. + +```bash +cd +git clone https://github.com/manid2/hugo-xterm themes/hugo-xterm --depth=1 + +# update theme +cd themes/hugo-xterm +git pull +``` + +### Method - Using git submodule + +This is similar to cloning the theme into subdirectory except using git +submodule which makes the theme acts a dependency of your site repository. It +lets git to control your site and its dependency this theme. + +```bash +git submodule add --depth=1 https://github.com/manid2/hugo-xterm \ +themes/hugo-xterm + +# update theme +git submodule update --remote --merge +``` + +Local development +----------------- + +```bash +# add to go.mod for local development +# replace github.com/manid2/hugo-xterm => ../hugo-xterm +hugo server --source exampleSite + +# generate tags +ctags -R assets/ layouts/ config.toml theme.toml + +# generate tags for exampleSite +ctags -R exampleSite/layouts/ exampleSite/scripts/ exampleSite/config +``` + +Request feature & report bugs +----------------------------- + +If you find any bugs or need any features then please raise an +[issue][hx_gh_issues_link] so that it can tracked and avoid same requests from +other users. + +You can also fix the bug or implement the feature yourself and raise a [pull +request][hx_gh_pr_link] so I can review and integrate it into this theme with +credits to you as a contributor. + +Use the theme & want to show your site? +--------------------------------------- + +I would be happy to know that you use this theme and want to show your site. +For this please raise a pull request with link to your site, your +name/username, profession/study mentioned in this list [hugo-xterm +users][hx_users_link]. + +Support +------- + +Kindly support this theme development by donating at [Buy me a +coffee][md2_bmc_link]. + +TODO Add current supporters. + +[![Mani Kumar Buy Me a Coffee QR code][md2_bmc_qr_img]][md2_bmc_link] + +Credits +------- + +This theme was initially based on [panr/terminal][1] theme but is re-written +from scratch to optimize for reading and print text heavy web pages. + +Parts of the features in this theme are either taken directly or based on the +features from popular themes and websites as listed below: + +* [panr/terminal][1]: most styles, menus and starter code. +* [adityatelange/hugo-PaperMod][2] features: breadcrumbs and copy code. +* [kaitlinmctigue/kaitlinmctigue.github.io][3]: dark and light theme modes. + +License +------- + +[GNU General Public License v3.0][hx_lic_link] + +[1]: https://github.com/panr/hugo-theme-terminal +[2]: https://github.com/adityatelange/hugo-PaperMod +[3]: https://github.com/kaitlinmctigue/kaitlinmctigue.github.io +[4]: https://github.com/hakimel/reveal.js +[5]: https://wave.webaim.org/ +[7]: https://manid2.github.io/hugo-xterm/ +[8]: https://en.wikipedia.org/wiki/HSL_and_HSV +[9]: https://github.com/alecthomas/chroma/ +[10]: https://manid2.gitlab.io/cv/ + +[hx_ci_build_img]: https://img.shields.io/github/actions/workflow/status/manid2/hugo-xterm/hugo.yaml?logo=github "Hugo Xterm build status badge" +[hx_ci_build_link]: https://github.com/manid2/hugo-xterm/actions + +[hx_lic_img]: https://img.shields.io/github/license/manid2/hugo-xterm?logo=gnu&logoColor=black&label=License&labelColor=lightcyan "Hugo Xterm license badge" +[hx_lic_link]: https://github.com/manid2/hugo-xterm/blob/main/LICENSE + +[hugo_ver_img]: https://img.shields.io/badge/Hugo%20Extended-%3E%3D%20v0.110.0-blue.svg?style=flat&logo=hugo&logoColor=white&label=Hugo%20Extended&labelColor=grey "Hugo Extended >= v0.110.0" +[hugo_v0110]: https://github.com/gohugoio/hugo/releases/tag/v0.110.0 + +[hx_ss_dark]: https://manid2.github.io/hugo-xterm/screenshots/hugo-xterm-ss-01-dark.png "Hugo Xterm dark mode screenshot" +[hx_ss_light]: https://manid2.github.io/hugo-xterm/screenshots/hugo-xterm-ss-02-light.png "Hugo Xterm light mode screenshot" +[hx_ss_cv]: https://manid2.github.io/hugo-xterm/screenshots/hugo-xterm-ss-03-cv.png "Hugo Xterm CV template screenshot" +[hx_ss_slides]: https://manid2.github.io/hugo-xterm/screenshots/hugo-xterm-ss-04-slides.png "Hugo Xterm slides screenshot" + +[hx_demo_qr_img]: https://quickchart.io/qr?text=https%3A%2F%2Fmanid2.github.io%2Fhugo-xterm%2F&dark=1a5fb4&size=200 +[hx_gh_link]: https://github.com/manid2/hugo-xterm +[hx_gh_issues_link]: https://github.com/manid2/hugo-xterm/issues +[hx_gh_pr_link]: https://github.com/manid2/hugo-xterm/pulls +[hx_users_link]: https://github.com/manid2/hugo-xterm/blob/main/USERS.md + +[md2_bmc_link]: https://www.buymeacoffee.com/manid2 +[md2_bmc_qr_img]: https://manid2.gitlab.io/images/md2_bmc_qr.png +[md2_gh_link]: https://github.com/manid2 diff --git a/themes/hugo-xterm/USERS.md b/themes/hugo-xterm/USERS.md new file mode 100644 index 0000000..62910c2 --- /dev/null +++ b/themes/hugo-xterm/USERS.md @@ -0,0 +1,4 @@ +hugo-xterm users +================ + +* https://manid2.gitlab.io/ __manid2__ - Software Engineer diff --git a/themes/hugo-xterm/archetypes/posts.md b/themes/hugo-xterm/archetypes/posts.md new file mode 100644 index 0000000..d35fd56 --- /dev/null +++ b/themes/hugo-xterm/archetypes/posts.md @@ -0,0 +1,8 @@ ++++ +title = "{{ replace .TranslationBaseName "-" " " | title }}" +description = "" +date = "{{ .Date }}" +tags = ["", ""] +categories = ["", ""] +draft = true ++++ diff --git a/themes/hugo-xterm/assets/scripts/copy.js b/themes/hugo-xterm/assets/scripts/copy.js new file mode 100644 index 0000000..8f9858d --- /dev/null +++ b/themes/hugo-xterm/assets/scripts/copy.js @@ -0,0 +1,37 @@ +const hiTextBlock = document.querySelectorAll(".highlight-wrapper"); + +hiTextBlock.forEach(function (hiTextBlock) { + const hiToolbar = hiTextBlock.querySelector(".highlight-toolbar"); + if (!hiToolbar) return; + + const hiText = hiTextBlock.querySelector(".highlight"); + if (!hiText) return; + + const copyButton = hiToolbar.querySelector(".js-btn-copy-code"); + if (!copyButton) return; + + copyButton.classList.remove("hide"); + + /* Borrowed from adityatelange/hugo-PaperMod theme. */ + function copyingDone() { + copyButton.innerHTML = "Copied!"; + setTimeout(() => { + copyButton.innerHTML = "Copy"; + }, 2000); + } + + /* copy code in pre > code blocks */ + copyButton.addEventListener("click", () => { + // Fallback to selection and copy + const range = document.createRange(); + range.selectNodeContents(hiText); + const selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange(range); + try { + document.execCommand("copy"); + copyingDone(); + } catch (e) {} + selection.removeRange(range); + }); +}); diff --git a/themes/hugo-xterm/assets/scripts/menu.js b/themes/hugo-xterm/assets/scripts/menu.js new file mode 100644 index 0000000..17ae43f --- /dev/null +++ b/themes/hugo-xterm/assets/scripts/menu.js @@ -0,0 +1,47 @@ +const container = document.querySelector(".container"); +const allMenus = document.querySelectorAll(".menu"); + +// Hide menus on body click +document.body.addEventListener("click", () => { + allMenus.forEach(menu => { + if (menu.classList.contains("open")) { + menu.classList.remove("open"); + } + }); +}); + +// Reset menus on resize +window.addEventListener("resize", () => { + allMenus.forEach(menu => { + menu.classList.remove("open"); + }); +}); + +// Handle desktop menu +allMenus.forEach(menu => { + const trigger = menu.querySelector(".menu-trigger"); + const dropdown = menu.querySelector(".menu-dropdown"); + + trigger.addEventListener("click", e => { + e.stopPropagation(); + + if (menu.classList.contains("open")) { + menu.classList.remove("open"); + } else { + // Close all menus... + allMenus.forEach(m => m.classList.remove("open")); + // ...before opening the current one + menu.classList.add("open"); + } + + if ( + dropdown.getBoundingClientRect().right > + container.getBoundingClientRect().right + ) { + dropdown.style.left = "auto"; + dropdown.style.right = 0; + } + }); + + dropdown.addEventListener("click", e => e.stopPropagation()); +}); diff --git a/themes/hugo-xterm/assets/scripts/print.js b/themes/hugo-xterm/assets/scripts/print.js new file mode 100644 index 0000000..20a7635 --- /dev/null +++ b/themes/hugo-xterm/assets/scripts/print.js @@ -0,0 +1 @@ +/* TODO: Add print button */ diff --git a/themes/hugo-xterm/assets/scripts/theme.js b/themes/hugo-xterm/assets/scripts/theme.js new file mode 100644 index 0000000..ea8a086 --- /dev/null +++ b/themes/hugo-xterm/assets/scripts/theme.js @@ -0,0 +1,29 @@ +const themeDark = "theme--dark"; +const themeLight = "theme--light"; +const bodyClassList = document.body.classList; +const isSystemDark = window.matchMedia( + "(prefers-color-scheme: dark)", +).matches; +const themeToggle = document.querySelector(".theme-toggle"); +const preferTheme = "prefer-theme"; + +// Set theme from local storage +const localTheme = localStorage.getItem(preferTheme); +if (localTheme === themeDark) { + bodyClassList.add(themeDark); +} else if (localTheme === themeLight) { + bodyClassList.remove(themeDark); +} else if (isSystemDark) { + bodyClassList.add(themeDark); +} + +// Toggle theme on click +themeToggle.addEventListener("click", () => { + if (bodyClassList.contains(themeDark)) { + bodyClassList.remove(themeDark); + localStorage.setItem(preferTheme, themeLight); + } else { + bodyClassList.add(themeDark); + localStorage.setItem(preferTheme, themeDark); + } +}); diff --git a/themes/hugo-xterm/assets/styles/_buttons.scss b/themes/hugo-xterm/assets/styles/_buttons.scss new file mode 100644 index 0000000..3cdae96 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_buttons.scss @@ -0,0 +1,112 @@ +/* Buttons */ +button, +.button { + align-items: center; + border-radius: $spacer-small; + border: $spacer-1 solid; + cursor: pointer; + display: flex; + font-weight: $font-bold; + padding: $spacer-small $spacer-normal; + text-align: center; + + @include themed { + background: t($button-background); + border-color: t($accent); + + &:hover { + background: transparentize(t($button-background), 0.6); + text-decoration: none; + } + } + + @media print { + display: none; + } + + &:active { + transform: scale(0.95); + transition: transform 0.2s ease; + } + + /* button variants */ + &.outline, + &.transparent { + font-weight: $font-normal; + background: none; + + @include themed { + color: t($text-brighter); + + &:hover { + background: transparentize(t($button-background), 0.1); + } + } + } + + &.transparent { + border: none; + } + + &.outline.brighter { + @include themed { + border-color: t($background-brighter); + } + } + + /* button content align right */ + &.right { + justify-content: flex-end; + } + + /* button label */ + .label { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + /* button icon */ + .icon { + margin-right: $spacer-smallest; + + &.right { + margin: 0 0 0 $spacer-smallest; + } + } +} + +a.button { + @media print { + display: initial; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } +} + +/* Buttons container */ +.buttons { + display: flex; + flex-flow: row wrap; + align-items: center; + column-gap: $spacer-small; + + @media ($phone) { + flex-direction: column; + row-gap: $spacer-small; + } + + /* Buttons filling the container */ + &.fill { + button, + .button { + flex: 1 0 0; + + @media ($phone) { + width: 100%; + justify-content: center; + } + } + } +} diff --git a/themes/hugo-xterm/assets/styles/_footer.scss b/themes/hugo-xterm/assets/styles/_footer.scss new file mode 100644 index 0000000..b29a61f --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_footer.scss @@ -0,0 +1,39 @@ +.site-footer { + margin-top: $spacer-large2; + border-top: $spacer-1 solid; + + @include themed { + border-color: t($accent); + color: t($text-duller); + } + + @media print { + display: none; + } +} + +.themeinfo, +.buildinfo { + font-size: $font-size-smaller; + margin: $spacer-small 0; +} + +.copyright { + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: space-between; + margin: $spacer-normal 0; + + > p { + margin: 0; + } + + .navbar { + &__list { + > li { + border: none; + } + } + } +} diff --git a/themes/hugo-xterm/assets/styles/_gen_syntax.scss b/themes/hugo-xterm/assets/styles/_gen_syntax.scss new file mode 100644 index 0000000..1dc5eee --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_gen_syntax.scss @@ -0,0 +1,147 @@ +/* Syntax highlighting styles */ +.chroma .ln { + white-space: pre; + user-select: none; + padding: 0 0.4em; + color: #7f7f7f; +} + +.chroma .cl { + padding: 0 0.4em; +} + +.chroma .line { + display: flex; +} + +.chroma .ge { + font-style: italic; +} + +.chroma .gs { + font-weight: $font-bold; +} + +/* Syntax highlighting colors */ +.chroma .err { + color: #960050; + background-color: #1e0010; +} + +.chroma .hl { + background-color: #ffc; +} + +.bg, +.chroma { + @include themed { + color: t($syn-fg); + background-color: t($syn-bg); + } +} + +.chroma .k, +.chroma .kc, +.chroma .kd, +.chroma .kp, +.chroma .kr, +.chroma .kt, +.chroma .no { + @include themed { + color: t($syn-kw); + } +} + +.chroma .kn, +.chroma .nt, +.chroma .o, +.chroma .ow, +.chroma .gd { + color: $syn-op; +} + +.chroma .n { + @include themed { + color: t($syn-n); + } +} + +.chroma .na, +.chroma .nc, +.chroma .nd, +.chroma .ne, +.chroma .nf, +.chroma .nx, +.chroma .gi { + @include themed { + color: t($syn-na); + } +} + +.chroma .ld, +.chroma .s, +.chroma .sa, +.chroma .sb, +.chroma .sc, +.chroma .dl, +.chroma .sd, +.chroma .s2, +.chroma .sh, +.chroma .si, +.chroma .sx, +.chroma .sr, +.chroma .s1, +.chroma .ss { + @include themed { + color: t($syn-ld); + } +} + +.chroma .l, +.chroma .se, +.chroma .m, +.chroma .mb, +.chroma .mf, +.chroma .mh, +.chroma .mi, +.chroma .il, +.chroma .mo { + color: $syn-l; +} + +.chroma .c, +.chroma .ch, +.chroma .cm, +.chroma .c1, +.chroma .cs, +.chroma .cp, +.chroma .cpf, +.chroma .gu { + color: $syn-c; +} + +/* Commented to fix linter errors, uncomment when needed. +.chroma .x, +.chroma .nb, +.chroma .bp, +.chroma .ni, +.chroma .fm, +.chroma .nl, +.chroma .nn, +.chroma .py, +.chroma .nv, +.chroma .vc, +.chroma .vg, +.chroma .vi, +.chroma .vm, +.chroma .p, +.chroma .g, +.chroma .gr, +.chroma .gh, +.chroma .go, +.chroma .gp, +.chroma .gt, +.chroma .gl, +.chroma .w { +} +*/ diff --git a/themes/hugo-xterm/assets/styles/_header.scss b/themes/hugo-xterm/assets/styles/_header.scss new file mode 100644 index 0000000..806fdb9 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_header.scss @@ -0,0 +1,110 @@ +.gitinfo, +.breadcrumbs { + font-size: $font-size-smaller; + font-style: italic; +} + +.breadcrumbs { + width: fit-content; + border-bottom: $spacer-1 solid; + + @include themed { + border-color: t($accent); + } +} + +.gitinfo { + margin: $spacer-normal 0; + border-top: $spacer-1 solid; + + @include themed { + color: t($text-duller); + border-color: t($accent); + } + + @media print { + margin: 0; + + a { + &::after { + display: none; + } + } + + p { + margin: $spacer-small 0 0 0; + font-size: $font-size-smaller; + } + } +} + +.theme-toggle { + cursor: pointer; + padding: 0; +} + +.theme-toggler { + fill: currentcolor; +} + +.navbar { + display: flex; + flex-flow: row wrap; + align-items: flex-start; + justify-content: space-between; + + &__first { + font-weight: $font-bold; + display: block; + } + + &__separator { + flex-grow: 1; + border-top: $spacer-2 dotted; + + @include themed { + border-color: t($accent); + } + } + + &__last { + display: block; + } + + &__list { + list-style: none; + margin: 0; + padding: 0; + display: flex; + + > li { + flex: 0 0 auto; + padding-left: $spacer-small; + display: flex; + justify-content: center; + } + + &.borders { + > li { + padding: $spacer-smallest $spacer-small; + border: $spacer-2 dotted; + margin-right: $spacer-2 * -1; + + @include themed { + border-color: t($accent); + } + } + } + } +} + +.site-header { + .navbar { + margin-bottom: $spacer-large2; + font-size: $font-size-larger; + } + + @media print { + display: none; + } +} diff --git a/themes/hugo-xterm/assets/styles/_main.scss b/themes/hugo-xterm/assets/styles/_main.scss new file mode 100644 index 0000000..e25e977 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_main.scss @@ -0,0 +1,490 @@ +html { + box-sizing: border-box; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +body { + margin: 0; + padding: 0; + font-family: $font-family-normal; + font-weight: $font-normal; + font-size: $font-size; + line-height: 1.54; + letter-spacing: -0.02em; + text-rendering: optimizelegibility; + -webkit-font-smoothing: antialiased; + font-feature-settings: "liga", "tnum", "zero", "ss01", "locl"; + font-variant-ligatures: contextual; + -webkit-overflow-scrolling: touch; + text-size-adjust: 100%; +} + +@media print { + @page { + size: a4 portrait; + margin: 0.5in; + } +} + +.theme-container { + @include themed { + background: t($background); + color: t($text); + } + + @media print { + background: white !important; + color: black !important; + } +} + +.site-main { + margin: 0; + padding: 0; +} + +.hanchor { + float: right; + margin-right: $spacer-large * -1; + + &::after { + content: "#"; + visibility: hidden; + } + + @include themed { + color: t($text-accent); + } + + @media print { + display: none; + } +} + +h1, +h2, +h3 { + @include themed { + border-color: t($accent); + } +} + +h1 { + font-size: $font-size * 2; + border-bottom: $spacer-2 dotted; +} + +h2 { + font-size: $font-size * 1.6; + border-bottom: $spacer-1 solid; +} + +h3 { + font-size: $font-size * 1.25; + border-bottom: $spacer-1 dashed; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: $font-family-title; + font-weight: $font-bold; + margin: $spacer-large2 0 $spacer-normal 0; + width: fit-content; + + @media print { + break-after: avoid-page; + margin: $spacer-small 0; + } + + > a.hanchor { + text-decoration: none; + } + + > a.hanchor:focus::after { + visibility: visible; + } + + &:hover { + > a.hanchor::after { + visibility: visible; + } + } +} + +@media print { + h1 { + margin-top: 0; + } +} + +a { + text-decoration: none; + + &:hover { + text-decoration: underline; + } + + @include themed { + color: t($text-links); + } + + @media print { + &::after { + margin-left: $spacer-smallest; + content: "(" attr(href) ")"; + text-decoration: underline; + font-style: italic; + + @include themed { + color: t($text); + } + } + } +} + +p { + margin: $spacer-normal 0; +} + +code { + font-family: $font-family-mono; + border-radius: $spacer-2; + padding: $spacer-2 $spacer-smallest; + + @include themed { + color: t($code-text); + background: t($code-background); + } +} + +img { + max-width: 100%; + + &.left { + margin-right: auto; + } + + &.center { + margin-left: auto; + margin-right: auto; + } + + &.right { + margin-left: auto; + } +} + +figure { + display: table; + max-width: 100%; + margin: $spacer-large 0; + + &.left { + margin-right: auto; + } + + &.center { + margin-left: auto; + margin-right: auto; + } + + &.right { + margin-left: auto; + } + + figcaption { + font-size: $font-size-smaller; + padding: $spacer-smallest $spacer-small; + margin-top: $spacer-smallest; + opacity: 0.8; + + &.left { + text-align: left; + } + + &.center { + text-align: center; + } + + &.right { + text-align: right; + } + + @include themed { + background: t($accent); + color: t($background); + } + } +} + +blockquote { + border-left: $spacer-smallest solid; + margin: $spacer-large 0; + padding: $spacer-normal $spacer-normal $spacer-normal $spacer-large; + font-style: italic; + + @include themed { + color: t($text-brighter); + background: t($blockquote-background); + border-color: t($accent); + } + + @media print { + margin: $spacer-large 0; + } + + p { + position: relative; + } + + p:first-of-type { + margin-top: 0; + } + + p:last-of-type { + margin-bottom: 0; + } + + p:first-of-type::before { + content: ">"; + display: block; + position: absolute; + left: $spacer-large * -1; + padding: $spacer-smallest; + } +} + +table { + table-layout: auto; + border-collapse: collapse; + width: 100%; + margin: $spacer-large 0; +} + +table, +th, +td { + border: $spacer-1 dashed; + padding: $spacer-smallest; + + @include themed { + border-color: t($accent); + } + + @media print { + padding: $spacer-smallest; + } +} + +th { + font-weight: $font-bold; + + @include themed { + color: t($text-brighter); + background: t($background-brighter); + } +} + +td { + font-size: $font-size-smaller; +} + +ul, +ol { + margin: 0 0 $spacer-normal $spacer-large; + padding: 0; + + @media print { + margin-bottom: 0; + } + + li { + position: relative; + + @media print { + > p { + margin: 0 0 $spacer-smallest 0; + } + + break-inside: avoid-page; + } + } +} + +ol { + list-style: none; + counter-reset: li; + + li { + counter-increment: li; + } + + li::before { + content: counter(li); + position: absolute; + right: calc(100% + 10px); + display: inline-block; + text-align: right; + + @include themed { + color: $accent; + } + } + + ol { + margin-left: $spacer-large; + + li { + counter-increment: li; + } + + li::before { + content: counters(li, ".") " "; + } + } +} + +li ol, +li ul { + margin: 0 0 0 $spacer-large; +} + +hr { + width: 100%; + border: none; + height: $spacer-1; + + @include themed { + background: t($accent); + } + + @media print { + margin: 0; + } +} + +.container { + display: flex; + flex-direction: column; + padding: $spacer-normal; + max-width: $container-max-width; + min-height: 100vh; + + &.full, + &.center { + border: none; + margin: 0 auto; + } + + &.full { + max-width: 100%; + } + + @media print { + display: initial; + padding: 0; + } +} + +.content { + display: flex; + flex-direction: column; + + @media print { + display: initial; + } +} + +.hide { + display: none; +} + +.row { + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: space-between; + + &.start { + gap: $spacer-small; + justify-content: flex-start; + } +} + +.col { + display: flex; + flex-flow: column wrap; +} + +.row, +.col { + &.lead { + font-weight: $font-bold; + font-size: $font-size-larger; + } + + &.bold { + font-weight: $font-bold; + } + + &.sub { + font-weight: $font-light; + font-style: italic; + } +} + +.cv-title { + display: block; + border: none; + margin: 0 0 $spacer-smallest 0; +} + +.cv-contacts { + display: block; + text-align: end; + margin: 0 0 $spacer-smallest 0; +} + +.cv-description { + font-style: italic; + font-size: $font-size-smaller; + margin: $spacer-smallest 0; +} + +.cv-experience { + margin: $spacer-small 0; + border-bottom: none; + + @media print { + break-after: avoid-page; + break-inside: avoid-page; + } +} + +.cv-content { + h2 { + font-size: $font-size-larger; + width: 100%; + + .hanchor { + display: none; + } + } + + @media print { + * { + margin-top: $spacer-2; + margin-bottom: 0; + line-height: 1.2; + } + } +} diff --git a/themes/hugo-xterm/assets/styles/_menu.scss b/themes/hugo-xterm/assets/styles/_menu.scss new file mode 100644 index 0000000..ef5e518 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_menu.scss @@ -0,0 +1,113 @@ +@mixin menu { + display: none; + flex-direction: column; + position: absolute; + margin: 0; + padding: 0; + top: $spacer-small; + left: 0; + list-style: none; + z-index: 99; + + @include themed { + $shadow-color: transparentize(t($background), 0.2); + $shadow: 0 $spacer-small $shadow-color, + -$spacer-small $spacer-small $shadow-color, + $spacer-small $spacer-small $shadow-color; + + background: t($background); + box-shadow: $shadow; + } +} + +@mixin header-menu-trigger { + font-weight: 700; + padding: $spacer-smallest $spacer-small; + height: 100%; + margin-bottom: 0 !important; + position: relative; + cursor: pointer; + border: $spacer-2 dotted; + + @include themed { + color: t($text); + background: t($background); + border-color: t($accent); + } +} + +.menu { + display: flex; + flex-direction: column; + position: relative; + list-style: none; + padding: 0; + margin: 0; + + &-trigger { + margin-right: 0; + user-select: none; + cursor: pointer; + + @include themed { + color: t($accent); + } + } + + &-dropdown { + @include menu; + + .open & { + display: flex; + } + + > li { + flex: 0 0 auto; + padding: $spacer-smallest $spacer-small; + border: $spacer-2 dotted; + + @include themed { + border-color: t($accent); + } + + a { + display: flex; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } + } + } + + &--desktop { + @media ($phone) { + display: none; + } + } + + &--mobile { + .menu-trigger { + @include header-menu-trigger; + + display: none; + + @media ($phone) { + display: block; + } + } + + .menu-dropdown { + @media ($phone) { + left: auto; + right: 0; + } + } + + li { + flex: 0 0 auto; + margin-bottom: $spacer-2 * -1; + } + } +} diff --git a/themes/hugo-xterm/assets/styles/_pagination.scss b/themes/hugo-xterm/assets/styles/_pagination.scss new file mode 100644 index 0000000..31ce2b2 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_pagination.scss @@ -0,0 +1,39 @@ +.pagination { + margin: $spacer-largest 0; + + @media print { + display: none; + } + + &-title { + display: flex; + text-align: center; + position: relative; + margin: $spacer-large 0; + + &-h { + text-align: center; + margin: 0 auto; + padding: $spacer-smallest $spacer-normal; + font-size: smaller; + text-transform: uppercase; + text-decoration: none; + letter-spacing: 0.1em; + z-index: 1; + + @include themed { + background: t($background); + color: transparentize(t($text), 0.4); + } + } + + hr { + position: absolute; + left: 0; + right: 0; + width: 100%; + margin-top: $spacer-normal; + z-index: 0; + } + } +} diff --git a/themes/hugo-xterm/assets/styles/_post.scss b/themes/hugo-xterm/assets/styles/_post.scss new file mode 100644 index 0000000..1d4ca60 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_post.scss @@ -0,0 +1,146 @@ +.post { + width: 100%; + text-align: left; + margin: $spacer-normal 0; + + @media print { + margin: 0 0 $spacer-large 0; + } + + &-entries { + .item { + padding-bottom: $spacer-small; + margin-bottom: $spacer-large; + + p { + margin: 0; + } + + h2, + h3 { + border-style: none; + margin: 0; + padding: 0; + } + } + } + + &-header { + margin: $spacer-normal 0; + + @media print { + margin: 0; + } + } + + &-title { + $border-title: $spacer-smallest dotted; + + position: relative; + border-bottom: $border-title; + width: 100%; + padding-bottom: $spacer-smallest; + + @include themed { + border-color: t($accent); + } + + &::after { + content: ""; + position: absolute; + bottom: $spacer-2; + display: block; + width: 100%; + border-bottom: $border-title; + + @include themed { + border-color: t($accent); + } + } + + a { + text-decoration: none; + + @media print { + &::after { + display: none; + } + } + } + } + + &-meta, + &-tags { + font-style: italic; + font-size: $font-size-smaller; + margin: $spacer-small 0; + + @include themed { + color: t($text-accent); + } + + a { + @media print { + &::after { + display: none; + } + } + } + } + + &-description { + font-size: $font-size-larger; + font-weight: $font-light; + + @include themed { + color: t($text-brighter); + } + } + + &-toc { + margin: $spacer-normal 0; + + @media print { + display: none; + } + + ul, + ol { + margin-bottom: 0; + } + } + + &-cover { + border: $spacer-large solid $accent; + background: transparent; + margin: $spacer-largest 0; + padding: $spacer-large; + + @media ($phone) { + padding: $spacer-small; + border-width: $spacer-small; + } + } + + &-footer { + margin: $spacer-largest 0; + + @media print { + margin: $spacer-small 0 0 0; + } + } + + &-support { + font-style: italic; + margin: $spacer-normal 0; + border-top: $spacer-1 solid; + + @include themed { + border-color: t($accent); + } + + @media print { + margin: $spacer-large 0; + } + } +} diff --git a/themes/hugo-xterm/assets/styles/_slides.scss b/themes/hugo-xterm/assets/styles/_slides.scss new file mode 100644 index 0000000..b902c5b --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_slides.scss @@ -0,0 +1,47 @@ +:root { + --r-code-font: #{$font-family-mono}; + --r-heading-font: #{$font-family-title}; + --r-main-font-size: #{$font-size}; + --r-main-font: #{$font-family-normal}; + + /* FIXME doesn't work in light theme */ + @include themed { + --r-background-color: t($background); + --r-heading-color: t($text); + --r-main-color: t($text); + --r-link-color: t($text-links); + --r-link-color-dark: t($text-links); + --r-link-color-hover: t($text); + } +} + +/* HACK use this until reveal.js theme colors are fixed */ +.reveal a { + @include themed { + color: t($text-links); + } +} + +.reveal { + width: 100%; + height: $spacer-large * 25; +} + +.reveal .slides { + text-align: left; +} + +.header-left, +.footer-left { + position: absolute; + left: 0%; + margin: $spacer-normal $spacer-normal; +} + +.header-left { + top: 0%; +} + +.footer-left { + bottom: 0%; +} diff --git a/themes/hugo-xterm/assets/styles/_syntax.scss b/themes/hugo-xterm/assets/styles/_syntax.scss new file mode 100644 index 0000000..8229c38 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_syntax.scss @@ -0,0 +1,60 @@ +/* syntax highlighted code layout */ +div.highlight-wrapper { + margin: $spacer-large 0; + border-radius: $spacer-2; + border: $spacer-1 solid; + + @include themed { + border-color: t($background-brighter); + } +} + +div.highlight-wrapper div.highlight-toolbar { + display: flex; + border-bottom: $spacer-1 solid; + + @include themed { + color: t($text-brighter); + background: t($background-grey); + border-color: t($background-brighter); + } + + .item { + padding: 0 $spacer-small; + + .label { + @include themed { + color: t($text-duller); + } + + @media ($phone) { + display: none; + } + } + + &.right { + margin-left: auto; + } + } +} + +div.highlight .chroma { + margin: 0; + padding: $spacer-smallest 0; + overflow: auto; +} + +div.highlight .chroma code { + color: inherit; + background: inherit; + padding: 0; + margin: 0; +} + +div.highlight .chroma .line span.cl.wrap { + white-space: pre-wrap; +} + +div.highlight .chroma .cl { + padding-right: $spacer-small; +} diff --git a/themes/hugo-xterm/assets/styles/_themes.scss b/themes/hugo-xterm/assets/styles/_themes.scss new file mode 100644 index 0000000..8288597 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_themes.scss @@ -0,0 +1,117 @@ +/* Shortcuts */ +$accent: "accent"; +$background: "background"; +$text: "text"; +$text-links: "text-links"; +$text-accent: "text-accent"; +$text-brighter: "text-brighter"; +$text-duller: "text-duller"; +$background-brighter: "background-brighter"; +$background-grey: "background-grey"; +$code-text: "code-text"; +$code-background: "code-background"; +$blockquote-background: "blockquote-background"; +$button-text: "button-text"; +$button-background: "button-background"; + +/* Syntax highlighting colors variables */ +$syn-bg: "syn-bg"; +$syn-fg: "syn-fg"; +$syn-kw: "syn-kw"; +$syn-ld: "syn-ld"; +$syn-lse: "syn-lse"; +$syn-n: "syn-n"; +$syn-na: "syn-na"; + +/* Syntax highlighting common colors based on monokailight and monokai */ +$syn-c: #75715e; +$syn-op: #f92672; +$syn-l: #ae81ff; + +/* Themes */ +$themes: ( + light: ( + $accent: $accent--light, + $background: $background--light, + $text: $text--light, + $text-links: $text-links--light, + $text-accent: scale-color($accent--light, $lightness: 30%), + $text-brighter: + scale-color($text--light, $saturation: 40%, $lightness: 20%), + $text-duller: + scale-color($text--light, $saturation: -90%, $lightness: -10%), + $background-brighter: scale-color($background--light, $lightness: -5%), + $background-grey: + scale-color($accent--light, $saturation: -80%, $lightness: 90%), + $code-text: scale-color($accent--light, $hue: -90%, $lightness: -45%), + $code-background: scale-color($background--light, $lightness: 60%), + $blockquote-background: darken($background--light, 2%), + $button-text: darken($text--light, 5%), + $button-background: darken($background--light, 5%), + $syn-bg: #fafafa, + $syn-fg: #272822, + $syn-kw: #00a8c8, + $syn-ld: #d88200, + $syn-lse: #8045ff, + $syn-n: #111, + $syn-na: #75af00, + ), + dark: ( + $accent: $accent--dark, + $background: $background--dark, + $text: $text--dark, + $text-links: $text-links--dark, + $text-accent: scale-color($accent--dark, $lightness: 60%), + $text-brighter: + scale-color($text--dark, $saturation: 60%, $lightness: 60%), + $text-duller: + scale-color($text--dark, $saturation: -90%, $lightness: -20%), + $background-brighter: scale-color($background--dark, $lightness: 20%), + $background-grey: + scale-color($accent--dark, $saturation: -90%, $lightness: -70%), + $code-text: scale-color($accent--dark, $hue: -90%, $lightness: 45%), + $code-background: scale-color($background--dark, $lightness: 20%), + $blockquote-background: lighten($background--dark, 5%), + $button-text: lighten($text--dark, 10%), + $button-background: lighten($background--dark, 15%), + $syn-bg: #272822, + $syn-fg: #f8f8f2, + $syn-kw: #66d9ef, + $syn-ld: #e6db74, + $syn-lse: #ae81ff, + $syn-n: #f8f8f2, + $syn-na: #a6e22e, + ), +); + +/* Current theme global variable */ +$current-theme: null; + +@mixin themed() { + $current-theme: map-get($themes, "light") !global; + + & { + @content; + } + + @media print { + & { + @content; + } + } + + $themes-local: map-remove($themes, "light"); + + @each $theme-name, $theme-map in $themes-local { + .theme--#{$theme-name} & { + $current-theme: $theme-map !global; + @content; + + $current-theme: null !global; + } + } +} + +@function t($key) { + @return map-get($current-theme, $key); +} diff --git a/themes/hugo-xterm/assets/styles/_variables.scss b/themes/hugo-xterm/assets/styles/_variables.scss new file mode 100644 index 0000000..3d41b26 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/_variables.scss @@ -0,0 +1,75 @@ +/* Fonts */ +$font-family-title: "Roboto Slab", "Times New Roman", garamond, serif; +$font-family-normal: "Fira Sans", arial, helvetica, sans-serif; +$font-family-mono: "Ubuntu Mono", monaco, consolas, monospace; + +/* Font weights */ +$font-light: 300; +$font-normal: 400; +$font-bold: 500; + +/* Font sizes */ +$font-size: 1rem; +$font-size-smaller: $font-size - 0.125; +$font-size-larger: $font-size + 0.125; + +/* Layouts */ +$container-max-width: 864px; + +/* Spacers */ +$spacer-1: 1px; +$spacer-2: $spacer-1 * 2; +$spacer-smallest: $spacer-2 * 2; +$spacer-small: $spacer-smallest * 2; +$spacer-normal: $spacer-small * 2; +$spacer-large: $spacer-small * 3; +$spacer-large2: $spacer-small * 4; +$spacer-largest: $spacer-small * 6; + +/* Colors */ +$blue: hsl( + $hue: 240deg, + $saturation: 100%, + $lightness: 50%, +); + +/* Light theme colors */ +$accent--light: $blue; +$background--light: scale-color( + $accent--light, + $saturation: -60%, + $lightness: 90% +); +$text--light: scale-color( + $accent--light, + $saturation: -60%, + $lightness: -50% +); +$text-links--light: adjust-color( + $accent--light, + $hue: -90deg, + $lightness: -30% +); + +/* Dark theme colors */ +$accent--dark: $blue; +$background--dark: scale-color( + $accent--dark, + $saturation: -80%, + $lightness: -80% +); +$text--dark: scale-color($accent--dark, $lightness: 80%); +$text-links--dark: adjust-color( + $accent--dark, + $hue: -90deg, + $lightness: -10% +); + +/* Media queries */ +$phone: "max-width: 684px"; +$tablet: "max-width: 900px"; + +:root { + --phone: (#{$phone}); + --tablet: (#{$tablet}); +} diff --git a/themes/hugo-xterm/assets/styles/app.scss b/themes/hugo-xterm/assets/styles/app.scss new file mode 100644 index 0000000..a7d5c21 --- /dev/null +++ b/themes/hugo-xterm/assets/styles/app.scss @@ -0,0 +1,16 @@ +@import "variables"; +@import "themes"; + +/* components */ +@import "buttons"; +@import "header"; +@import "menu"; +@import "main"; +@import "post"; +@import "pagination"; +@import "footer"; + +/* code syntax highlight */ +@import "gen_syntax"; +@import "syntax"; +@import "slides"; diff --git a/themes/hugo-xterm/config.toml b/themes/hugo-xterm/config.toml new file mode 100644 index 0000000..60fd848 --- /dev/null +++ b/themes/hugo-xterm/config.toml @@ -0,0 +1,4 @@ +[module] + [module.hugoVersion] + extended = true + min = '0.110.0' diff --git a/themes/hugo-xterm/exampleSite/config/_default/config.toml b/themes/hugo-xterm/exampleSite/config/_default/config.toml new file mode 100644 index 0000000..1f956a6 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/config/_default/config.toml @@ -0,0 +1,69 @@ +title = "Hugo Xterm" +languageCode = "en-us" +baseurl = "https://manid2.github.io/hugo-xterm/" +paginate = 20 + +[module] + [[module.imports]] + path = "github.com/manid2/hugo-xterm" + +[params] + centerTheme = true + showMenuItems = true + favicon = "/images/xterm.png" + showBreadCrumbs = true + toc = true + copyrightUserUrl = "https://manid2.gitlab.io/" + copyrightUserText = "Mani Kumar" + +[params.twitter] + creator = "mani_d2" + +[params.site_verification] + google = "dRxlQUCTcreupAiAU9R-WcImzIL5ZkXVFT4PVPDJl6Y" + bing = "F82FFC97299503C8B6340178FE5F1EFA" + yandex = "146d77656fc95385" + naver = "e3b93136c43487a12e31584cf30306a269137968" + +[languages] + [languages.en.params] + copyright = "© Mani Kumar" + readOtherPosts = "Read other posts" + missingContentMessage = "Page not found..." + missingBackButtonLabel = "Back to home page" + + [languages.en.params.logo] + logoText = "Home" + + [languages.en.menu] + [[languages.en.menu.main]] + identifier = "cv" + name = "CV" + url = "/cv/" + + [[languages.en.menu.main]] + identifier = "posts" + name = "Posts" + url = "/posts/" + + [[languages.en.menu.main]] + identifier = "about" + name = "About" + url = "/about/" + +[markup] + [markup.tableOfContents] + startLevel = 2 + endLevel = 3 + ordered = false + + [markup.highlight] + anchorLineNos = false + codeFences = true + guessSyntax = false + hl_Lines = '' + hl_inline = false + lineNoStart = 1 + lineNos = true + lineNumbersInTable = false + noClasses = false diff --git a/themes/hugo-xterm/exampleSite/config/production/config.toml b/themes/hugo-xterm/exampleSite/config/production/config.toml new file mode 100644 index 0000000..b16248f --- /dev/null +++ b/themes/hugo-xterm/exampleSite/config/production/config.toml @@ -0,0 +1,7 @@ +googleAnalytics = "G-FX00ZBCNBW" +enableGitInfo = true + +[params.git_info] + host = "github" + user = "manid2" + repo = "hugo-xterm" diff --git a/themes/hugo-xterm/exampleSite/content/_index.md b/themes/hugo-xterm/exampleSite/content/_index.md new file mode 100644 index 0000000..39242ec --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/_index.md @@ -0,0 +1,35 @@ ++++ +title = "Hugo Xterm" +description = """Hugo theme designed for reading and printing text with dark \ +and light modes.""" +date = "2023-07-15" +toc = false ++++ + +This is the demo example site for [manid2/hugo-xterm][1] theme. + +[![Hugo][hugo_ver_img]][hugo_v0110] +[![LICENSE][hx_lic_img]][hx_lic_link] +[![Build][hx_ci_build_img]][hx_ci_build_link] + +Support +------- + +Kindly support this theme development by donating at [Buy me a +coffee][md2_bmc_link]. + +[![Mani Kumar Buy Me a Coffee QR code][md2_bmc_qr_img]][md2_bmc_link] + +[1]: https://github.com/manid2/hugo-xterm + +[hx_ci_build_img]: https://img.shields.io/github/actions/workflow/status/manid2/hugo-xterm/hugo.yaml?logo=github "Hugo Xterm build status badge" +[hx_ci_build_link]: https://github.com/manid2/hugo-xterm/actions + +[hx_lic_img]: https://img.shields.io/github/license/manid2/hugo-xterm?logo=gnu&logoColor=black&label=License&labelColor=lightcyan "Hugo Xterm license badge" +[hx_lic_link]: https://github.com/manid2/hugo-xterm/blob/main/LICENSE + +[hugo_ver_img]: https://img.shields.io/badge/Hugo%20Extended-%3E%3D%20v0.110.0-blue.svg?style=flat&logo=hugo&logoColor=white&label=Hugo%20Extended&labelColor=grey "Hugo Extended >= v0.110.0" +[hugo_v0110]: https://github.com/gohugoio/hugo/releases/tag/v0.110.0 + +[md2_bmc_link]: https://www.buymeacoffee.com/manid2 +[md2_bmc_qr_img]: https://manid2.gitlab.io/images/md2_bmc_qr.png diff --git a/themes/hugo-xterm/exampleSite/content/about.md b/themes/hugo-xterm/exampleSite/content/about.md new file mode 100644 index 0000000..9c01ec3 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/about.md @@ -0,0 +1,168 @@ ++++ +title = "About" +description = "About hugo-xterm theme." +toc = false ++++ + +Hugo theme designed for reading and printing text with dark and light modes. + +Features +-------- + +### Distinguishing features + +* Designed for __reading__ and __printing__ text. +* __Print:__ any page in light theme mode for readability. +* __[CV][10]:__ or resume template to reduce vertical space by using 2 columns + and shortcodes to list the experiences and skills. +* __Slides:__ support using [reveal.js][4]. +* __Lists__: separate view and pagination for simple list items and post + entries. +* __GitInfo:__ show the latest git commit short hash and subject message for + each page (requires Hugo GitInfo config enabled). +* __Fonts:__ + - __"Roboto Slab (serif)"__ for title (heading) text. + - __"Fira Sans (sans-serif)"__ for normal text. + - __"Ubuntu Mono (monospace)"__ for code. +* __Colors:__ in the theme are derived using a single primary color (blue) + from the [HSL colors][8]. +* Website banner is supported. + +### Adopted features + +* Minimal configuration. +* Switchable dark and light themes with automatic selection based on system + theme. +* SEO friendly OpenGraph and twitter cards support +* Customizable using configurations for: "full width", "centered". +* Taxonomies and posts RSS. +* Responsive tested on desktop and on smart phones. +* Responsive menus for desktop and mobile screens. +* Accessibility tested using [WAVE Web Accessibility Evaluation Tool][5]. +* Code blocks are highlighted using Hugo built-in blazing fast [Chroma][9]. +* Copy code, see code language and file name (optional). +* Tightly coupled with Hugo extended latest version (v1.110.0) to compile and + generate asset bundles with pipelines, fingerprinting and minification. + +### Other features + +These are supported due to [panr/terminal][1] theme base code but not +tested as I don't use them myself: + +* Post cover image. +* Images in post with caption. +* Comments. + +Installation +------------ + +Follow the steps in any one of these methods to install or update a Hugo +theme. + +### Method - Using hugo mod + +Add hugo-xterm theme as Hugo module to hide the theme content and let you +focus only on your site content. Let Hugo handle the theme updates +automatically and control the theme as a Hugo module instead of git. + +```bash +cd + +# initialize your site as a hugo module. +hugo mod init + +# import hugo-xterm theme as hugo module in configuration +$ cat config/_default/config.toml +[module] + [[module.imports]] + path = "github.com/manid2/hugo-xterm" + +# update theme +hugo mod get -u +``` + +For all below methods your site needs to point to hugo-xterm theme +subdirectory in configuration as below: + +```bash +$ cat config/_default/config.toml +theme = "hugo-xterm" +``` + +### Method - Download and copy theme + +Download the archived (i.e. .zip or tar.gz) theme from github repository +releases page. Extract and copy the contents into `themes/hugo-xterm` +subdirectory in your site directory. + +To update the theme just download a new release and overwrite the same +subdirectory. + +This method is simple, can be automated with script and saves space on disk by +omitting the theme repository history. + +### Method - Using git clone + +This method clones the theme repository with history into your site's themes +subdirectory which is useful if you want to control the history or make your +own private modifications to the theme. + +```bash +cd +git clone https://github.com/manid2/hugo-xterm themes/hugo-xterm --depth=1 + +# update theme +cd themes/hugo-xterm +git pull +``` + +### Method - Using git submodule + +This is similar to cloning the theme into subdirectory except using git +submodule which makes the theme acts a dependency of your site repository. It +lets git to control your site and its dependency this theme. + +```bash +git submodule add --depth=1 https://github.com/manid2/hugo-xterm \ +themes/hugo-xterm + +# update theme +git submodule update --remote --merge +``` + +Local development +----------------- + +```bash +# add to go.mod for local development +# replace github.com/manid2/hugo-xterm => ../hugo-xterm +hugo server --source exampleSite +``` + +Credits +------- + +This theme was initially based on [panr/terminal][1] theme but is re-written +from scratch to optimize for reading and print text heavy web pages. + +Parts of the features in this theme are either taken directly or based on the +features from popular themes and websites as listed below: + +* [panr/terminal][1]: most styles, menus and starter code. +* [adityatelange/hugo-PaperMod][2] features: breadcrumbs and copy code. +* [kaitlinmctigue/kaitlinmctigue.github.io][3]: dark and light theme modes. + +License +------- + +[GNU General Public License v3.0][11] + +[1]: https://github.com/panr/hugo-theme-terminal +[2]: https://github.com/adityatelange/hugo-PaperMod +[3]: https://github.com/kaitlinmctigue/kaitlinmctigue.github.io +[4]: https://github.com/hakimel/reveal.js +[5]: https://wave.webaim.org/ +[8]: https://en.wikipedia.org/wiki/HSL_and_HSV +[9]: https://github.com/alecthomas/chroma/ +[10]: https://manid2.gitlab.io/cv/ +[11]: https://github.com/manid2/hugo-xterm/blob/main/LICENSE diff --git a/themes/hugo-xterm/exampleSite/content/cv.md b/themes/hugo-xterm/exampleSite/content/cv.md new file mode 100644 index 0000000..8e3aca8 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/cv.md @@ -0,0 +1,62 @@ ++++ +title = "CV" +name = "Hugo Xterm" +description = """Built using Hugo, Sass and RevealJs.""" +type = "cv" + +[contact] + phone = "+91 1234" + email = "your[at]email[dot]com" ++++ + +Experience +---------- + +{{< cv/experience + name="Sandvine Technologies" + date="02 Aug 2021 – Present" + title="Senior Software Engineer" + location="Bangalore, India" >}} + +* Working as part of Data-Plane team to develop and maintain features for + ActiveLogic product which processes internet packets. + +Technologies: C, Python, DPDK, NUMA, Data-Plane, TCP/IP, PostgreSQL + +{{< cv/experience + name="Toshiba Software" + date="21 Dec 2016 – 31 Jul 2019" + title="Software Engineer" + location="Bangalore, India" >}} + +* Worked in Device Layer development team where I designed & implemented + custom size scan for Toshiba Multi-Functional Peripheral (MFP). With this + feature the users can scan a non-standard paper sizes such as identity + cards, bills and receipts. + +Technologies: C++, C, JPEG, PDF, OpenCV, Linux, Embedded Systems + +Education +--------- + +{{< cv/experience + name="BMS College of Engineering" + date="Aug 2012 - Mar 2016" + title= + "Bachelor of Engineering in Electronics and Communications" + location="Bangalore, India" >}} + +Technical Skills +---------------- + +Languages: C, C++, Python + +Tools: Git, Docker, GDB, Valgrind, Gitlab, Vim, Ctags + +Hobbies +------- + +* Hugo theme [manid2/hugo-xterm][1] for my website [manid2.gitlab.io][2]. + +[1]: https://manid2.github.io/hugo-xterm/ +[2]: https://manid2.gitlab.io/ diff --git a/themes/hugo-xterm/exampleSite/content/docs/_index.md b/themes/hugo-xterm/exampleSite/content/docs/_index.md new file mode 100644 index 0000000..11ec815 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/docs/_index.md @@ -0,0 +1,12 @@ ++++ +title = "Docs" +description = "Documents collection" +date = "2023-07-15" +author = "Mani Kumar" + +[cascade] + list_type = "docs_list" ++++ + +This page shows the list of items which are not articles and don't need a +date, author and other meta data associated. They are like simple documents. diff --git a/themes/hugo-xterm/exampleSite/content/docs/commands/_index.md b/themes/hugo-xterm/exampleSite/content/docs/commands/_index.md new file mode 100644 index 0000000..1fa41a9 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/docs/commands/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Commands" +description = "Linux developer commands collection" +date = "2023-07-15" +author = "Mani Kumar" ++++ diff --git a/themes/hugo-xterm/exampleSite/content/docs/commands/awk.md b/themes/hugo-xterm/exampleSite/content/docs/commands/awk.md new file mode 100644 index 0000000..fa60553 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/docs/commands/awk.md @@ -0,0 +1,7 @@ +awk +=== + +```sh +# upper case the first letter +awk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) }}1' file +``` diff --git a/themes/hugo-xterm/exampleSite/content/docs/commands/column.md b/themes/hugo-xterm/exampleSite/content/docs/commands/column.md new file mode 100644 index 0000000..1daf7ba --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/docs/commands/column.md @@ -0,0 +1,7 @@ +column +====== + +```sh +# format csv into table +column -s, -t < DebugLogs_2023-01-17-182808.csv >/tmp/t.csv +``` diff --git a/themes/hugo-xterm/exampleSite/content/docs/commands/grep.md b/themes/hugo-xterm/exampleSite/content/docs/commands/grep.md new file mode 100644 index 0000000..41e9947 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/docs/commands/grep.md @@ -0,0 +1,10 @@ +grep +==== + +```sh +# get all lower case letters +egrep '^[[:lower:]]+$' /usr/share/dict/words >/tmp/t.txt + +# remove duplicate lines +grep -vxF -f /usr/share/dict/words /tmp/t2.txt >/tmp/t.txt +``` diff --git a/themes/hugo-xterm/exampleSite/content/docs/commands/irssi.md b/themes/hugo-xterm/exampleSite/content/docs/commands/irssi.md new file mode 100644 index 0000000..4dcb240 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/docs/commands/irssi.md @@ -0,0 +1,4 @@ +Irssi +===== + +Irssi - a modular IRC client for UNIX diff --git a/themes/hugo-xterm/exampleSite/content/posts/_index.md b/themes/hugo-xterm/exampleSite/content/posts/_index.md new file mode 100644 index 0000000..40b95fa --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/posts/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Posts" +description = "Blog posts" +date = "2023-07-15" +author = "Mani Kumar" ++++ diff --git a/themes/hugo-xterm/exampleSite/content/posts/markdown-syntax.md b/themes/hugo-xterm/exampleSite/content/posts/markdown-syntax.md new file mode 100644 index 0000000..bb108d2 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/posts/markdown-syntax.md @@ -0,0 +1,184 @@ ++++ +title = "Markdown Syntax Guide" +description = """Sample article showcasing basic Markdown syntax and \ + formatting for HTML elements.""" +draft = false +date = "2024-05-06T01:22:51+0530" +author = "Hugo Authors" +tags = ["markdown", "xterm", "css", "html"] +categories = ["themes", "syntax"] ++++ + +This article offers a sample of basic Markdown syntax that can be used in Hugo +content files, also it shows whether basic HTML elements are decorated with +CSS in a Hugo theme. + +Headings +-------- + +The following HTML `

`—`

` elements represent six levels of section +headings. `

` is the highest section level while `

` is the lowest. + + +# H1 + +## H2 + + +### H3 + +#### H4 + +##### H5 + +###### H6 + +Paragraph +--------- + +Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, +voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma +dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as +cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? +Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, +sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos +evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, +ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores +editium rerore eost, temped molorro ratiae volorro te reribus dolorer +sperchicium faceata tiustia prat. + +Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne +sapicia is sinveli squiatum, core et que aut hariosam ex eat. + +Blockquotes +----------- + +The blockquote element represents content that is quoted from another source, +optionally with a citation which must be within a `footer` or `cite` element, +and optionally with in-line changes such as annotations and abbreviations. + +### Blockquote without attribution + +> Tiam, ad mint andaepu dandae nostion secatur sequo quae. +> __Note__ that you can use _Markdown syntax_ within a blockquote. + +Tables +------ + +Tables aren't part of the core Markdown spec, but Hugo supports them +out-of-the-box. + +| Name | Age | +| ----- | --- | +| Bob | 27 | +| Alice | 23 | + +### Inline Markdown within tables + +| Italics | Bold | Code | +| --------- | -------- | ------ | +| _italics_ | __bold__ | `code` | + +Code Blocks +----------- + +### Inline Code + +`This is Inline Code` + +### Code block with backticks + + +``` + + + + + Example HTML5 Document + + +

Test

+ + +``` + + +### Code block with backticks, language & attributes (lineno) specified + +```html {linenos=true} + + + + + Example HTML5 Document + + + +

Test

+ + +``` + + + +### Code block indented with four spaces + + + + + + Example HTML5 Document + + +

Test

+ + + +### Code block with Hugo's internal highlight shortcode + +{{< highlight html >}} + + + + + + Example HTML5 Document + + +

Test

+ + + +{{< /highlight >}} + + + +### Gist + +{{< gist spf13 7896402 >}} + +List Types +---------- + +### Ordered List + +1. First item +2. Second item +3. Third item + +### Unordered List + +- List item +- Another item +- And another item + +### Nested list + +- Fruit + + Apple + + Orange + + Banana +- Dairy + + Milk + + Cheese diff --git a/themes/hugo-xterm/exampleSite/content/posts/rich-content.md b/themes/hugo-xterm/exampleSite/content/posts/rich-content.md new file mode 100644 index 0000000..962116d --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/posts/rich-content.md @@ -0,0 +1,26 @@ ++++ +title = "Rich Content" +description = "A brief description of Hugo Shortcodes." +draft = false +date = "2023-07-28" +author = "Hugo Authors" +tags = ["xterm", "shortcodes", "css", "html"] +categories = ["themes", "syntax"] ++++ + +Hugo ships with several [Built-in Shortcodes][hg-sc1] for rich content, along +with a [Privacy Config][hg-l1] and a set of simple Shortcodes that enable +static and no-JS versions of various social media embeds. + +YouTube Privacy Enhanced Shortcode +---------------------------------- + +{{< youtube ZJthWmvUzzc >}} + +Vimeo Simple Shortcode +---------------------- + +{{< vimeo_simple 48912912 >}} + +[hg-sc1]: https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes +[hg-l1]: https://gohugo.io/about/hugo-and-gdpr/ diff --git a/themes/hugo-xterm/exampleSite/content/slides/_index.md b/themes/hugo-xterm/exampleSite/content/slides/_index.md new file mode 100644 index 0000000..8c6429a --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/slides/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Slides" +description = "hugo-xterm slides using reveal.js" +date = "2022-07-15" +author = "Mani Kumar" ++++ diff --git a/themes/hugo-xterm/exampleSite/content/slides/hugo-xterm-slides.md b/themes/hugo-xterm/exampleSite/content/slides/hugo-xterm-slides.md new file mode 100644 index 0000000..b6aa501 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/content/slides/hugo-xterm-slides.md @@ -0,0 +1,22 @@ ++++ +title = "hugo-xterm slides with reveal.js" +description = """Slides created using reveal.js.""" +date = "2023-07-15" +author = "Mani Kumar" ++++ + +Introduction +------------ + +* Hugo theme for terminal users. + +--- + +Features +-------- + +* Slides using [reveal.js][1]. +* Designed for blog and personal websites for professionals. +* Support for online CV and documentation. + +[1]: https://revealjs.com/ diff --git a/themes/hugo-xterm/exampleSite/go.mod b/themes/hugo-xterm/exampleSite/go.mod new file mode 100644 index 0000000..33523dd --- /dev/null +++ b/themes/hugo-xterm/exampleSite/go.mod @@ -0,0 +1,7 @@ +module github.com/manid2/hugo-xterm/exampleSite + +go 1.18 + +require github.com/manid2/hugo-xterm v1.5.0 // indirect + +replace github.com/manid2/hugo-xterm => ../ diff --git a/themes/hugo-xterm/exampleSite/go.sum b/themes/hugo-xterm/exampleSite/go.sum new file mode 100644 index 0000000..884985b --- /dev/null +++ b/themes/hugo-xterm/exampleSite/go.sum @@ -0,0 +1,6 @@ +github.com/manid2/hugo-xterm v0.0.0-20230715095800-5e6c59a4014f h1:rqkJPX0cOjWuXBxuUaWC6yzou0E+Gzw2HHb6/M4kOSY= +github.com/manid2/hugo-xterm v0.0.0-20230715095800-5e6c59a4014f/go.mod h1:okco5bnHP7wAs4wCdFM1CGqvOZf5Wpj39kHDIZT4Vds= +github.com/manid2/hugo-xterm v0.0.0-20230715205645-468f278c002c h1:SjaKPRMTk/kZ2amsVNLiCqp73z2QU8whOYIC2C6C/7w= +github.com/manid2/hugo-xterm v0.0.0-20230715205645-468f278c002c/go.mod h1:GfVYdHvhSC/U07C3fOHLl/k2hzc+uQh0oRuy4q7Or3A= +github.com/manid2/hugo-xterm v1.0.1 h1:s+uFQxPsA2lj20ZoQ2nUWqjW99E+uCsccuJL4UVWXQM= +github.com/manid2/hugo-xterm v1.0.1/go.mod h1:GfVYdHvhSC/U07C3fOHLl/k2hzc+uQh0oRuy4q7Or3A= diff --git a/themes/hugo-xterm/exampleSite/layouts/partials/extend_head.html b/themes/hugo-xterm/exampleSite/layouts/partials/extend_head.html new file mode 100644 index 0000000..af9c808 --- /dev/null +++ b/themes/hugo-xterm/exampleSite/layouts/partials/extend_head.html @@ -0,0 +1,14 @@ +{{- if hugo.IsProduction -}} + +{{- end -}} diff --git a/themes/hugo-xterm/exampleSite/scripts/hugo-env b/themes/hugo-xterm/exampleSite/scripts/hugo-env new file mode 100755 index 0000000..5d47c6a --- /dev/null +++ b/themes/hugo-xterm/exampleSite/scripts/hugo-env @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +HUGOxPARAMSxGITxLAST_COMMITxHASH=$(git log -1 --format=%H) +HUGOxPARAMSxGITxLAST_COMMITxSHORT_HASH=$(git log -1 --format=%h) +HUGOxPARAMSxGITxLAST_COMMITxSUBJECT=$(git log -1 --format=%s) + +export HUGOxPARAMSxGITxLAST_COMMITxHASH +export HUGOxPARAMSxGITxLAST_COMMITxSHORT_HASH +export HUGOxPARAMSxGITxLAST_COMMITxSUBJECT + +export TZ='Asia/Kolkata' diff --git a/themes/hugo-xterm/exampleSite/static/images/xterm.png b/themes/hugo-xterm/exampleSite/static/images/xterm.png new file mode 100644 index 0000000..138d335 Binary files /dev/null and b/themes/hugo-xterm/exampleSite/static/images/xterm.png differ diff --git a/themes/hugo-xterm/go.mod b/themes/hugo-xterm/go.mod new file mode 100644 index 0000000..b992c0f --- /dev/null +++ b/themes/hugo-xterm/go.mod @@ -0,0 +1,3 @@ +module github.com/manid2/hugo-xterm + +go 1.18 diff --git a/themes/hugo-xterm/images/screenshot.png b/themes/hugo-xterm/images/screenshot.png new file mode 100644 index 0000000..3d7f384 Binary files /dev/null and b/themes/hugo-xterm/images/screenshot.png differ diff --git a/themes/hugo-xterm/images/tn.png b/themes/hugo-xterm/images/tn.png new file mode 100644 index 0000000..303861a Binary files /dev/null and b/themes/hugo-xterm/images/tn.png differ diff --git a/themes/hugo-xterm/layouts/404.html b/themes/hugo-xterm/layouts/404.html new file mode 100644 index 0000000..f847740 --- /dev/null +++ b/themes/hugo-xterm/layouts/404.html @@ -0,0 +1,10 @@ +{{- define "main" }} + +{{- end }} diff --git a/themes/hugo-xterm/layouts/_default/_markup/render-codeblock.html b/themes/hugo-xterm/layouts/_default/_markup/render-codeblock.html new file mode 100644 index 0000000..5ae4506 --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/_markup/render-codeblock.html @@ -0,0 +1,23 @@ +{{- $lang := .Attributes.lang | default .Type -}} +{{- $file := .Attributes.file -}} + +{{- /* TODO: Add div toolbar */}} +
+
+ + Lang: + {{ $lang }} + + + {{- with $file }} + + File: + {{ . }} + + {{- end }} + + + +
+ {{- highlight .Inner $lang -}} +
diff --git a/themes/hugo-xterm/layouts/_default/_markup/render-heading.html b/themes/hugo-xterm/layouts/_default/_markup/render-heading.html new file mode 100644 index 0000000..35f9028 --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/_markup/render-heading.html @@ -0,0 +1,5 @@ +{{- /* Anchorized headings */}} + + {{ .Text | safeHTML }} + + diff --git a/themes/hugo-xterm/layouts/_default/baseof.html b/themes/hugo-xterm/layouts/_default/baseof.html new file mode 100644 index 0000000..5c446f4 --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/baseof.html @@ -0,0 +1,57 @@ + + + + {{- partial "head/base.html" . -}} + {{- partial "head/style.html" . -}} + {{- if templates.Exists "partials/extend_head.html" -}} + {{- partial "extend_head.html" . -}} + {{- end -}} + + + + {{- $container := "container" -}} + {{- if site.Params.fullWidthTheme -}} + {{- $container = print $container " full" -}} + {{- else if site.Params.centerTheme -}} + {{- $container = print $container " center" -}} + {{- end -}} + + {{- /* theme container */}} +
+ {{- /* container */}} +
+ {{- /* site header */}} + + + {{- /* site main */}} +
+ {{- block "main" . -}} + {{ if .Title -}} +

{{ .Title | plainify }}

+ {{- end -}} + + {{- /* site main content */}} + {{ .Content }} + {{- end -}} + {{- /* end main content */}} +
+ + {{- /* site footer */}} +
+ {{- block "footer" . -}} + {{- partial "footer.html" . -}} + {{- end -}} +
+
+
+ + {{- partial "scripts/base.html" . -}} + {{- if templates.Exists "partials/extend_footer.html" -}} + {{- partial "extend_footer.html" . -}} + {{- end -}} + + diff --git a/themes/hugo-xterm/layouts/_default/list.html b/themes/hugo-xterm/layouts/_default/list.html new file mode 100644 index 0000000..5664ac9 --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/list.html @@ -0,0 +1,47 @@ +{{- define "main" }} +
+
+ {{- if .Title }} +

{{ .Title | plainify }}

+ {{- end }} + + {{- with .Params.Description -}} +

{{ . }}

+ {{- end -}} +
+ +
+ {{- with .Content }} + {{ . }} + {{- end }} + + {{- /* list content */}} +

See

+ + {{- /* list items */}} + {{- if eq .Params.list_type "docs_list" }} + {{- $paginator := .Paginate .Pages -}} + + {{- else }} + {{- partial "post-entries.html" . -}} + {{- end }} +
+ +
+ {{- partial "pagination.html" . -}} +
+
+{{- end }} diff --git a/themes/hugo-xterm/layouts/_default/rss.xml b/themes/hugo-xterm/layouts/_default/rss.xml new file mode 100644 index 0000000..d1e43c2 --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/rss.xml @@ -0,0 +1,63 @@ +{{- $pctx := . -}} +{{- if .IsHome -}} + {{ $pctx = .Site }} +{{- end -}} + +{{- $pages := slice -}} +{{- if or $.IsHome $.IsSection -}} + {{- $pages = $pctx.RegularPages -}} +{{- else -}} + {{- $pages = $pctx.Pages -}} +{{- end -}} + +{{- $limit := .Site.Config.Services.RSS.Limit -}} +{{- if ge $limit 1 -}} + {{- $pages = $pages | first $limit -}} +{{- end -}} + +{{- printf "" | safeHTML }} + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io + + {{- with .Site.LanguageCode }} + {{.}} + {{- end }} + + {{- with .Site.Author.email }} + {{.}}{{with $.Site.Author.name}} ({{.}}){{end}} + {{.}}{{with $.Site.Author.name}} ({{.}}){{end}} + {{- end}} + + {{- with .Site.Params.Copyright }} + {{.}} + {{- end}} + + {{- if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{- end }} + + {{- with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{- end -}} + + {{- range $pages }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + + {{- with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}} + {{- end}} + + {{ .Permalink }} + {{ .Summary | html }} + {{ .Content | html }} + + {{- end }} + + diff --git a/themes/hugo-xterm/layouts/_default/single.html b/themes/hugo-xterm/layouts/_default/single.html new file mode 100644 index 0000000..716e01e --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/single.html @@ -0,0 +1,68 @@ +{{- define "main" -}} +
+
+ {{- if .Title }} +

{{ .Title | markdownify }}

+ {{- end }} + + {{- if or (.Params.Date) (.Params.Author) }} + + {{- end }} + + {{- if .Params.tags }} + + {{- end }} + + {{- with .Params.Description }} +

{{ . }}

+ {{- end }} +
+ + {{- if .Params.Cover }} + + {{- end }} + + {{- if and (.Param "toc") (ne .TableOfContents "") }} +
+

{{ "Table of Contents" | markdownify }}

+ {{ .TableOfContents }} +
+ {{- end }} + + {{- with .Content }} +
+ {{ . }} +
+ {{- end }} + + +
+ {{- if .GitInfo -}} + {{- partial "gitinfo.html" . -}} + {{- end -}} + + {{- if eq .Type "posts" }} + {{- if templates.Exists "partials/support-me.html" -}} + {{- partial "support-me.html" . -}} + {{- end -}} + {{- partial "pagination.html" . -}} + {{- partial "comments.html" . -}} + {{- end }} +
+
+{{- end -}} diff --git a/themes/hugo-xterm/layouts/_default/terms.html b/themes/hugo-xterm/layouts/_default/terms.html new file mode 100644 index 0000000..58eb56e --- /dev/null +++ b/themes/hugo-xterm/layouts/_default/terms.html @@ -0,0 +1,23 @@ +{{- define "main" }} + {{- if .Title }} +

+ {{ .Title | plainify }} +

+ {{- end }} + + +
+
    + {{- $type := .Type }} + {{- range $key, $value := .Data.Terms.Alphabetical }} + {{- $name := .Name }} + {{- $count := .Count }} + {{- with $.Site.GetPage (printf "/%s/%s" $type $name) }} +
  • + {{ .Name }} ({{ $count }}) +
  • + {{- end }} + {{- end }} +
+
+{{- end }} diff --git a/themes/hugo-xterm/layouts/cv/single.html b/themes/hugo-xterm/layouts/cv/single.html new file mode 100644 index 0000000..cd0e86d --- /dev/null +++ b/themes/hugo-xterm/layouts/cv/single.html @@ -0,0 +1,44 @@ +{{- define "main" -}} + +{{- end -}} diff --git a/themes/hugo-xterm/layouts/partials/breadcrumbs.html b/themes/hugo-xterm/layouts/partials/breadcrumbs.html new file mode 100644 index 0000000..5928ab9 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/breadcrumbs.html @@ -0,0 +1,23 @@ +{{- if not .IsHome -}} + +{{- end }} diff --git a/themes/hugo-xterm/layouts/partials/comments.html b/themes/hugo-xterm/layouts/partials/comments.html new file mode 100644 index 0000000..64f5a64 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/comments.html @@ -0,0 +1,8 @@ + diff --git a/themes/hugo-xterm/layouts/partials/footer.html b/themes/hugo-xterm/layouts/partials/footer.html new file mode 100644 index 0000000..50ea4e5 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/footer.html @@ -0,0 +1,74 @@ +{{- /* site build info */}} +

+ {{- /* site build timestamp */}} + + + {{- with site.Params.git.last_commit -}} + {{- $commitUrl := "" -}} + {{- if (isset site.Params "git_info") -}} + {{- $git_host := site.Params.git_info.host -}} + {{- $git_user := site.Params.git_info.user -}} + {{- $git_repo := site.Params.git_info.repo -}} + {{ $commitUrl = printf "https://%s.com/%s/%s/-/commit/%s" $git_host $git_user $git_repo .hash }} + {{- end -}} + from commit: + + {{- /* code */}} + + {{- if eq $commitUrl "" }} + #{{ .short_hash }} | + {{ .subject }} + {{- else }} + + #{{ .short_hash }} | + {{ .subject }} + + {{- end }} + + {{- end -}} + {{/* gitinfo */}} +

+ +{{- /* site copyright */}} + + +{{- /* site theme info */}} +

Powered by Hugo, using theme Hugo Xterm.

diff --git a/themes/hugo-xterm/layouts/partials/gitinfo.html b/themes/hugo-xterm/layouts/partials/gitinfo.html new file mode 100644 index 0000000..1126630 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/gitinfo.html @@ -0,0 +1,41 @@ +{{- $pageName := "Page" -}} +{{- if eq .Type "posts" -}} + {{- $pageName = print "Article" | plainify -}} +{{- else -}} + {{- with .File -}} + {{- if eq .TranslationBaseName "cv" -}} + {{- $pageName = print .TranslationBaseName | upper -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- with .GitInfo -}} + {{- $commitUrl := "" -}} + {{- if (isset site.Params "git_info") -}} + {{- $git_host := site.Params.git_info.host -}} + {{- $git_user := site.Params.git_info.user -}} + {{- $git_repo := site.Params.git_info.repo -}} + {{ $commitUrl = printf "https://%s.com/%s/%s/-/commit/%s" $git_host $git_user $git_repo .Hash }} + {{- end -}} + + {{- /* gitinfo */}} +
+

+ {{- /* page name */}} + {{ $pageName }} last updated on {{ .AuthorDate }} by commit + {{- /* code */}} + + {{- if eq $commitUrl "" }} + #{{ .AbbreviatedHash }} | + {{ .Subject }} + {{- else }} + + #{{ .AbbreviatedHash }} | + {{ .Subject }} + + {{- end }} + +

+
+{{- end -}} +{{/* gitinfo */}} diff --git a/themes/hugo-xterm/layouts/partials/head/base.html b/themes/hugo-xterm/layouts/partials/head/base.html new file mode 100644 index 0000000..2bfc763 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/head/base.html @@ -0,0 +1,88 @@ +{{- $title := site.Title -}} +{{- $ogImage := site.Params.favicon -}} +{{- if not .IsHome -}} + {{- if .Title -}} + {{- $title = .Title -}} + {{- else -}} + {{- $title = .File.TranslationBaseName -}} + {{- end -}} + {{- $title = printf "%s %s %s" $title "::" site.Title -}} +{{- end -}} + +{{- $description := "" -}} +{{- if .Description -}} + {{- $description = .Description | plainify -}} +{{- else -}} + {{- $description = .Summary | plainify -}} +{{- end -}} + +{{- $keywords := site.Params.Keywords -}} +{{- with .Params.Keywords -}} + {{- $keywords = delimit . ", " -}} +{{- end -}} + +{{- /* title */}} +{{ $title }} + +{{- /* meta */}} + + + + + + + +{{- if (isset site.Params "twitter") -}} + {{- $twitterCreator := .Params.Twitter.creator | default site.Params.Twitter.creator -}} + {{- /* Twitter Card */}} + + +{{- end -}} + +{{- /* OpenGraph data */}} + + + +{{- if .IsPage }} + + {{- range .Params.categories }} + + {{- end }} + {{- if isset .Params "date" }} + + {{- end }} + {{- with .Params.LastMod }} + + {{- end }} + + {{- if .Params.cover -}} + {{- $ogImage = .Params.Cover }} + {{- end -}} +{{- else }} + +{{- end }} + +{{- /* OpenGraph data */}} + + + + + + +{{- /* Analytics */}} +{{- template "_internal/google_analytics.html" . -}} +{{- partial "site-verification.html" . -}} + +{{- /* Icons */}} + + +{{- /* Fonts */}} + + + + +{{- /* RSS Feed */}} + diff --git a/themes/hugo-xterm/layouts/partials/head/style.html b/themes/hugo-xterm/layouts/partials/head/style.html new file mode 100644 index 0000000..7ea2329 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/head/style.html @@ -0,0 +1,19 @@ +{{- if and (not .IsSection) (eq .Type "slides") -}} + {{- partial "slides/style.html" . -}} +{{- end }} + +{{- /* styles */}} +{{- if hugo.IsProduction -}} + {{- $options := (dict "targetPath" "styles.css" "outputStyle" "compressed") -}} + {{- $styles := resources.Get "styles/app.scss" | resources.ToCSS $options | resources.Fingerprint -}} + +{{- else -}} + {{- $options := (dict "targetPath" "styles.css" "outputStyle" "compressed" "enableSourceMap" true) -}} + {{- $styles := resources.Get "styles/app.scss" | resources.ToCSS $options -}} + +{{- end -}} + +{{- /* Custom CSS to override theme properties (/static/style.css) */}} +{{- if (fileExists "static/style.css") }} + +{{- end }} diff --git a/themes/hugo-xterm/layouts/partials/header.html b/themes/hugo-xterm/layouts/partials/header.html new file mode 100644 index 0000000..bfa4909 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/header.html @@ -0,0 +1,11 @@ +{{- if and (site.Params.banner) (templates.Exists "banner.html") -}} + +{{- end -}} + +{{- partial "navbar.html" . -}} + +{{- if and (site.Params.showBreadCrumbs) (not .IsHome) -}} + {{- partial "breadcrumbs.html" . -}} +{{- end -}} diff --git a/themes/hugo-xterm/layouts/partials/navbar.html b/themes/hugo-xterm/layouts/partials/navbar.html new file mode 100644 index 0000000..63256c1 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/navbar.html @@ -0,0 +1,43 @@ +{{- $logoText := site.Params.Logo.logoText | default "Home" -}} +{{- $logoLink := site.Params.Logo.logoHomeLink | default "" -}} + +{{- /* navbar */}} + diff --git a/themes/hugo-xterm/layouts/partials/pagination.html b/themes/hugo-xterm/layouts/partials/pagination.html new file mode 100644 index 0000000..a3a5f7f --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/pagination.html @@ -0,0 +1,51 @@ +{{- /* pagination */}} +{{- $pgTitle := "See more" -}} +{{- $pgNext := "Next" -}} +{{- $pgPrev := "Previous" -}} +{{- $pgNextLink := false -}} +{{- $pgPrevLink := false -}} + +{{- if .IsPage -}} + {{- $pgTitle = site.Params.ReadOtherPosts | default "Read other posts" -}} + + {{- with .NextInSection -}} + {{- $pgNext = .Title -}} + {{- $pgNextLink = .Permalink -}} + {{- end -}} + + {{- with .PrevInSection -}} + {{- $pgPrev = .Title -}} + {{- $pgPrevLink = .Permalink -}} + {{- end -}} +{{- else -}} + {{- if .Paginator.HasNext -}} + {{- $pgNextLink = .Paginator.Next.URL -}} + {{- end -}} + + {{- if .Paginator.HasPrev -}} + {{- $pgPrevLink = .Paginator.Prev.URL -}} + {{- end -}} +{{- end -}} + +{{- if or $pgNextLink $pgPrevLink -}} + +{{- end -}} diff --git a/themes/hugo-xterm/layouts/partials/post-entries.html b/themes/hugo-xterm/layouts/partials/post-entries.html new file mode 100644 index 0000000..a8cf9a2 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/post-entries.html @@ -0,0 +1,33 @@ +{{- $paginator := .Paginate .Pages -}} +
+ {{- range $paginator.Pages }} +
+ {{- /* list item */ -}} + + {{- if .Title -}} +

+ {{- .Title | markdownify -}} +

+ {{- else -}} + {{- .File.TranslationBaseName | markdownify -}} + {{- end -}} +
+ + {{- if and (not .IsSection) (or .Date .Params.Author) -}} + + {{- end -}} + + {{- with .Params.Description -}} +

{{ . }}

+ {{- end -}} +
+ {{- end }} +
diff --git a/themes/hugo-xterm/layouts/partials/scripts/base.html b/themes/hugo-xterm/layouts/partials/scripts/base.html new file mode 100644 index 0000000..040066f --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/scripts/base.html @@ -0,0 +1,14 @@ +{{- $copy := resources.Get "scripts/copy.js" | js.Build -}} +{{- $menu := resources.Get "scripts/menu.js" | js.Build -}} +{{- $print := resources.Get "scripts/print.js" | js.Build -}} +{{- $theme := resources.Get "scripts/theme.js" | js.Build -}} +{{- $bundle := slice $menu $theme $copy $print | resources.Concat "bundle.js" -}} + +{{- if hugo.IsProduction -}} + {{- $bundle = $bundle | resources.Minify -}} +{{- end -}} + + +{{- if and (not .IsSection) (eq .Type "slides") -}} + {{- partial "slides/scripts.html" . -}} +{{- end }} diff --git a/themes/hugo-xterm/layouts/partials/site-verification.html b/themes/hugo-xterm/layouts/partials/site-verification.html new file mode 100644 index 0000000..5f7dca4 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/site-verification.html @@ -0,0 +1,15 @@ +{{- if site.Params.site_verification.google }} + +{{- end }} + +{{- if site.Params.site_verification.bing }} + +{{- end }} + +{{- if site.Params.site_verification.yandex }} + +{{- end }} + +{{- if site.Params.site_verification.naver }} + +{{- end -}} diff --git a/themes/hugo-xterm/layouts/partials/slides/scripts.html b/themes/hugo-xterm/layouts/partials/slides/scripts.html new file mode 100644 index 0000000..e185c22 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/slides/scripts.html @@ -0,0 +1,26 @@ + + + + + + diff --git a/themes/hugo-xterm/layouts/partials/slides/style.html b/themes/hugo-xterm/layouts/partials/slides/style.html new file mode 100644 index 0000000..3e12a32 --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/slides/style.html @@ -0,0 +1,4 @@ + + + + diff --git a/themes/hugo-xterm/layouts/partials/theme-icon.html b/themes/hugo-xterm/layouts/partials/theme-icon.html new file mode 100644 index 0000000..57d660a --- /dev/null +++ b/themes/hugo-xterm/layouts/partials/theme-icon.html @@ -0,0 +1,7 @@ + + + diff --git a/themes/hugo-xterm/layouts/shortcodes/cv/experience.html b/themes/hugo-xterm/layouts/shortcodes/cv/experience.html new file mode 100644 index 0000000..e7f6fd5 --- /dev/null +++ b/themes/hugo-xterm/layouts/shortcodes/cv/experience.html @@ -0,0 +1,17 @@ +{{- $name := .Get "name" -}} +{{- $date := .Get "date" -}} +{{- $title := .Get "title" -}} +{{- $location := .Get "location" -}} + + +
+
+ {{ $name }} + {{ $date }} +
+ +
+ {{ $title }} + {{ $location }} +
+
diff --git a/themes/hugo-xterm/layouts/shortcodes/figure.html b/themes/hugo-xterm/layouts/shortcodes/figure.html new file mode 100644 index 0000000..e434c61 --- /dev/null +++ b/themes/hugo-xterm/layouts/shortcodes/figure.html @@ -0,0 +1,10 @@ +{{- if .Get "src" }} +
+ + {{- if .Get "caption" }} +
+ {{ .Get "caption" | safeHTML }} +
+ {{- end }} +
+{{- end }} diff --git a/themes/hugo-xterm/layouts/shortcodes/image.html b/themes/hugo-xterm/layouts/shortcodes/image.html new file mode 100644 index 0000000..373aa00 --- /dev/null +++ b/themes/hugo-xterm/layouts/shortcodes/image.html @@ -0,0 +1,12 @@ +{{ if .Get "src" }} + +{{ end }} diff --git a/themes/hugo-xterm/layouts/slides/single.html b/themes/hugo-xterm/layouts/slides/single.html new file mode 100644 index 0000000..bcb9c22 --- /dev/null +++ b/themes/hugo-xterm/layouts/slides/single.html @@ -0,0 +1,81 @@ +{{- define "main" -}} + +
+ +
+ +
+ {{- if .Title }} +

{{ .Title | markdownify }}

+ {{- end }} + + {{- if or (.Params.Date) (.Params.Author) }} + + {{- end }} + + {{- with .Params.Description }} +

{{ . }}

+ {{- end }} +
+ +
+
+
+ + {{- if .Title }} +
+

{{ .Title }}

+ {{- if or .Date .Params.Author }} +

+ {{- with .Date -}} + {{ .Format "2006-01-02" }} + {{- end -}} + + {{- with .Params.Author -}} +  | {{ . }} + {{- end -}} +

+ {{- end }} + + {{- with .Description }} +

{{ . }}

+ {{- end }} +
+ {{- end }} + + + +
+ {{ .RawContent }} +
+ + +
+

Thank you

+
+
+
+
+{{- end -}} diff --git a/themes/hugo-xterm/package-lock.json b/themes/hugo-xterm/package-lock.json new file mode 100644 index 0000000..035e87d --- /dev/null +++ b/themes/hugo-xterm/package-lock.json @@ -0,0 +1,4724 @@ +{ + "name": "hugo-xterm", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hugo-xterm", + "version": "1.0.0", + "license": "GPL-3.0", + "devDependencies": { + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "linkinator": "^4.1.2", + "markdownlint-cli": "^0.33.0", + "prettier": "^2.8.8", + "prettier-plugin-go-template": "^0.0.13", + "stylelint": "^15.6.1", + "stylelint-config-standard-scss": "^9.0.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", + "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.1.1" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", + "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "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/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-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/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.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/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-8.0.2.tgz", + "integrity": "sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==", + "dev": true, + "dependencies": { + "camelcase": "^7.0.0", + "map-obj": "^4.3.0", + "quick-lru": "^6.1.1", + "type-fest": "^2.13.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/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/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", + "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "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/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", + "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "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/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.3.tgz", + "integrity": "sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", + "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "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" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", + "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", + "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "dev": true, + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/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/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", + "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/htmlparser2": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.0.0.tgz", + "integrity": "sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "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-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/linkinator": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-4.1.3.tgz", + "integrity": "sha512-jlpUQeqT3c+oo5Kk8v50NUwycV9JDNj029EmwFBk2Qfa3A9tz2+JyMCB3zQ9D9xR56tC/KNmQkzyGQR0qPCCdA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "escape-html": "^1.0.3", + "gaxios": "^5.0.0", + "glob": "^9.3.2", + "htmlparser2": "^9.0.0", + "marked": "^4.0.3", + "meow": "^11.0.0", + "mime": "^3.0.0", + "server-destroy": "^1.0.1", + "srcset": "^5.0.0" + }, + "bin": { + "linkinator": "build/src/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/linkinator/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/markdownlint": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.27.0.tgz", + "integrity": "sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w==", + "dev": true, + "dependencies": { + "markdown-it": "13.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz", + "integrity": "sha512-zMK1oHpjYkhjO+94+ngARiBBrRDEUMzooDHBAHtmEIJ9oYddd9l3chCReY2mPlecwH7gflQp1ApilTo+o0zopQ==", + "dev": true, + "dependencies": { + "commander": "~9.4.1", + "get-stdin": "~9.0.0", + "glob": "~8.0.3", + "ignore": "~5.2.4", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.2.0", + "markdownlint": "~0.27.0", + "minimatch": "~5.1.2", + "run-con": "~1.2.11" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/markdownlint-cli/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/markdownlint-cli/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "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/markdownlint-cli/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/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/meow": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-11.0.0.tgz", + "integrity": "sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^8.0.2", + "decamelize": "^6.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^4.0.1", + "read-pkg-up": "^9.1.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^3.1.0", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", + "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-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-scurry/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/postcss": { + "version": "8.4.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", + "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.19" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "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/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-go-template": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.13.tgz", + "integrity": "sha512-gG/xT5kd+kCzoMaTchXvdfBdsunyRCV6G8cgdPGPd2V5JGGKXUG7SjzBKU7jaGh2RTeblcAdBb/E+S/duOAMsA==", + "dev": true, + "dependencies": { + "ulid": "^2.3.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "prettier": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", + "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-con": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", + "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/srcset": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.0.tgz", + "integrity": "sha512-SqEZaAEhe0A6ETEa9O1IhSPC7MdvehZtCnTR0AftXk3QhY2UNgb+NApFOUPZILXk/YTDfFxMTNJOBpzrJsEdIA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylelint": { + "version": "15.10.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", + "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", + "dev": true, + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.0", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.1.2", + "@csstools/selector-specificity": "^3.0.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.2.0", + "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.0", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.27.0", + "mathml-tag-names": "^2.1.3", + "meow": "^10.1.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.24", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", + "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", + "dev": true, + "peerDependencies": { + "stylelint": "^15.5.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-11.0.0.tgz", + "integrity": "sha512-EDghTDU7aOv2LTsRZvcT1w8mcjUaMhuy+t38iV5I/0Qiu6ixdkRwhLEMul3K/fnB2v9Nwqvb3xpvJfPH+HduDw==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.6", + "stylelint-config-recommended": "^12.0.0", + "stylelint-scss": "^4.6.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^15.5.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "33.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", + "integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^12.0.0" + }, + "peerDependencies": { + "stylelint": "^15.5.0" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-9.0.0.tgz", + "integrity": "sha512-yPKpJsrZn4ybuQZx/DkEHuCjw7pJginErE/47dFhCnrvD48IJ4UYec8tSiCuJWMA3HRjbIa3nh5ZeSauDGuVAg==", + "dev": true, + "dependencies": { + "stylelint-config-recommended-scss": "^11.0.0", + "stylelint-config-standard": "^33.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^15.5.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", + "dev": true, + "dependencies": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1 || ^15.0.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + } + }, + "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/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/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/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "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/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/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/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz", + "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/themes/hugo-xterm/package.json b/themes/hugo-xterm/package.json new file mode 100644 index 0000000..8160a0a --- /dev/null +++ b/themes/hugo-xterm/package.json @@ -0,0 +1,62 @@ +{ + "name": "hugo-xterm", + "version": "1.0.0", + "description": "Hugo theme for terminal users.", + "main": "index.js", + "scripts": { + "g-fmt": "prettier --config '.prettier.json' --write 'layouts/**/*.html' 'exampleSite/layouts/**/*.html'", + "g-fmt-check": "prettier --config '.prettier.json' --check 'layouts/**/*.html' 'exampleSite/layouts/**/*.html'", + "j-fmt": "prettier --config '.prettier.json' --write 'assets/scripts/*.js'", + "j-fmt-check": "prettier --config '.prettier.json' --check 'assets/scripts/*.js'", + "j-lint": "eslint 'assets/scripts/*.js'", + "j-lint-fix": "eslint --fix 'assets/scripts/*.js'", + "m-links-check": "linkinator --config '.linkinator.config.json' 'README.md' 'exampleSite/content/**/*.md'", + "m-lint": "markdownlint --config '.markdownlint.json' 'README.md' 'exampleSite/content/**/*.md'", + "s-fmt": "prettier --config '.prettier.json' --write 'assets/styles/*.scss'", + "s-fmt-check": "prettier --config '.prettier.json' --check 'assets/styles/*.scss'", + "s-lint": "stylelint --config '.stylelintrc.json' 'assets/styles/*.scss'", + "s-lint-fix": "stylelint --config '.stylelintrc.json' --fix 'assets/styles/*.scss'", + "format": "npm run g-fmt && npm run j-fmt && npm run s-fmt", + "format-check": "npm run g-fmt-check && npm run j-fmt-check && npm run s-fmt-check", + "lint": "npm run j-lint && npm run m-lint && npm run s-lint", + "lint-fix": "npm run j-lint-fix && npm run s-lint-fix", + "test": "npm run format-check && npm run lint && npm run m-links-check" + }, + "repository": { + "type": "git", + "url": "https://gitlab.com/manid2/hugo-xterm/" + }, + "keywords": [ + "blog", + "cv", + "dark-theme", + "docs", + "hugo", + "hugo-theme", + "light-theme", + "minimal", + "personal-website", + "portfolio-website", + "slides" + ], + "author": "Mani Kumar", + "license": "GPL-3.0", + "bugs": { + "url": "https://gitlab.com/manid2/hugo-xterm/issues" + }, + "homepage": "https://manid2.github.io/hugo-xterm/", + "devDependencies": { + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "linkinator": "^4.1.2", + "markdownlint-cli": "^0.33.0", + "prettier": "^2.8.8", + "prettier-plugin-go-template": "^0.0.13", + "stylelint": "^15.6.1", + "stylelint-config-standard-scss": "^9.0.0" + } +} diff --git a/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-01-dark.png b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-01-dark.png new file mode 100644 index 0000000..3d7f384 Binary files /dev/null and b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-01-dark.png differ diff --git a/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-02-light.png b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-02-light.png new file mode 100644 index 0000000..ab44fbf Binary files /dev/null and b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-02-light.png differ diff --git a/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-03-cv.png b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-03-cv.png new file mode 100644 index 0000000..9ce43e4 Binary files /dev/null and b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-03-cv.png differ diff --git a/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-04-slides.png b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-04-slides.png new file mode 100644 index 0000000..dcfaf8b Binary files /dev/null and b/themes/hugo-xterm/static/screenshots/hugo-xterm-ss-04-slides.png differ diff --git a/themes/hugo-xterm/theme.toml b/themes/hugo-xterm/theme.toml new file mode 100644 index 0000000..a24e909 --- /dev/null +++ b/themes/hugo-xterm/theme.toml @@ -0,0 +1,44 @@ +name = "xterm" +license = "GPL-3.0" +licenselink = "https://github.com/manid2/hugo-xterm/blob/main/LICENSE" +description = "Hugo theme designed for reading and printing text with dark and light modes." + +# The home page of the theme, where the source can be found. +homepage = "https://github.com/manid2/hugo-xterm/" + +# Demo site. +demosite = "https://manid2.github.io/hugo-xterm/" + +tags = [ + "blog", + "contact", + "cv", + "slides", + "dark", + "light", + "minimal", + "personal", + "portfolio", + "responsive" +] + +features = [ + "blog", + "clean", + "minimal", + "portfolio" +] + +min_version = 0.110 + +[author] + name = "Mani Kumar" + homepage = "https://manid2.gitlab.io/" + twitter = "https://twitter.com/mani_d2" + +# Starter code taken from this theme +[original] + name = "terminal" + author = "panr" + homepage = "https://radoslawkoziel.pl" + repo = "https://github.com/panr/hugo-theme-terminal"