diff --git a/.eleventy.js b/.eleventy.js
new file mode 100644
index 0000000..b61465d
--- /dev/null
+++ b/.eleventy.js
@@ -0,0 +1,224 @@
+// @param {import("@11ty/eleventy/src/UserConfig")} eleventyConfig
+
+// Imports --------------------------------------------
+
+const {
+ EleventyI18nPlugin,
+ EleventyHtmlBasePlugin,
+ EleventyRenderPlugin,
+} = require('@11ty/eleventy');
+const markdownIt = require('markdown-it');
+const markdownItAttrs = require('markdown-it-attrs');
+const markdownItFootnote = require('markdown-it-footnote');
+const markdownItIns = require('markdown-it-ins');
+const markdownItMark = require('markdown-it-table-of-contents');
+const markdownItSub = require('markdown-it-sub');
+const markdownItSup = require('markdown-it-sup');
+const markdownItTableOfContents = require('markdown-it-table-of-contents');
+const pluginEmbedEverything = require('eleventy-plugin-embed-everything');
+const pluginRSS = require('@11ty/eleventy-plugin-rss');
+const pluginSyntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
+
+const markdownItAnchor = require('markdown-it-anchor');
+const pluginTOC = require('eleventy-plugin-toc');
+
+// Local Imports --------------------------------------
+
+const {formatDate} = require('./src/_config/filters/dates');
+
+// 11ty -----------------------------------------------
+
+module.exports = (eleventyConfig) => {
+ // Global Settings --------------------------------
+
+ eleventyConfig.addGlobalData('settings', {
+ // these get merged with _data/settings.js
+ url:
+ // process.env.URL ||
+ // process.env.VERCEL_URL ||
+ // process.env.CF_PAGES_URL ||
+ 'https://miguelpimentel.do',
+ isProduction: process.env.NODE_ENV === 'production',
+ isProduction: process.env.VERCEL_ENV === 'production',
+ // isStaging:
+ // (process.env.URL && process.env.URL.includes('github.io')) ||
+ // (process.env.VERCEL_URL && process.env.VERCEL_URL.includes('vercel.app')) ||
+ // (process.env.CF_PAGES_URL &&
+ // process.env.CF_PAGES_URL.includes('pages.dev')) ||
+ // false,
+ });
+
+ // Watch Targets ----------------------------------
+
+ eleventyConfig.addWatchTarget('./src/assets');
+ eleventyConfig.addWatchTarget('./src/_layouts');
+
+ // Layouts ----------------------------------------
+
+ eleventyConfig.addLayoutAlias('base', 'base.njk');
+ eleventyConfig.addLayoutAlias('rss', 'rss.njk');
+ eleventyConfig.addLayoutAlias('rssxsl', 'rss.xsl.njk');
+ eleventyConfig.addLayoutAlias('json', 'json.njk');
+ eleventyConfig.addLayoutAlias('manifest', 'manifest.njk');
+ eleventyConfig.addLayoutAlias('home', 'home.njk');
+ eleventyConfig.addLayoutAlias('page', 'page.njk');
+ eleventyConfig.addLayoutAlias('post', 'post.njk');
+ eleventyConfig.addLayoutAlias('posts', 'posts.njk');
+ eleventyConfig.addLayoutAlias('note', 'note.njk');
+ eleventyConfig.addLayoutAlias('notes', 'notes.njk');
+
+ // Plugins ----------------------------------------
+
+ const markdownItOptions = {
+ html: true,
+ linkify: true,
+ typographer: true,
+ };
+
+ const md = markdownIt(markdownItOptions)
+ .use(require('markdown-it-anchor'))
+ .use(require('markdown-it-attrs'))
+ .use(require('markdown-it-footnote'))
+ .use(require('markdown-it-table-of-contents'))
+ .use(function (md) {
+ // Recognize Mediawiki links ([[text]])
+ md.linkify.add('[[', {
+ validate: /^\s?([^\[\]\|\n\r]+)(\|[^\[\]\|\n\r]+)?\s?\]\]/,
+ normalize: (match) => {
+ const parts = match.raw.slice(2, -2).split('|');
+ parts[0] = parts[0].replace(/.(md|markdown)\s?$/i, '');
+ // parts[0] = parts[0].replace(/\b\s+\b/, '-');
+ match.text = (parts[1] || parts[0]).trim();
+ match.url = `/en/notes/${parts[0].trim()}/`;
+ },
+ });
+ });
+
+ eleventyConfig.addPlugin(require('./src/_config/plugins/drafts'));
+ eleventyConfig.addPlugin(pluginTOC, {
+ ul: true,
+ });
+ eleventyConfig.addPlugin(pluginRSS);
+ eleventyConfig.addPlugin(pluginSyntaxHighlight);
+ eleventyConfig.addPlugin(EleventyHtmlBasePlugin);
+ eleventyConfig.addPlugin(EleventyRenderPlugin);
+ eleventyConfig.addPlugin(EleventyI18nPlugin, {defaultLanguage: 'en'});
+ eleventyConfig.addPlugin(pluginEmbedEverything, {
+ use: ['twitter', 'youtube', 'vimeo'],
+ twitter: {
+ options: {
+ embedClass: 'oembed oembed-twitter',
+ doNotTrack: true,
+ },
+ },
+ vimeo: {
+ options: {
+ embedClass: 'oembed oembed-vimeo',
+ //wrapperStyle
+ },
+ },
+ youtube: {
+ options: {
+ embedClass: 'oembed oembed-youtube',
+ modestBranding: true,
+ lazy: true,
+ lite: {
+ thumbnailQuality: 'maxresdefault',
+ css: {
+ inline: true,
+ },
+ js: {
+ inline: true,
+ },
+ },
+ },
+ },
+ });
+
+ // Transforms -------------------------------------
+
+ eleventyConfig.addPlugin(require('./src/_config/transforms/css'));
+ eleventyConfig.addPlugin(require('./src/_config/transforms/html'));
+ eleventyConfig.addPlugin(require('./src/_config/transforms/js'));
+
+ // Shortcodes --------------------------------------
+
+ eleventyConfig.addShortcode('version', () => `${+new Date()}`);
+ eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`);
+ eleventyConfig.addShortcode(
+ 'build',
+ () => `${new Date().toISOString().split('T')[0]}`,
+ );
+ eleventyConfig.addShortcode(
+ 'image',
+ require('./src/_config/shortcodes/image'),
+ );
+ eleventyConfig.addShortcode('currentDate', (date = DateTime.now()) => {
+ return date;
+ });
+
+ // Filters ----------------------------------------
+
+ eleventyConfig.addFilter('formatDate', formatDate);
+ eleventyConfig.addFilter(
+ 'languageFilter',
+ require('./src/_config/filters/language'),
+ );
+ eleventyConfig.addFilter(
+ 'translate',
+ require('./src/_config/filters/translate'),
+ );
+ eleventyConfig.addFilter(
+ 'mimetype',
+ require('./src/_config/filters/mimetype'),
+ );
+ eleventyConfig.addFilter('cdnify', require('./src/_config/filters/cdnify'));
+ eleventyConfig.addFilter('widont', require('./src/_config/filters/widont'));
+ eleventyConfig.addFilter('random', require('./src/_config/filters/random'));
+ eleventyConfig.addFilter('where', require('./src/_config/filters/where'));
+ eleventyConfig.addFilter('sort', require('./src/_config/filters/sort'));
+ eleventyConfig.addFilter('base64', require('./src/_config/filters/base64'));
+ eleventyConfig.addFilter(
+ 'readingTime',
+ require('./src/_config/filters/readingtime'),
+ );
+ eleventyConfig.addFilter('markdownify', (string) => {
+ return md.render(string);
+ });
+
+ // Passthrough -------------------------------------
+
+ eleventyConfig.addPassthroughCopy({'./src/assets/': './assets/'});
+
+ // Markdown ----------------------------------------
+
+ eleventyConfig.setLibrary('md', md);
+ eleventyConfig.amendLibrary('md', (mdLib) => {
+ mdLib.use(markdownItIns);
+ mdLib.use(markdownItMark);
+ mdLib.use(markdownItSub);
+ mdLib.use(markdownItSup);
+ mdLib.use(markdownItAttrs);
+ mdLib.use(markdownItFootnote);
+ mdLib.use(markdownItTableOfContents);
+ mdLib.use(markdownItAnchor);
+ });
+
+ // 11ty Settings -----------------------------------
+
+ return {
+ markdownTemplateEngine: 'njk',
+ htmlTemplateEngine: 'njk',
+
+ // If your site deploys to a subdirectory, change `pathPrefix`
+ pathPrefix: '/',
+
+ dir: {
+ input: 'src',
+ output: 'dist',
+ layouts: '_layouts',
+ includes: '_includes',
+ data: '_data',
+ },
+ };
+};
diff --git a/.frontmatter/database/mediaDb.json b/.frontmatter/database/mediaDb.json
new file mode 100644
index 0000000..1380a1c
--- /dev/null
+++ b/.frontmatter/database/mediaDb.json
@@ -0,0 +1 @@
+{"src":{"assets":{"img":{"en.jpg":{"caption":"Photo by Scott Evans on Unsplash.","alt":"Yellow rapeseed flowers bloom against a clear blue sky.","title":"English countryside"},"sv.jpg":{"caption":"Foto av Scott Evans på Unsplash","alt":"Båten Stockholms Ström 2 glider över vattnet med Stockholm i fjärran.","title":"Stockholm archipelago"},"screenshots.png":{"caption":"Screenshot of elva with Front Matter CMS.","alt":"Screenshot of elva in VSCodium and the browser.","title":"Elva screenshots"}}}}}
\ No newline at end of file
diff --git a/.frontmatter/database/pinnedItemsDb.json b/.frontmatter/database/pinnedItemsDb.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/.frontmatter/database/pinnedItemsDb.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/.frontmatter/database/taxonomyDb.json b/.frontmatter/database/taxonomyDb.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/.frontmatter/database/taxonomyDb.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/.frontmatter/scripts/opengraph-template.html b/.frontmatter/scripts/opengraph-template.html
new file mode 100644
index 0000000..136db04
--- /dev/null
+++ b/.frontmatter/scripts/opengraph-template.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{title}}
+
+
+
+
\ No newline at end of file
diff --git a/.frontmatter/scripts/opengraph.js b/.frontmatter/scripts/opengraph.js
new file mode 100644
index 0000000..afe26a3
--- /dev/null
+++ b/.frontmatter/scripts/opengraph.js
@@ -0,0 +1,21 @@
+const fs = require('fs')
+const slugify = require('@sindresorhus/slugify');
+const nodeHtmlToImage = require('node-html-to-image');
+
+const args = process.argv;
+const template = fs.readFileSync(args[1].replace('opengraph.js', 'opengraph-template.html'), 'utf8');
+const frontmatter = args[4] && typeof args[4] === "string" ? JSON.parse(args[4]) : null;
+const data = {...frontmatter, ...{ 'url': 'http://localhost:8080' }};
+
+nodeHtmlToImage({
+ output: args[2] + '/src/assets/img/opengraph-' + slugify(data.title) + '.png',
+ html: template,
+ content: data
+}).then(() => {
+ const output = JSON.stringify({
+ 'frontmatter': {
+ 'thumbnail': '/assets/img/opengraph-' + slugify(data.title) + '.png'
+ }
+ });
+ console.log(output);
+}).catch(e => console.log(e?.message || e));
\ No newline at end of file
diff --git a/.frontmatter/templates/default.md b/.frontmatter/templates/default.md
new file mode 100644
index 0000000..c647fcc
--- /dev/null
+++ b/.frontmatter/templates/default.md
@@ -0,0 +1,5 @@
+---
+title: "{{title}}"
+date: "{{now}}"
+draft: true
+---
diff --git a/.frontmatter/ui/image.js b/.frontmatter/ui/image.js
new file mode 100644
index 0000000..301f46b
--- /dev/null
+++ b/.frontmatter/ui/image.js
@@ -0,0 +1,12 @@
+import { registerCardImage, enableDevelopmentMode } from "https://cdn.jsdelivr.net/npm/@frontmatter/extensibility/+esm";
+//enableDevelopmentMode();
+
+/**
+ * @param {string} filePath - The path of the file
+ * @param {object} data - The metadata of the file
+ * @returns {string} - The HTML to be rendered in the card footer
+ */
+registerCardImage(async (filePath, metadata) => {
+ const image = metadata.fmPreviewImage ? metadata.fmPreviewImage : `${metadata.fmWebviewUrl}/src/assets/img/opengraph-default.png`;
+ return ` `;
+});
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index bd9ff61..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,78 +0,0 @@
-# Apply override to all files in the directory
-*.md linguist-detectable
-
-# Auto detect text files and perform LF normalization
-* text=auto eol=lf
-
-# The above will handle all files NOT found below
-# Documents
-*.doc diff=astextplain
-*.DOC diff=astextplain
-*.docx diff=astextplain
-*.DOCX diff=astextplain
-*.dot diff=astextplain
-*.DOT diff=astextplain
-*.pdf diff=astextplain
-*.PDF diff=astextplain
-*.rtf diff=astextplain
-*.RTF diff=astextplain
-*.md text diff=markdown
-*.mdx text diff=markdown
-*.tex text diff=tex
-*.adoc text
-*.csv text
-*.txt text
-*.sql text
-*.epub diff=astextplain
-
-# Graphics
-*.png binary
-*.jpg binary
-*.jpeg binary
-*.gif binary
-*.tif binary
-*.tiff binary
-*.ico binary
-# SVG treated as text by default.
-*.svg binary
-# If you want to treat it as binary,
-# use the following line instead.
-# *.svg text
-*.eps binary
-
-# Scripts
-*.bash text eol=lf
-*.sh text eol=lf
-# These are explicitly windows files and should use crlf
-*.bat text eol=crlf
-*.cmd text eol=crlf
-*.ps1 text eol=crlf
-
-# Serialisation
-*.json text
-*.toml text
-*.xml text
-*.yaml text
-*.yml text
-
-# Archives
-*.7z binary
-*.gz binary
-*.tar binary
-*.tgz binary
-*.zip binary
-
-# Text files where line endings should be preserved
-*.patch -text
-
-# Lua Source files
-*.lua text
-
-# Luadoc output
-*.html text diff=html
-*.css text diff=css
-
-# Exclude files from exporting
-.gitattributes export-ignore
-.gitignore export-ignore
-.gitkeep export-ignore
\ No newline at end of file
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..db9ba41
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,6 @@
+version: 2
+updates:
+ - package-ecosystem: 'npm'
+ directory: '/'
+ schedule:
+ interval: 'weekly'
diff --git a/.github/workflows/build-only.yml b/.github/workflows/build-only.yml
deleted file mode 100644
index be9d2c5..0000000
--- a/.github/workflows/build-only.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: Zola - Build only
-
-on:
- # push:
- # branches:
- # - main
- pull_request:
- workflow_dispatch:
-
-permissions:
- contents: read
- pages: write
- id-token: write
-
-concurrency:
- group: "pages"
- cancel-in-progress: false
-
-defaults:
- run:
- shell: bash
-
-jobs:
- build-only:
- runs-on: ubuntu-latest
- # if: github.ref != 'refs/heads/main'
- steps:
- - name: Checkout main
- uses: actions/checkout@v4
- - name: Install Zola
- uses: taiki-e/install-action@zola
- - name: Build Zola
- run: zola check
- env:
- BUILD_ONLY: true
- BUILD_FLAGS: --drafts
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/deploy-zola.yml b/.github/workflows/deploy-zola.yml
deleted file mode 100644
index 3bc514d..0000000
--- a/.github/workflows/deploy-zola.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Zola - Build and Deploy to GH Pages
-
-on:
- # push:
- # branches:
- # - main
- # pull_request:
- workflow_dispatch:
-
-permissions:
- contents: read
- pages: write
- id-token: write
-
-concurrency:
- group: "pages"
- cancel-in-progress: false
-
-defaults:
- run:
- shell: bash
-
-jobs:
- build:
- runs-on: ubuntu-latest
- # if: github.ref != 'refs/heads/main'
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Install Zola
- uses: taiki-e/install-action@zola
- - name: Build Zola
- run: zola build
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v3
- with:
- path: ./public
-
- deploy:
- runs-on: ubuntu-latest
- needs: build
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d70ebaa..0000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-public
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..9e4b192
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,10 @@
+.cache
+.DS_Store
+.env
+.frontmatter
+# .gitignore
+dist
+node_modules
+package-lock.json
+pnpm-lock.yaml
+src/common
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..9ccb27c
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,31 @@
+{
+ "$schema": "https://json.schemastore.org/prettierrc.json",
+ "printWidth": 80,
+ "tabWidth": 2,
+ "useTabs": false,
+ "semi": true,
+ "singleQuote": true,
+ "quoteProps": "consistent",
+ "trailingComma": "all",
+ "bracketSpacing": false,
+ "arrowParens": "always",
+ "proseWrap": "preserve",
+ "endOfLine": "auto",
+ "embeddedLanguageFormatting": "auto",
+ "singleAttributePerLine": true,
+ "overrides": [
+ {
+ "files": ".prettierrc",
+ "options": {
+ "parser": "json"
+ }
+ },
+ {
+ "files": "*.njk",
+ "options": {
+ "parser": "html"
+ }
+ }
+ ],
+ "plugins": ["prettier-plugin-sh"]
+}
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..ce0d4b2
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["eliostruyf.vscode-front-matter"]
+}
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 2c7ea5e..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Miguel Pimentel
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/README.md b/README.md
index 6b80e17..271d18e 100644
--- a/README.md
+++ b/README.md
@@ -1,66 +1,175 @@
-# semanticdata.github.io
+# 🦝 MiguelPimentel.do
-
-
-
-
+
+
+
+
-Previous personal website powered by [Zola](https://www.getzola.org/), and themed with [serene](https://github.com/isunjn/serene).
-
-## Table of Contents
-
-
-Show/Hide
-
-- [semanticdata.github.io](#semanticdatagithubio)
- - [Table of Contents](#table-of-contents)
- - [Changes from Upstream](#changes-from-upstream)
- - [Accessibility](#accessibility)
- - [Useful Commands](#useful-commands)
- - [Acknowledgments](#acknowledgments)
- - [License](#license)
-
-
-
-
+My personal website built with [11ty](https://www.11ty.dev/).
## Changes from Upstream
-- New *layout*: `Page`.
-- New header *partial* `_header-journal.html`.
-- New `/now`, `/uses`, and `/meta` sections and pages.
-
-### Accessibility
-
-Replaced all failing[^1] color variables with shades of the same color that returned passing scores.
-
-| Variable | Old Color | New Color | Old Score | New Score |
-| ------------------------- | --------- | --------- | --------- | --------- |
-| `primary-color` | `#698BCF` | `#3F537C` | `3.39` | `7.67` |
-| `primary-color-dark` | `#698BCF` | `#96ADDD` | `4.75` | `7.14` |
-| `text-pale-color` | `#9AA2B9` | `#4C515C` | `2.55` | `7.96` |
-| `text-pale-color-dark` | `#5d6470` | `#ADB1B7` | `2.70` | `7.47` |
-| `callout-note-color` | `#698BCF` | `#3F537C` | `3.39` | `7.67` |
-| `callout-note-color-dark` | `#698BCF` | `#96ADDD` | `4.75` | `7.14` |
+- Switched from using `npm` to `pnpm`.
+- Added Prettier alongside its config/ignore files.
+- Added new script `run check` to check the code with Prettier.
+- Added script `run format` to format the code with Prettier.
+- Hid the _unused_ language toggle.
+- Added new `Journal`, `Uses`, and `Projects` pages.
+- Added [Pacifico](https://fonts.google.com/specimen/Pacifico) as font family for page titles.
+- Added [Bitter](https://fonts.google.com/specimen/Bitter) as font family for other text.
+- Implemented new `Notes` section.
+- Implemented **Wikilinks** support via `.eleventy.js`.
+- Implemented **Backlinks** support via `notes.11tydata.js`.
+- Added new [Markdown-It](https://github.com/markdown-it/markdown-it) plugins:
+ - [Attributes](https://www.npmjs.com/package/@gerhobbelt/markdown-it-attrs)
+ - [Mark](https://www.npmjs.com/package/markdown-it-mark)
+ - [Table of Contents](https://www.npmjs.com/package/markdown-it-table-of-contents)
## Useful Commands
-| **Command** | Description |
-| ------------ | --------------------------------------------------------------------------------- |
-| `zola build` | Only builds the site into the `/public` folder, which is ignored in `.gitignore`. |
-| `zola serve` | Builds and serves the site locally, watches for changes, refreshes automatically. |
+### Install dependencies
+
+```bash
+pnpm install
+```
-## Acknowledgments
+### Update dependencies
-The icons used throughout the site are kindly provided by [UXWing](https://uxwing.com/license/), and [Remix Icon](https://remixicon.com/license/).
+```bash
+pnpm update
+```
-## License
+### Start local server
-Source code in this repository is available under the [MIT License](LICENSE).
+```bash
+pnpm start
+```
+
+### Check formatting with [Prettier](https://prettier.io/)
+
+```bash
+pnpm run check
+```
+
+### Format repo with [Prettier](https://prettier.io/)
+
+```bash
+pnpm run format
+```
+
+## Different Useful Commands Section for Testing Purposes
+
+```bash
+# Install dependencies
+pnpm install
+```
+
+```bash
+# Update dependencies
+pnpm update
+```
-[^1]: Color Contrast Checker: passing scores ≥ 7.00.
+```bash
+# Start local server
+pnpm start
+```
+
+```bash
+# Check formatting with Prettier
+pnpm run check
+```
+
+```bash
+# Format repo with Prettier
+pnpm run format
+```
+
+## Another One
+
+```bash
+# Install dependencies
+pnpm install
+
+# Update dependencies
+pnpm update
+
+# Start local server
+pnpm start
+
+# Check formatting with Prettier
+pnpm run check
+
+# Format repo with Prettier
+pnpm run format
+```
+
+## Frontmatter
+
+Check them out here:
+
+### Example
+
+```markdown
+---
+layout: page
+title: Main page title, heading level one
+date: 2023-08-04
+modified: 2023-08-04
+thumbnail: /assets/img/test.jpg
+thumbnailDescription: An alt text description for the thumbnail image
+tags: 'page-demo'
+draft: true
+eleventyExcludeFromCollections: true
+seo:
+ title: Custom title (defaults to title)
+ description: SEO description
+ slug: mmm-slugs
+ changeFrequency: daily
+ sitemapPriority: '1.0'
+ excludeFromSitemap: true
+ noIndex: true
+---
+```
+
+### Descriptions
+
+- `layout` — [Page layout](https://www.11ty.dev/docs/layouts/) for the page. Default is `post` for posts and `page` for pages.
+- `title` — The title of the current page.
+- `date` — [Published date](https://www.11ty.dev/docs/dates/). You can set special values here like `Last Modified`.
+- `modified` — Modified date.
+- `thumbnail` — Relative path to thumbnail / opengraph image. Size `1200px x 630px`.
+- `thumbnailDescription` — Alt text for thumbnail.
+- `tags` – [Tags](https://www.11ty.dev/docs/collections/#add-to-a-collection-using-tags) are currently used for custom body classes.
+- `draft` — Draft pages will appear locally and on staging but not in production.
+- `eleventyExcludeFromCollections` — [Hide from 11ty collections](https://www.11ty.dev/docs/collections/#how-to-exclude-content-from-collections).
+- `seo.title` — Set custom page title for search engines and opengraph.
+- `seo.description` — Set the page description for search engines and opengraph.
+- `seo.slug` — Set a new slug for the page that is different from the filename.
+- `seo.changeFrequency` — [How often does this page change](https://www.sitemaps.org/protocol.html#changefreqdef)?
+- `seo.sitemapPriority` — [The priority of this URL relative to other URLs on your site](https://www.sitemaps.org/protocol.html#prioritydef).
+- `seo.excludeFromSitemap` — Hide this page from your sitemap.xml.
+- `seo.noIndex` — Discourage search engine indexing.
+
+Nearly all front matter is optional, except for titles (and dates for posts).
+
+## Image Embedding
+
+```njk
+{% image "/assets/img/en.jpg", "Yellow rapeseed flowers bloom against a clear blue sky", "100vw", "", "rounded", "lazy", "auto", "async", "2400", "1600" %}
+```
+
+## Personalization Checklist
+
+- [ ] Setup a custom template for your open graph images (`.frontmatter/scripts/opengraph-template.html`)
+- [ ] You many not need [Alpine.js](https://alpinejs.dev/) which can be removed from `/src/assets/js/bundle.njk`
+- [ ] If you enable Photon CDN support [familiarize yourself with these limitations](https://jetpack.com/support/site-accelerator/#limitations)
+- [ ] Set your preferred image sizes and formats in the image shortcode `/src/_config/shortcodes/image.js`
+- [ ] If you add more front matter, you may wish to edit `frontmatter.json` to add [Front Matter CMS](https://frontmatter.codes/) support
+- [ ] Use [Eleventy Fetch](https://www.11ty.dev/docs/plugins/fetch/) to grab some API data
+
+## Acknowledgements and Attributions
+
+This project is based on [elva](https://github.com/scottsweb/elva) and [eleventy-garden](https://github.com/binyamin/eleventy-garden).
diff --git a/config.toml b/config.toml
deleted file mode 100644
index cbcbba9..0000000
--- a/config.toml
+++ /dev/null
@@ -1,84 +0,0 @@
-base_url = "https:/semanticdata.github.io"
-title = "semanticdata"
-description = "Miguel Pimentel. Problem solver, hobby developer, music enjoyer, and public infrastructure enthusiast."
-default_language = "en"
-# theme = "serene"
-output_dir = "public"
-compile_sass = true
-minify_html = true
-build_search_index = false # Keep this false, search is temporarily unsupported
-generate_feed = false # Whether to generate a feed file in root, read docs for more info about rss feed
-feed_filename = "feed.xml" # The file name of feed, "feed.xml" / "atom.xml" / "rss.xml", read docs for more info
-taxonomies = [{ name = "tags" }, { name = "categories" }]
-
-[markdown]
-highlight_code = true
-highlight_theme = "css"
-extra_syntaxes_and_themes = ["highlight_themes"]
-highlight_themes_css = [
- { theme = "serene-light", filename = "hl-light.css" },
- { theme = "serene-dark", filename = "hl-dark.css" },
-]
-render_emoji = false
-external_links_target_blank = false
-external_links_no_follow = true
-external_links_no_referrer = true
-smart_punctuation = false
-
-[slugify]
-paths = "on"
-taxonomies = "on"
-anchors = "on"
-
-[extra]
-
-name = "Miguel Pimentel" # Your name
-id = "semanticdata" # Your id / username / handle
-bio = "Problem solver, hobby developer, music enjoyer, and public infrastructure enthusiast." # Your bio
-avatar = "img/avatar.webp" # Your avatar
-links = [ # Your links
- { name = "GitHub", icon = "github", url = "https://github.com/semanticdata/" },
- { name = "Email", icon = "email", url = "mailto:contact@miguelpimentel.do" },
- # { name = "Twitter", icon = "twitter", url = "https://twitter.com/" },
-]
-
-homepage_layout = "about" # "about" | "list"
-
-sections = [
- { name = "blog", path = "/blog", is_external = false },
- { name = "projects", path = "/projects", is_external = false },
- { name = "journal", path = "/journal", is_external = false },
- # { name = "about", path = "/about", is_external = false },
- # { name = "now", path = "/now", is_external = false },
- # { name = "uses", path = "/uses", is_external = false },
- # { name = "github", path = "https://github.com/", is_external = true },
-]
-blog_section_path = "/blog"
-
-nav_separator = "::"
-nav_wrapper_left = "{"
-nav_wrapper_right = "} ;"
-nav_wrapper_separator = ","
-
-display_id = true # Whether to display your id on homepage
-blog_categorized = false # Whether to categorize blog posts
-blur_effect = true # Whether to turn on blur effect on navigation bar
-back_to_top = true # Whether to show back-to-top button on post pages
-
-toc = true # Whether to show Table-Of-Contents by default
-copy = true # Whether to add a copy button on code blocks by default
-comment = false # Whether to show giscus comment section by default, see https://giscus.app for more info
-display_tags = true # Whether to display tags on post pages by default
-truncate_summary = false # Whether to truncate the summary of a post by default
-
-outdate_alert = false # Whether to show outdate alert by default
-outdate_alert_days = 120 # How many days will a post be outdated by default
-outdate_alert_text_before = "This article was last updated "
-outdate_alert_text_after = " days ago and may be out of date."
-
-footer_copyright = "© 2023 semanticdata"
-footer_credits = true # Whether to show "powered by zola and serene" in footer
-
-not_found_title = "404"
-not_found_error_text = "Not Found"
-not_found_recover_text = "« back to home »"
diff --git a/content/_index.md b/content/_index.md
deleted file mode 100644
index f594a98..0000000
--- a/content/_index.md
+++ /dev/null
@@ -1,12 +0,0 @@
-+++
-template = 'home.html'
-
-[extra]
-lang = 'en'
-+++
-
-Hi, I'm Miguel. Problem solver, hobby developer, music enjoyer, and public infrastructure enthusiast based in Minnesota, USA. You can find me under different nicknames around (e.g. [Data](https://na.finalfantasyxiv.com/lodestone/character/20296985/), [Ezra](https://wiki.eveuniversity.org/User:Ezra_Salaz)). I think a lot, work a lot, have existential crises, and know just enough about making websites to make me dangerous. I enjoy writing, reading, coding, listening to music, and love having a problem to solve.
-
-Would you like to know more? Consider checking out [/now](/now), [/uses](/uses), or my [digital garden](https://forgetfulnotes.com/).
-
-Please tell your dog (or cat) I said "Hi"!
diff --git a/content/blog/_index.md b/content/blog/_index.md
deleted file mode 100644
index a1f600f..0000000
--- a/content/blog/_index.md
+++ /dev/null
@@ -1,12 +0,0 @@
-+++
-title = "blog"
-description = "My blog section."
-sort_by = "date"
-template = "blog.html"
-page_template = "post.html"
-insert_anchor_links = "right"
-generate_feed = true
-
-[extra]
-lang = 'en'
-+++
\ No newline at end of file
diff --git a/content/blog/ssd-nvme-comparison.md b/content/blog/ssd-nvme-comparison.md
deleted file mode 100644
index 901d79e..0000000
--- a/content/blog/ssd-nvme-comparison.md
+++ /dev/null
@@ -1,157 +0,0 @@
-+++
-title = "SSD / NVMe Comparison"
-date = 2023-07-28
-draft = false
-
-[taxonomies]
-tags = ["archived"]
-
-[extra]
-lang = "en"
-toc = true
-comment = true
-copy = true
-math = false
-mermaid = false
-outdate_alert = false
-outdate_alert_days = 120
-display_tags = true
-truncate_summary = false
-+++
-
-See the [Canonical Publication](https://miguelpimentel.do/en/writing/ssd-nvme/) for this Blog post.
-
-This page was originally published on July 28, 2023. Its main goal was to aid in selecting SSD, and NVMe drives during a Micro Center sale.
-
-## Storage Technologies
-
-### 3D NAND
-
-- The most basic of modern SSD technologies. Great for throwing on cheap systems, home servers, anything non-critical really.
-- It is not recommended to host your Operating System on 3D NAND, or QLC.
-
-### Quad Level Cell (QLC)
-
-- QLC (Quad Level Cell) is cheaper to manufacture than TLC (Triple Level Cell).
-- QLC is much slower and less durable to constant writing than TLC.
-- It is not recommended to host your Operating System on 3D NAND, or QLC.
-
-### Triple Level Cell (TLC)
-
-- TLC is more reliable when compared to QLC.
-- MLC is a Triple Level Cell based Samsung technology.
-
-### Multi Level Cell (MLC)
-
-- MLC is a Triple Level Cell based Samsung technology.
-
-Let's break it down:
-
-1. MLC V-NAND (Best)
-2. V-NAND (TLC Equiv.)
-3. TLC (V-NAND Equiv.)
-4. QLC (Cheap, less reliable)
-5. 3D NAND (Basic)
-
-## How Are SSDs Scored
-
-### Storage
-
-- 1 point per GB
- - Less accurate the bigger the SSD
- - 3 TB and higher drives scale exp/log instead of linearly.
-
-### Price
-
-Based on price per $1.
-Selected $0.10 as the baseline after averaging some calculations.
-
-- 1 point for every $0.01 / GB below $0.10
-
-### Technology Coefficient
-
-- 3D NAND Coefficient = 0.5 (Big Penalty)
-- QLC Coefficient = 0.75 (Small Penalty)
-- TLC Coefficient = 1.0 (No Change)
-- MLC V-NAND coefficient = 1.25 (Small Advantage)
-
-## NVMe M.2 2280 M Key
-
-| Brand | Storage | Price | Notes |
-| ------------ |:-------:|:-----:| ---------- |
-| 970 EVO Plus | 500 GB | $35 | MLC V-NAND |
-| 970 EVO Plus | 2 TB | $100 | MLC V-NAND |
-| 970 EVO Plus | 1 TB | $50 | V-NAND |
-| 980 | 1 TB | $50 | MLC V-NAND |
-| 980 Pro | 2 TB | $120 | MLC V-NAND |
-| 980 Pro | 1 TB | $70 | V-NAND |
-| 990 PRO | 1 TB | $80 | MLC V-NAND |
-| Crucial P3 | 1 TB | $40 | 3D NAND |
-| Inland | 500 GB | $23 | QLC |
-| Inland | 1 TB | $40 | QLC |
-| Inland | 2 TB | $70 | QLC |
-| Performance | 1 TB | $55 | TLC |
-| Prime | 500 GB | $30 | TLC |
-| Prime | 1 TB | $50 | TLC |
-
-## SSD
-
-| Brand | Storage | Price | Notes |
-| ------------ |:-------:|:-----:| ---------- |
-| Inland | 1 TB | $50 | TLC |
-| Inland | 512 GB | $25 | TLC |
-| Platinum | 2 TB | $80 | TLC |
-| Platinum | 1 TB | $43 | TLC |
-| Professional | 256 GB | $20 | 3D NAND |
-| Professional | 125 GB | $15 | TLC |
-| 870 EVO | 1 TB | $50 | MLC V-NAND |
-| 870 EVO | 4 TB | $220 | MLC V-NAND |
-| 870 EVO | 500 GB | $40 | MLC V-NAND |
-| 870 QVO | 1 TB | $70 | QLC V-NAND |
-
-## Final Scores
-
-### NVMe
-
-| NVMe | $ / GB | 1pt per $0.01 | 1 per GB | Coefficient | Score |
-| ------------------------ |:------:|:-------------:|:--------:|:-----------:|:-----:|
-| 970 500 GB $35 MLC | 0.070 | 3.00 | 500 | 1.25 | 629 |
-| 970 2 TB $100 MLC | 0.050 | 5.00 | 2000 | 1.25 | 2506 |
-| 970 1 TB $100 MLC | 0.103 | 0.00 | 1000 | 1.25 | 1250 |
-| 980 1 TB $50 V | 0.050 | 5.00 | 1000 | 1 | 1005 |
-| 980P 2 TB $120 MLC | 0.060 | 4.00 | 2000 | 1.25 | 2505 |
-| 980P 1 TB $70 V | 0.070 | 3.00 | 1000 | 1 | 1003 |
-| 990P 1 TB $80 MLC | 0.080 | 2.00 | 1000 | 1.25 | 1253 |
-| Crucial 1 TB $40 3D | 0.040 | 6.00 | 1000 | 0.5 | 503 |
-| Inland 500 GB $23 QLC | 0.046 | 5.40 | 500 | 0.75 | 379 |
-| Inland 1 TB $40 QLC | 0.040 | 6.00 | 1000 | 0.75 | 755 |
-| Inland 2 TB $70 QLC | 0.035 | 6.50 | 2000 | 0.75 | 1505 |
-| Performance 1 TB $55 TLC | 0.055 | 4.50 | 1000 | 1 | 1005 |
-| Prime 500 GB $30 TLC | 0.060 | 4.00 | 500 | 1 | 504 |
-| Prime 1 TB $50 TLC | 0.050 | 5.00 | 1000 | 1 | 1005 |
-
-**\*** _Higher score is better._
-
-### SSD
-
-| SSD | $ / GB | 1 per cent | 1 per GB | Coefficient | Score |
-| ------------------------- |:------:|:----------:|:--------:|:-----------:|:-----:|
-| Inland 1TB $50 TLC | 0.050 | 5 | 1000 | 1 | 1005 |
-| Inland 512GB $25 TLC | 0.049 | 5.1 | 512 | 1 | 517 |
-| Platinum 2TB $80 TLC | 0.040 | 6 | 2000 | 1 | 2006 |
-| Platinum 1TB $43 TLC | 0.043 | 5.7 | 1000 | 1 | 1006 |
-| Professional 256GB $20 3D | 0.078 | 2.2 | 256 | 0.5 | 129 |
-| Professional 125GB $15 3D | 0.120 | 0 | 125 | 0.5 | 63 |
-| 870 EVO 1TB $50 MLC | 0.050 | 5 | 1000 | 1.25 | 1256 |
-| 870 EVO 4TB $220 MLC | 0.055 | 4.5 | 4000 | 1.25 | 5006 |
-| 870 EVO 500GB $40 MLC | 0.020 | 8 | 500 | 1.25 | 635 |
-| 870 QVO 1TB $70 QLC | 0.070 | 3 | 1000 | 0.75 | 753 |
-
-**\*** _Higher score is better._
-
-## Conclusions
-
-- Cheap system? Get **any** of these.
-- Secondary drive? Get any **QLC** or better.
-- OS Drive? Get any **TLC** or better.
-- Extra cash? Premium for reliability? Get any **Samsung** from the list.
diff --git a/content/meta.md b/content/meta.md
deleted file mode 100644
index 1ae63d0..0000000
--- a/content/meta.md
+++ /dev/null
@@ -1,17 +0,0 @@
-+++
-title = "meta"
-description = "How this website is put together."
-template = "page.html"
-
-[extra]
-lang = 'en'
-math = false
-mermaid = false
-copy = false
-comment = false
-toc = false
-+++
-
-**MiguelPimentel.do** is created using [Zola](https://www.getzola.org/), themed with [serene](https://github.com/isunjn/serene), hosted on [GitHub](https://github.com/), deployed with [GitHub Pages](https://pages.github.com/).
-
-If interested, you can browse the [source](https://github.com/semanticdata/semanticdata.github.io) code, which is available under the [MIT](https://opensource.org/license/mit/) license.
diff --git a/content/now.md b/content/now.md
deleted file mode 100644
index 870b5c3..0000000
--- a/content/now.md
+++ /dev/null
@@ -1,28 +0,0 @@
-+++
-title = "now"
-description = "What I'm focused on at this point in my life."
-template = "page.html"
-
-[extra]
-lang = 'en'
-math = false
-mermaid = false
-copy = false
-comment = false
-toc = false
-+++
-
-See the [Canonical Publication](https://miguelpimentel.do/en/now) for this Blog post.
-
-# /now
-
-A page about about what I'm focused on at this point in my life. Also known as a [/now](https://nownownow.com/about) page.
-
-### As of January 2024, I am…
-
-…tending to my [digital garden](https://forgetfulnotes.com/).
-…learning about web dev with [Zola](https://www.getzola.org/).
-…making simple browser [extensions](https://addons.mozilla.org/en-US/firefox/user/17772574/).
-…collecting bookmarks with [Raindrop](https://raindrop.io/SemanticData).
-…compiling [configuration files](https://github.com/semanticdata/dotfiles) in [GitHub](https://github.com/).
-…developing both a [theme](https://github.com/semanticdata/obsidian-sample-theme), and a [starter vault](https://github.com/semanticdata/obsidian-starter-vault) for [Obsidian](https://obsidian.md/).
diff --git a/content/projects/_index.md b/content/projects/_index.md
deleted file mode 100644
index b104ba9..0000000
--- a/content/projects/_index.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "projects"
-description = "My projects page."
-template = "projects.html"
-
-[extra]
-lang = 'en'
-+++
\ No newline at end of file
diff --git a/content/projects/data.toml b/content/projects/data.toml
deleted file mode 100644
index ccc5cb3..0000000
--- a/content/projects/data.toml
+++ /dev/null
@@ -1,62 +0,0 @@
-# [[project]]
-# name = ""
-# desc = ""
-# tags = ["", ""]
-# links = [
-# { name = "", url = "" },
-# { name = "", url = "" },
-# ]
-
-[[project]]
-name = "⚙ Dotfiles"
-desc = "Opinionated compilation of configuration files and other related items. "
-tags = ["neovim", "alacritty", "opinionated"]
-links = [
- { name = "github", url = "https://github.com/semanticdata/dotfiles" },
- # { name = "", url = "" },
-]
-
-[[project]]
-name = "🦊 Firefox Extensions"
-desc = "Small group of utilitarian Firefox extensions I've put together mostly for personal use."
-tags = ["firefox"]
-links = [
- { name = "martketplace", url = "https://addons.mozilla.org/en-US/firefox/user/17772574/" },
- { name = "github", url = "https://github.com/semanticdata?tab=repositories&q=firefox&type=&language=&sort=" },
-]
-
-[[project]]
-name = "🌱 Forgetful Notes"
-desc = "My digital garden of knowledge. It serves as a platform for my learning and creative endeavours. A space for thinking through, building upon, and coming back to."
-tags = ["digital-garden", "quartz", "quartz-website"]
-links = [
- { name = "website", url = "https://forgetfulnotes.com/" },
- { name = "github", url = "https://github.com/semanticdata/forgetful-notes/" },
-]
-
-[[project]]
-name = "🦎 Mabuya"
-desc = "Minimal Zola theme focused on helping you build an elegant, fast, lightweight, and SEO-ready blog. Based on the Zola theme Tale."
-tags = ["zola", "zola-theme"]
-links = [
- { name = "demo", url = "https://miguelpimentel.do/mabuya/" },
- { name = "github", url = "https://github.com/semanticdata/mabuya/" },
-]
-
-[[project]]
-name = "🔮 Obsidian Starter Vault"
-desc = "Opinionated compilation of extensions and settings to help you learn and start exploring Obsidian."
-tags = ["obsidian", "opinionated"]
-links = [
- { name = "github", url = "https://github.com/semanticdata/obsidian-starter-vault/" },
- # { name = "", url = "" },
-]
-
-[[project]]
-name = "📚 Zola Minimal"
-desc = "Minimal—a Zola port of the Jekyll theme with the same name."
-tags = ["zola", "zola-theme"]
-links = [
- { name = "demo", url = " miguelpimentel.do/zola-minimal/" },
- { name = "github", url = "https://github.com/semanticdata/zola-minimal" },
-]
diff --git a/frontmatter.json b/frontmatter.json
new file mode 100644
index 0000000..21d497f
--- /dev/null
+++ b/frontmatter.json
@@ -0,0 +1,626 @@
+{
+ "$schema": "https://frontmatter.codes/frontmatter.schema.json",
+ "frontMatter.framework.id": "11ty",
+ "frontMatter.preview.host": "http://localhost:8080",
+ "frontMatter.dashboard.openOnStart": true,
+ "frontMatter.git.enabled": true,
+ "frontMatter.templates.enabled": true,
+ "frontMatter.content.fmHighlight": false,
+ "frontMatter.taxonomy.seoDescriptionField": "seo.description",
+ "frontMatter.templates.prefix": "",
+ "frontMatter.taxonomy.dateFormat": "YYYY-MM-DD",
+ "frontMatter.experimental": true,
+ "frontMatter.extensibility.scripts": [
+ "[[workspace]]/.frontmatter/ui/image.js"
+ ],
+ "frontMatter.panel.actions.disabled": ["optimizeSlug", "createContent"],
+ "frontMatter.taxonomy.contentTypes": [
+ {
+ "name": "default",
+ "pageBundle": false,
+ "previewPath": null,
+ "template": "[[workspace]]/.frontmatter/templates/default.md",
+ "clearEmpty": true,
+ "fields": [
+ {
+ "title": "Layout",
+ "name": "layout",
+ "type": "choice",
+ "choices": [
+ {
+ "id": "",
+ "title": ""
+ },
+ {
+ "id": "post",
+ "title": "Post"
+ },
+ {
+ "id": "page",
+ "title": "Page"
+ }
+ ]
+ },
+ {
+ "title": "Title",
+ "name": "title",
+ "type": "string",
+ "single": true
+ },
+ {
+ "title": "Thumbnail",
+ "name": "thumbnail",
+ "type": "image",
+ "isPreviewImage": true
+ },
+ {
+ "title": "Thumbnail Description",
+ "name": "thumbnailDescription",
+ "type": "string",
+ "single": true
+ },
+ {
+ "title": "Date",
+ "name": "date",
+ "type": "datetime",
+ "default": "{{now}}",
+ "isPublishDate": true
+ },
+ {
+ "title": "Modified",
+ "name": "lastmod",
+ "type": "datetime",
+ "isModifiedDate": true
+ },
+ {
+ "title": "Tags",
+ "name": "tags",
+ "type": "tags"
+ },
+ {
+ "title": "Is in draft",
+ "name": "draft",
+ "type": "draft"
+ },
+ {
+ "title": "SEO",
+ "name": "seo",
+ "type": "fields",
+ "fields": [
+ {
+ "title": "Disable Indexing?",
+ "name": "noIndex",
+ "type": "boolean"
+ },
+ {
+ "title": "Title",
+ "name": "title",
+ "type": "string",
+ "single": true,
+ "when": {
+ "fieldRef": "noIndex",
+ "operator": "neq",
+ "value": true
+ }
+ },
+ {
+ "title": "Description",
+ "name": "description",
+ "type": "string",
+ "when": {
+ "fieldRef": "noIndex",
+ "operator": "neq",
+ "value": true
+ }
+ },
+ {
+ "title": "Slug",
+ "name": "slug",
+ "type": "slug",
+ "editable": true,
+ "when": {
+ "fieldRef": "noIndex",
+ "operator": "neq",
+ "value": true
+ }
+ },
+ {
+ "title": "Exclude from Sitemap?",
+ "name": "excludeFromSitemap",
+ "type": "boolean"
+ },
+ {
+ "title": "Sitemap Change Frequency",
+ "name": "changeFrequency",
+ "type": "choice",
+ "when": {
+ "fieldRef": "excludeFromSitemap",
+ "operator": "neq",
+ "value": true
+ },
+ "choices": [
+ {
+ "id": "always",
+ "title": "Always"
+ },
+ {
+ "id": "hourly",
+ "title": "Hourly"
+ },
+ {
+ "id": "daily",
+ "title": "Daily"
+ },
+ {
+ "id": "weekly",
+ "title": "Weekly"
+ },
+ {
+ "id": "monthly",
+ "title": "Monthly"
+ },
+ {
+ "id": "never",
+ "title": "Never"
+ }
+ ]
+ },
+ {
+ "title": "Sitemap Priority",
+ "name": "sitemapPriority",
+ "type": "number",
+ "when": {
+ "fieldRef": "excludeFromSitemap",
+ "operator": "neq",
+ "value": true
+ },
+ "numberOptions": {
+ "isDecimal": true,
+ "min": 0.1,
+ "max": 1,
+ "step": 0.1
+ }
+ }
+ ]
+ },
+ {
+ "title": "11ty",
+ "name": "eleventyDefaultMeta",
+ "type": "heading"
+ },
+ {
+ "title": "Permalink",
+ "name": "permalink",
+ "type": "string",
+ "single": true
+ },
+ {
+ "title": "Exclude from collections?",
+ "name": "eleventyExcludeFromCollections",
+ "type": "boolean"
+ }
+ ]
+ }
+ ],
+ "frontMatter.projects": [
+ {
+ "name": "EN",
+ "default": true,
+ "configuration": {
+ "frontMatter.content.pageFolders": [
+ {
+ "title": "Posts",
+ "path": "[[workspace]]/src/en/posts",
+ "previewPath": "en/writing"
+ },
+ {
+ "title": "Pages",
+ "path": "[[workspace]]/src/en/pages",
+ "previewPath": "en"
+ }
+ ],
+ "frontMatter.content.publicFolder": "[[workspace]]/src"
+ }
+ },
+ {
+ "name": "SV",
+ "configuration": {
+ "frontMatter.content.pageFolders": [
+ {
+ "title": "Posts",
+ "path": "[[workspace]]/src/sv/posts",
+ "previewPath": "sv/skriv"
+ },
+ {
+ "title": "Pages",
+ "path": "[[workspace]]/src/sv/pages",
+ "previewPath": "sv"
+ }
+ ],
+ "frontMatter.content.publicFolder": "[[workspace]]/src"
+ }
+ }
+ ],
+ "frontMatter.taxonomy.tags": [],
+ "frontMatter.content.snippets": {
+ "Image": {
+ "description": "Insert a responsive image",
+ "body": "{% image \"[[&mediaUrl]]\", \"[[alt]]\", \"[[mq]]\", \"[[caption]]\" , \"[[classes]]\", \"[[loading]]\", \"[[fetch]]\", \"[[decoding]]\", \"[[mediaWidth]]\", \"[[mediaHeight]]\" %}",
+ "isMediaSnippet": true,
+ "fields": [
+ {
+ "name": "mq",
+ "title": "Media Query",
+ "type": "string",
+ "single": true,
+ "default": "(min-width: 800px) 580px, 100vw"
+ },
+ {
+ "name": "classes",
+ "title": "Class",
+ "type": "string",
+ "single": true,
+ "default": ""
+ },
+ {
+ "name": "loading",
+ "title": "Loading",
+ "type": "choice",
+ "default": "lazy",
+ "choices": [
+ {
+ "id": "lazy",
+ "title": "Lazy"
+ },
+ {
+ "id": "eager",
+ "title": "Eager"
+ }
+ ]
+ },
+ {
+ "name": "fetch",
+ "title": "Fetch Priority",
+ "type": "choice",
+ "default": "auto",
+ "choices": [
+ {
+ "id": "auto",
+ "title": "Auto"
+ },
+ {
+ "id": "high",
+ "title": "High"
+ },
+ {
+ "id": "low",
+ "title": "Low"
+ }
+ ]
+ },
+ {
+ "name": "decoding",
+ "title": "Decoding",
+ "type": "choice",
+ "default": "async",
+ "choices": [
+ {
+ "id": "auto",
+ "title": "Auto"
+ },
+ {
+ "id": "sync",
+ "title": "Sync"
+ },
+ {
+ "id": "async",
+ "title": "Async"
+ }
+ ]
+ }
+ ]
+ },
+ "Code": {
+ "description": "Insert a code block",
+ "body": ["``` [[type]]", "[[code]]", "```"],
+ "fields": [
+ {
+ "name": "type",
+ "title": "Language",
+ "type": "choice",
+ "choices": [
+ {
+ "id": null,
+ "title": "—"
+ },
+ {
+ "id": "arduino",
+ "title": "Arduino"
+ },
+ {
+ "id": "bash",
+ "title": "Bash"
+ },
+ {
+ "id": "css",
+ "title": "CSS"
+ },
+ {
+ "id": "docker",
+ "title": "Docker"
+ },
+ {
+ "id": "git",
+ "title": "Git"
+ },
+ {
+ "id": "go",
+ "title": "Go"
+ },
+ {
+ "id": "html",
+ "title": "HTML"
+ },
+ {
+ "id": "javascript",
+ "title": "JavaScript"
+ },
+ {
+ "id": "json",
+ "title": "JSON"
+ },
+ {
+ "id": "latex",
+ "title": "LaTeX"
+ },
+ {
+ "id": "markdown",
+ "title": "Markdown"
+ },
+ {
+ "id": "php",
+ "title": "PHP"
+ },
+ {
+ "id": "python",
+ "title": "Python"
+ },
+ {
+ "id": "jsx",
+ "title": "React JSX"
+ },
+ {
+ "id": "typescript",
+ "title": "Typescript"
+ },
+ {
+ "id": "yaml",
+ "title": "YAML"
+ }
+ ]
+ },
+ {
+ "name": "code",
+ "title": "Code",
+ "type": "string",
+ "default": "FM_SELECTED_TEXT"
+ }
+ ]
+ },
+ "Notice": {
+ "description": "Show a notice, warning or error",
+ "body": "[[message]]
",
+ "fields": [
+ {
+ "name": "type",
+ "title": "type",
+ "type": "choice",
+ "choices": [
+ {
+ "id": "notice",
+ "title": "Notice"
+ },
+ {
+ "id": "warning",
+ "title": "Warning"
+ },
+ {
+ "id": "error",
+ "title": "Error"
+ }
+ ],
+ "default": "notice"
+ },
+ {
+ "name": "message",
+ "title": "message",
+ "type": "string",
+ "single": false,
+ "default": "FM_SELECTED_TEXT"
+ }
+ ]
+ },
+ "Quote": {
+ "description": "Quote with author",
+ "body": [
+ "",
+ " [[quote]]
",
+ " — [[author]], [[cite]] ",
+ " "
+ ],
+ "fields": [
+ {
+ "name": "quote",
+ "title": "Quote",
+ "type": "string",
+ "single": false,
+ "default": "FM_SELECTED_TEXT"
+ },
+ {
+ "name": "author",
+ "title": "Author",
+ "type": "string",
+ "single": true,
+ "default": ""
+ },
+ {
+ "name": "cite",
+ "title": "Cite",
+ "type": "string",
+ "single": true,
+ "default": ""
+ },
+ {
+ "name": "url",
+ "title": "Cite URL",
+ "type": "string",
+ "single": true,
+ "default": ""
+ }
+ ]
+ }
+ },
+ "frontMatter.data.files": [
+ {
+ "id": "settings",
+ "title": "Settings",
+ "file": "[[workspace]]/src/_data/settings.json",
+ "fileType": "json",
+ "singleEntry": true,
+ "schema": {
+ "title": "Settings",
+ "type": "object",
+ "required": [],
+ "properties": {
+ "themeColorLight": {
+ "type": "string",
+ "title": "Theme Color (Light)"
+ },
+ "themeColorDark": {
+ "type": "string",
+ "title": "Theme Color (Dark)"
+ },
+ "cdn": {
+ "type": "boolean",
+ "title": "Enable image CDN?"
+ },
+ "author": {
+ "type": "object",
+ "title": "Author",
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "Name"
+ },
+ "email": {
+ "type": "string",
+ "title": "Email"
+ },
+ "url": {
+ "type": "string",
+ "title": "URL",
+ "default": "https://"
+ },
+ "location": {
+ "type": "string",
+ "title": "Location",
+ "default": ""
+ },
+ "fediverseProfile": {
+ "type": "string",
+ "title": "Fediverse URL",
+ "default": "https://mastodon.social/@person"
+ }
+ }
+ },
+ "meta": {
+ "type": "object",
+ "title": "Meta",
+ "properties": {
+ "separator": {
+ "type": "string",
+ "title": "Separator"
+ },
+ "opengraphDefaultImage": {
+ "type": "string",
+ "title": "Default Opengraph Image",
+ "default": "/assets/img/opengraph-default.png"
+ }
+ }
+ },
+ "seo": {
+ "type": "object",
+ "title": "SEO",
+ "properties": {
+ "defaultChangeFrequency": {
+ "type": "string",
+ "title": "Default Change Frequency",
+ "default": "monthly"
+ },
+ "defaultPriority": {
+ "title": "Default Sitemap Priority",
+ "type": "number",
+ "default": 0.7,
+ "numberOptions": {
+ "isDecimal": true,
+ "min": 0.1,
+ "max": 1,
+ "step": 0.1
+ }
+ }
+ }
+ },
+ "manifest": {
+ "type": "object",
+ "title": "Web Manifest (https://web.dev/add-manifest/#create)",
+ "properties": {
+ "themeColor": {
+ "type": "string",
+ "title": "Theme Color"
+ },
+ "backgroundColor": {
+ "type": "string",
+ "title": "Background Color"
+ },
+ "display": {
+ "type": "string",
+ "title": "Display (fullscreen, standalone, minimal-ui, browser)",
+ "default": "minimal-ui"
+ },
+ "orientation": {
+ "type": "string",
+ "title": "Orientation",
+ "default": "portrait-primary"
+ },
+ "categories": {
+ "type": "array",
+ "title": "Categories (https://github.com/w3c/manifest/wiki/Categories)",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "frontMatter.global.activeMode": "",
+ "frontMatter.global.modes": [
+ {
+ "id": "Minimal",
+ "features": [
+ "panel.metadata",
+ "panel.actions",
+ "dashboard.data.view",
+ "dashboard.snippets.view"
+ ]
+ }
+ ],
+ "frontMatter.custom.scripts": [
+ {
+ "title": "Generate open graph image",
+ "script": ".frontmatter/scripts/opengraph.js"
+ }
+ ]
+}
diff --git a/grid-style.css b/grid-style.css
new file mode 100644
index 0000000..b48b313
--- /dev/null
+++ b/grid-style.css
@@ -0,0 +1,74 @@
+/**
+ * Grid component
+ * 1) This is the parent container that provides default
+ * gap value and behavior. Items placed in an unmodified
+ * grid component will stack with a gap between them
+ * 2) For demo layout only. We don't typically include any
+ * default margins or padding in our grid component
+ */
+.l-grid {
+ display: grid;
+ gap: 1rem;
+ margin-bottom: 1rem; /* 2 */
+}
+
+/**
+ * Side-by-side grid
+ * 1) Always display the grid items side by side
+ */
+.l-grid--side-by-side {
+ grid-template-columns: 1fr 1fr;
+}
+
+/**
+ * 2up grid
+ * 1) Stack items until there's enough room to
+ * display them side by side.
+ */
+.l-grid--2up {
+ @media all and (min-width: 40rem) {
+ grid-template-columns: 1fr 1fr;
+ }
+}
+
+/**
+ * 3up grid
+ * 1) Stack items until there's enough room to
+ * display them side by side, then display as
+ * three across when enough space is available
+ */
+.l-grid--3up {
+ @media all and (min-width: 40rem) {
+ grid-template-columns: 1fr 1fr;
+ }
+
+ @media all and (min-width: 50rem) {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+}
+
+/**
+ * 1-to-3up grid
+ * 1) Stack items until there's enough room to
+ * display as three across. This is often good
+ *. for promo touts
+ */
+.l-grid--1-to-3up {
+ @media all and (min-width: 50rem) {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+}
+
+/**
+ * Card
+ */
+.c-card {
+ font-family: system-ui;
+ background: salmon;
+ border-radius: 1rem;
+ padding: 2rem;
+}
+
+.c-card--blue {
+ background: lightblue;
+}
diff --git a/highlight_themes/serene-dark.tmTheme b/highlight_themes/serene-dark.tmTheme
deleted file mode 100644
index c181a82..0000000
--- a/highlight_themes/serene-dark.tmTheme
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
-
-
-
-
-
-
- comment
- http://chriskempson.com
- name
- Tomorrow Night
- settings
-
-
- settings
-
- caret
- #AEAFAD
- foreground
- #C5C8C6
- invisibles
- #4B4E55
- lineHighlight
- #282A2E
- selection
- #373B41
-
-
-
- name
- Comment
- scope
- comment, string.quoted.double.block.python
- settings
-
- foreground
- #999999
-
-
-
- name
- Foreground
- scope
- keyword.operator.class, constant.other, source.php.embedded.line
- settings
-
- fontStyle
-
- foreground
- #CED1CF
-
-
-
- name
- Variable, String Link, Regular Expression, Tag Name
- scope
- variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag
- settings
-
- foreground
- #A67878
-
-
-
- name
- Number, Constant, Function Argument, Tag Attribute, Embedded
- scope
- constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit
- settings
-
- fontStyle
-
- foreground
- #E08355
-
-
-
- name
- Class, Support
- scope
- type,
-entity.name.class, entity.name.type.class, support.type, support.class
- settings
-
- fontStyle
-
- foreground
- #6A8F8A
-
-
-
- name
- String, Symbols, Inherited Class, Markup Heading
- scope
- string, constant.other.symbol, entity.other.inherited-class, markup.heading
- settings
-
- fontStyle
-
- foreground
- #85AD74
-
-
-
- name
- Operator, Misc
- scope
- keyword.operator, constant.other.color
- settings
-
- foreground
- #6A8F8A
-
-
-
- name
- Function, Special Method, Block Level
- scope
- entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level
- settings
-
- fontStyle
-
- foreground
- #81A2BE
-
-
-
- name
- Keyword, Storage
- scope
- keyword, storage, storage.type, entity.name.tag.css
- settings
-
- fontStyle
-
- foreground
- #B294BB
-
-
-
- name
- Invalid
- scope
- invalid
- settings
-
- background
- #DF5F5F
- fontStyle
-
- foreground
- #CED2CF
-
-
-
- name
- Separator
- scope
- meta.separator
- settings
-
- background
- #82A3BF
- foreground
- #CED2CF
-
-
-
- name
- Deprecated
- scope
- invalid.deprecated
- settings
-
- background
- #B798BF
- fontStyle
-
- foreground
- #CED2CF
-
-
-
- name
- Diff foreground
- scope
- markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file
- settings
-
- foreground
- #FFFFFF
-
-
-
- name
- Diff insertion
- scope
- markup.inserted.diff, meta.diff.header.to-file
- settings
-
- foreground
- #5FE375
- background
- #00000000
-
-
-
- name
- Diff deletion
- scope
- markup.deleted.diff, meta.diff.header.from-file
- settings
-
- foreground
- #D46565
-
-
-
- name
- Diff header
- scope
- meta.diff.header.from-file, meta.diff.header.to-file
- settings
-
- foreground
- #FFFFFF
- background
- #4271ae
-
-
-
- name
- Diff range
- scope
- meta.diff.range
- settings
-
- fontStyle
- italic
- foreground
- #3e999f
-
-
-
- name
- diff.deleted
- scope
- markup.deleted
- settings
-
- foreground
- #F92672
-
-
-
- name
- diff.inserted
- scope
- markup.inserted
- settings
-
- foreground
- #A6E22E
-
-
-
- name
- diff.changed
- scope
- markup.changed
- settings
-
- foreground
- #967EFB
-
-
-
- uuid
- F96223EB-1A60-4617-92F3-D24D4F13DB09
- colorSpaceName
- sRGB
- semanticClass
- theme.dark.tomorrow_night
-
-
\ No newline at end of file
diff --git a/highlight_themes/serene-light.tmTheme b/highlight_themes/serene-light.tmTheme
deleted file mode 100644
index 24ba5cc..0000000
--- a/highlight_themes/serene-light.tmTheme
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-
-
-
-
- comment
- http://chriskempson.com
- name
- Tomorrow
- settings
-
-
- settings
-
- caret
- #AEAFAD
- foreground
- #4D4D4C
- invisibles
- #D1D1D1
- lineHighlight
- #EFEFEF
- selection
- #D6D6D6
-
-
-
- name
- Comment
- scope
- comment, string.quoted.double.block.python
- settings
-
- foreground
- #999999
-
-
-
- name
- Foreground
- scope
- keyword.operator.class, constant.other, source.php.embedded.line
- settings
-
- fontStyle
-
- foreground
- #666969
-
-
-
- name
- Variable, String Link, Regular Expression, Tag Name
- scope
- variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag
- settings
-
- foreground
- #A67878
-
-
-
- name
- Number, Constant, Function Argument, Tag Attribute, Embedded
- scope
- constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit
- settings
-
- fontStyle
-
- foreground
- #E08355
-
-
-
- name
- Type, Class, Support
- scope
- type,
-entity.name.class, entity.name.type.class, support.type, support.class
- settings
-
- fontStyle
-
- foreground
- #568A8F
-
-
-
- name
- String, Symbols, Inherited Class, Markup Heading
- scope
- string, constant.other.symbol, entity.other.inherited-class, markup.heading
- settings
-
- fontStyle
-
- foreground
- #85AD74
-
-
-
- name
- Operator, Misc
- scope
- keyword.operator, constant.other.color
- settings
-
- foreground
- #568A8F
-
-
-
- name
- Function, Special Method, Block Level
- scope
- entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level
- settings
-
- fontStyle
-
- foreground
- #4271AE
-
-
-
- name
- Keyword, Storage
- scope
- keyword, storage, storage.type
- settings
-
- fontStyle
-
- foreground
- #8959A8
-
-
-
- name
- Invalid
- scope
- invalid
- settings
-
- background
- #DF5F5F
- fontStyle
-
- foreground
- #FFFFFF
-
-
-
- name
- Separator
- scope
- meta.separator
- settings
-
- background
- #4271AE
- foreground
- #FFFFFF
-
-
-
- name
- Deprecated
- scope
- invalid.deprecated
- settings
-
- background
- #8959A8
- fontStyle
-
- foreground
- #FFFFFF
-
-
-
- name
- Diff foreground
- scope
- markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file
- settings
-
- foreground
- #FFFFFF
-
-
-
- name
- Diff insertion
- scope
- markup.inserted.diff, meta.diff.header.to-file
- settings
-
- background
- #65C23A66
-
-
-
- name
- Diff deletion
- scope
- markup.deleted.diff, meta.diff.header.from-file
- settings
-
- background
- #C8282966
-
-
-
- name
- Diff header
- scope
- meta.diff.header.from-file, meta.diff.header.to-file
- settings
-
- foreground
- #FFFFFF
- background
- #4271ae
-
-
-
- name
- Diff range
- scope
- meta.diff.range
- settings
-
- fontStyle
- italic
- foreground
- #3e999f
-
-
-
- uuid
- 82CCD69C-F1B1-4529-B39E-780F91F07604
- colorSpaceName
- sRGB
- semanticClass
- theme.light.tomorrow
-
-
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..b4cb466
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,8616 @@
+{
+ "name": "elva",
+ "version": "1.0.3",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "elva",
+ "version": "1.0.3",
+ "license": "MIT",
+ "devDependencies": {
+ "@11ty/eleventy": "^2.0.1",
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "@11ty/eleventy-img": "^4.0.1",
+ "@11ty/eleventy-plugin-rss": "^1.2.0",
+ "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
+ "@alpinejs/intersect": "^3.13.5",
+ "alpinejs": "^3.13.5",
+ "clean-css": "^5.3.3",
+ "eleventy-plugin-embed-everything": "^1.18.2",
+ "html-minifier-terser": "^7.2.0",
+ "lodash.get": "^4.4.2",
+ "markdown-it-ins": "^4.0.0",
+ "markdown-it-mark": "^4.0.0",
+ "markdown-it-sub": "^2.0.0",
+ "markdown-it-sup": "^2.0.0",
+ "mime-types": "^2.1.35",
+ "node-html-to-image": "^4.0.0",
+ "rimraf": "^5.0.5",
+ "terser": "^5.27.0"
+ }
+ },
+ "node_modules/@11ty/dependency-tree": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz",
+ "integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==",
+ "dev": true
+ },
+ "node_modules/@11ty/eleventy": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz",
+ "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==",
+ "dev": true,
+ "dependencies": {
+ "@11ty/dependency-tree": "^2.0.1",
+ "@11ty/eleventy-dev-server": "^1.0.4",
+ "@11ty/eleventy-utils": "^1.0.1",
+ "@11ty/lodash-custom": "^4.17.21",
+ "@iarna/toml": "^2.2.5",
+ "@sindresorhus/slugify": "^1.1.2",
+ "bcp-47-normalize": "^1.1.1",
+ "chokidar": "^3.5.3",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.3.4",
+ "dependency-graph": "^0.11.0",
+ "ejs": "^3.1.9",
+ "fast-glob": "^3.2.12",
+ "graceful-fs": "^4.2.11",
+ "gray-matter": "^4.0.3",
+ "hamljs": "^0.6.2",
+ "handlebars": "^4.7.7",
+ "is-glob": "^4.0.3",
+ "iso-639-1": "^2.1.15",
+ "kleur": "^4.1.5",
+ "liquidjs": "^10.7.0",
+ "luxon": "^3.3.0",
+ "markdown-it": "^13.0.1",
+ "micromatch": "^4.0.5",
+ "minimist": "^1.2.8",
+ "moo": "^0.5.2",
+ "multimatch": "^5.0.0",
+ "mustache": "^4.2.0",
+ "normalize-path": "^3.0.0",
+ "nunjucks": "^3.2.3",
+ "path-to-regexp": "^6.2.1",
+ "please-upgrade-node": "^3.2.0",
+ "posthtml": "^0.16.6",
+ "posthtml-urls": "^1.0.0",
+ "pug": "^3.0.2",
+ "recursive-copy": "^2.0.14",
+ "semver": "^7.3.8",
+ "slugify": "^1.6.6"
+ },
+ "bin": {
+ "eleventy": "cmd.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-dev-server": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.4.tgz",
+ "integrity": "sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==",
+ "dev": true,
+ "dependencies": {
+ "@11ty/eleventy-utils": "^1.0.1",
+ "chokidar": "^3.5.3",
+ "debug": "^4.3.4",
+ "dev-ip": "^1.0.1",
+ "finalhandler": "^1.2.0",
+ "mime": "^3.0.0",
+ "minimist": "^1.2.8",
+ "morphdom": "^2.7.0",
+ "please-upgrade-node": "^3.2.0",
+ "ssri": "^8.0.1",
+ "ws": "^8.13.0"
+ },
+ "bin": {
+ "eleventy-dev-server": "cmd.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-fetch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.0.tgz",
+ "integrity": "sha512-wGAd0r+8DUWr22fK5r07dOKuNY6ltA7hX+sJzngGZL1yJmuUVdM/xPQZ+iq0BFgf/ZeRdpVEzf2D0cpVZUuiTg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "flat-cache": "^3.0.4",
+ "node-fetch": "^2.6.7",
+ "p-queue": "^6.6.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-img": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-4.0.1.tgz",
+ "integrity": "sha512-WcZiwPhSgBcR9hdRfK/GDHZFkaM6HylRd48zKZkNSSQJhCdo1uwHnnciVV7vWk1GXH4+Sz/P8wxw1MDN5jsogg==",
+ "dev": true,
+ "dependencies": {
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "brotli-size": "^4.0.0",
+ "debug": "^4.3.4",
+ "entities": "^4.5.0",
+ "image-size": "^1.1.1",
+ "p-queue": "^6.6.2",
+ "sharp": "^0.33.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-img/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/@11ty/eleventy-plugin-rss": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.2.0.tgz",
+ "integrity": "sha512-YzFnSH/5pObcFnqZ2sAQ782WmpOZHj1+xB9ydY/0j7BZ2jUNahn53VmwCB/sBRwXA/Fbwwj90q1MLo01Ru0UaQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "posthtml": "^0.16.6",
+ "posthtml-urls": "1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-plugin-syntaxhighlight": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-5.0.0.tgz",
+ "integrity": "sha512-y9BUmP1GofmbJgxM1+ky/UpFCpD8JSOeLeKItUs0WApgnrHk9haHziW7lS86lbArX5SiCVo4zTTw9x53gvRCaA==",
+ "dev": true,
+ "dependencies": {
+ "prismjs": "^1.29.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz",
+ "integrity": "sha512-HPpCTz4PzudcQU+i+x6GSNHVqgnvRhnVYg5dLKaAoRWLN966odAGsBxKSyhF8i1MdlOPtsytYb2AGWP7jISC5w==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/lodash-custom": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz",
+ "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@alpinejs/intersect": {
+ "version": "3.13.5",
+ "resolved": "https://registry.npmjs.org/@alpinejs/intersect/-/intersect-3.13.5.tgz",
+ "integrity": "sha512-wBveYNRuZoFFirRq4GmUx1JgD5/7S9b10l8Ps5wQJX/deiRXTY8f1Op0zVTkmIoHLpXyouSsOZz9/U/lPU3NZw==",
+ "dev": true
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/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/code-frame/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/code-frame/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/code-frame/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/code-frame/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/code-frame/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/code-frame/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/@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz",
+ "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
+ "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.5",
+ "chalk": "^2.4.2",
+ "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/@babel/parser": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
+ "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
+ "dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
+ "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz",
+ "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@iarna/toml": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
+ "dev": true
+ },
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz",
+ "integrity": "sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "glibc": ">=2.26",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz",
+ "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "glibc": ">=2.26",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz",
+ "integrity": "sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "macos": ">=11",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz",
+ "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "macos": ">=10.13",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz",
+ "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.28",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz",
+ "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.26",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz",
+ "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.28",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz",
+ "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.26",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz",
+ "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "musl": ">=1.2.2",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz",
+ "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "musl": ">=1.2.2",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz",
+ "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.28",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz",
+ "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.26",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz",
+ "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.28",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz",
+ "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "glibc": ">=2.26",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz",
+ "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "musl": ">=1.2.2",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz",
+ "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "musl": ">=1.2.2",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.1"
+ }
+ },
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz",
+ "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^0.45.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz",
+ "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz",
+ "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
+ "npm": ">=9.6.5",
+ "pnpm": ">=7.1.0",
+ "yarn": ">=3.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz",
+ "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "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/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@puppeteer/browsers": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.5.0.tgz",
+ "integrity": "sha512-za318PweGINh5LnHSph7C4xhs0tmRjCD8EPpzcKlw4nzSPhnULj+LTG3+TGefZvW1ti5gjw2JkdQvQsivBeZlg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "4.3.4",
+ "extract-zip": "2.0.1",
+ "progress": "2.0.3",
+ "proxy-agent": "6.3.0",
+ "tar-fs": "3.0.4",
+ "unbzip2-stream": "1.4.3",
+ "yargs": "17.7.1"
+ },
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
+ },
+ "engines": {
+ "node": ">=16.3.0"
+ }
+ },
+ "node_modules/@sindresorhus/slugify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz",
+ "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/transliterate": "^0.1.1",
+ "escape-string-regexp": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sindresorhus/transliterate": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz",
+ "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0",
+ "lodash.deburr": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@tootallnate/quickjs-emscripten": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
+ "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
+ "dev": true
+ },
+ "node_modules/@types/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "20.5.9",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz",
+ "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==",
+ "dev": true,
+ "optional": true
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
+ "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
+ "dev": true,
+ "dependencies": {
+ "@vue/shared": "3.1.5"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
+ "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==",
+ "dev": true
+ },
+ "node_modules/a-sync-waterfall": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
+ "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==",
+ "dev": true
+ },
+ "node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/alpinejs": {
+ "version": "3.13.5",
+ "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.13.5.tgz",
+ "integrity": "sha512-1d2XeNGN+Zn7j4mUAKXtAgdc4/rLeadyTMWeJGXF5DzwawPBxwTiBhFFm6w/Ei8eJxUZeyNWWSD9zknfdz1kEw==",
+ "dev": true,
+ "dependencies": {
+ "@vue/reactivity": "~3.1.1"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
+ "integrity": "sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==",
+ "dev": true
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/array-differ": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true
+ },
+ "node_modules/assert-never": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
+ "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==",
+ "dev": true
+ },
+ "node_modules/ast-types": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
+ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "dev": true
+ },
+ "node_modules/b4a": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==",
+ "dev": true
+ },
+ "node_modules/babel-walk": {
+ "version": "3.0.0-canary-5",
+ "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
+ "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.9.6"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/basic-ftp": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz",
+ "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/bcp-47": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz",
+ "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==",
+ "dev": true,
+ "dependencies": {
+ "is-alphabetical": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/bcp-47-match": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz",
+ "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/bcp-47-normalize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz",
+ "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==",
+ "dev": true,
+ "dependencies": {
+ "bcp-47": "^1.0.0",
+ "bcp-47-match": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/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/brotli-size": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz",
+ "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==",
+ "dev": true,
+ "dependencies": {
+ "duplexer": "0.1.1"
+ },
+ "engines": {
+ "node": ">= 10.16.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "node_modules/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/camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "dependencies": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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/character-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
+ "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==",
+ "dev": true,
+ "dependencies": {
+ "is-regex": "^1.0.3"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chromium-bidi": {
+ "version": "0.4.20",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.20.tgz",
+ "integrity": "sha512-ruHgVZFEv00mAQMz1tQjfjdG63jiPWrQPF6HLlX2ucqLqVTJoWngeBEKHaJ6n1swV/HSvgnBNbtTRIlcVyW3Fw==",
+ "dev": true,
+ "dependencies": {
+ "mitt": "3.0.1"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
+ },
+ "node_modules/clean-css": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+ "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+ "dev": true,
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 10.0"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/commander": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
+ "dev": true,
+ "engines": {
+ "node": ">=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/constantinople": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
+ "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.6.0",
+ "@babel/types": "^7.6.1"
+ }
+ },
+ "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/cosmiconfig/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/cosmiconfig/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/cross-fetch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
+ "dev": true,
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "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/data-uri-to-buffer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz",
+ "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "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/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/degenerator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
+ "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
+ "dev": true,
+ "dependencies": {
+ "ast-types": "^0.13.4",
+ "escodegen": "^2.1.0",
+ "esprima": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/dependency-graph": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
+ "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dev-ip": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
+ "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==",
+ "dev": true,
+ "bin": {
+ "dev-ip": "lib/dev-ip.js"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/devtools-protocol": {
+ "version": "0.0.1147663",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz",
+ "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==",
+ "dev": true
+ },
+ "node_modules/doctypes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
+ "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==",
+ "dev": true
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/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": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "dev": true,
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==",
+ "dev": true
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true
+ },
+ "node_modules/ejs": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+ "dev": true,
+ "dependencies": {
+ "jake": "^10.8.5"
+ },
+ "bin": {
+ "ejs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eleventy-plugin-embed-everything": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-everything/-/eleventy-plugin-embed-everything-1.18.2.tgz",
+ "integrity": "sha512-J/zxLnYN7bhVlbEnqxSswxKis6VjDndUFnE3I9ZdCzGFzlWVrXj933w5DOCobx/OZesuYN9VmapNgAHsGvFoAg==",
+ "dev": true,
+ "dependencies": {
+ "deepmerge": "^4.3.1",
+ "eleventy-plugin-embed-instagram": "^1.2.7",
+ "eleventy-plugin-embed-soundcloud": "^1.2.7",
+ "eleventy-plugin-embed-spotify": "^1.3.0",
+ "eleventy-plugin-embed-ted": "^1.0.1",
+ "eleventy-plugin-embed-tiktok": "^1.1.7",
+ "eleventy-plugin-embed-twitch": "^1.2.7",
+ "eleventy-plugin-embed-twitter": "^1.4.0",
+ "eleventy-plugin-vimeo-embed": "^1.3.8",
+ "eleventy-plugin-youtube-embed": "^1.10.2"
+ }
+ },
+ "node_modules/eleventy-plugin-embed-instagram": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-instagram/-/eleventy-plugin-embed-instagram-1.2.7.tgz",
+ "integrity": "sha512-v6uSqeZiZU5L40lr4NTGBr+2Wbc81SqbNIllESEBQDFhS68g253WqkLaNs7gGh0k5hxhNuMt7ZZEBfous7jksw==",
+ "dev": true
+ },
+ "node_modules/eleventy-plugin-embed-soundcloud": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-soundcloud/-/eleventy-plugin-embed-soundcloud-1.2.7.tgz",
+ "integrity": "sha512-0+VNeEcMiRySmyTmPmMhCwkbds44k9W4jWqUwjvk665TRagiXcCdj/BK2wl8vyiVrn/0arWeSCpol4NBb6BIvA==",
+ "dev": true,
+ "dependencies": {
+ "@11ty/eleventy-fetch": "^4.0.0"
+ }
+ },
+ "node_modules/eleventy-plugin-embed-spotify": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-spotify/-/eleventy-plugin-embed-spotify-1.3.0.tgz",
+ "integrity": "sha512-waVUtW5PO9aKYQEjnvHG4P5bPyKj+SSUBuDtqfF2K+j7dGItmEDD4DP7CmBz6lkn/LlJGmJ7uT4Mr6L4jAP4bg==",
+ "dev": true
+ },
+ "node_modules/eleventy-plugin-embed-ted": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-ted/-/eleventy-plugin-embed-ted-1.0.1.tgz",
+ "integrity": "sha512-F1CayKC05sGDAcdEgaZUP3Cs/71mwLT717sIUUiZWu+Gjd1Lp7m2gqL1R/uKnHN/CFxKYTpAA6ZNN/LCjg0ufw==",
+ "dev": true
+ },
+ "node_modules/eleventy-plugin-embed-tiktok": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-tiktok/-/eleventy-plugin-embed-tiktok-1.1.7.tgz",
+ "integrity": "sha512-Yb/95hafIsKVsV11ebsX0PoYzpLQWWSbdznbvPfA0HIKjfTHGEt1q0XX5DRGPnn5tor7lM5sha9DMQPzJb/oGQ==",
+ "dev": true
+ },
+ "node_modules/eleventy-plugin-embed-twitch": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitch/-/eleventy-plugin-embed-twitch-1.2.7.tgz",
+ "integrity": "sha512-E3oUtk5HhfgBaH9xpcnnByoddyyxuj0uhTzxD+UF5ftUU4pa0959HADBI1RuWUDssADzowpSes8m2gBgO4Peeg==",
+ "dev": true
+ },
+ "node_modules/eleventy-plugin-embed-twitter": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitter/-/eleventy-plugin-embed-twitter-1.4.0.tgz",
+ "integrity": "sha512-1e2oI0OJiVStywT48h6/IJDT4+XlH5EEVT1z87qV8wABAA022m2ozKuog21EEoI217aV2AM89R/FZ1oo1eD/mA==",
+ "dev": true,
+ "dependencies": {
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "deepmerge": "^4.3.1"
+ }
+ },
+ "node_modules/eleventy-plugin-vimeo-embed": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-vimeo-embed/-/eleventy-plugin-vimeo-embed-1.3.8.tgz",
+ "integrity": "sha512-XU/XH/lrx9slUifFiRCsFh8XiDsZxCBh5MnFU8wAz8u8rCFX9PpmyveJ2oeDtDZjEINqaDC+YFSPsxoq59S3cQ==",
+ "dev": true
+ },
+ "node_modules/eleventy-plugin-youtube-embed": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-youtube-embed/-/eleventy-plugin-youtube-embed-1.10.2.tgz",
+ "integrity": "sha512-N0068hshDe+sG50SEk4zLbwClaTeyl000WiqmNACRG2Iwb2/iTVV4IGTv7d1yWz/5DGVpsHMniboHJSyChvc9w==",
+ "dev": true,
+ "dependencies": {
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "deepmerge": "^4.3.1",
+ "lite-youtube-embed": "^0.3.0",
+ "string-replace-async": "^3.0.2"
+ }
+ },
+ "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/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/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/errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dev": true,
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "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/error-ex/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/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-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/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "dev": true,
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/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/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.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/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "dev": true,
+ "dependencies": {
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/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/filelist/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/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/finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "node_modules/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/flat-cache/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/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/foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "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/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-uri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz",
+ "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==",
+ "dev": true,
+ "dependencies": {
+ "basic-ftp": "^5.0.2",
+ "data-uri-to-buffer": "^5.0.1",
+ "debug": "^4.3.4",
+ "fs-extra": "^8.1.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "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/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/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "dev": true,
+ "dependencies": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/hamljs": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz",
+ "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==",
+ "dev": true
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/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/html-minifier-terser": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
+ "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
+ "dev": true,
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "clean-css": "~5.3.2",
+ "commander": "^10.0.0",
+ "entities": "^4.4.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.15.1"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/html-minifier-terser/node_modules/entities": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
+ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "node_modules/http-equiv-refresh": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz",
+ "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "dev": true,
+ "dependencies": {
+ "queue": "6.0.2"
+ },
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=16.x"
+ }
+ },
+ "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/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/ip": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
+ "dev": true
+ },
+ "node_modules/is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "dev": true,
+ "dependencies": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "dev": true
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-expression": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
+ "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+ "dev": true
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "dev": true
+ },
+ "node_modules/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/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/iso-639-1": {
+ "version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz",
+ "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jake": {
+ "version": "10.8.5",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
+ "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
+ "dev": true,
+ "dependencies": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/js-stringify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
+ "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==",
+ "dev": true
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jstransformer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
+ "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==",
+ "dev": true,
+ "dependencies": {
+ "is-promise": "^2.0.0",
+ "promise": "^7.0.1"
+ }
+ },
+ "node_modules/junk": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz",
+ "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/liquidjs": {
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.7.0.tgz",
+ "integrity": "sha512-AEgEgbybxc17h2WBl5DTzj1tNy18ANpM/KJ2LigkNBwd/8sBc0uDaJH/MnvUbv1t2Md5RArTTZj5Wq1MGncIbg==",
+ "dev": true,
+ "dependencies": {
+ "commander": "^10.0.0"
+ },
+ "bin": {
+ "liquid": "bin/liquid.js",
+ "liquidjs": "bin/liquid.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/liquidjs"
+ }
+ },
+ "node_modules/list-to-array": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz",
+ "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==",
+ "dev": true
+ },
+ "node_modules/lite-youtube-embed": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.3.0.tgz",
+ "integrity": "sha512-3DUqE1C4s/+a8PVM4ik8anBsmHOW0zUavPyFQWugBulKyQpbZFE+/268Aq/pDNW7hRQJXkXpk4QjdSCpwf7Cvg==",
+ "dev": true
+ },
+ "node_modules/lodash.deburr": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
+ "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==",
+ "dev": true
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "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/luxon": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
+ "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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-ins": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-4.0.0.tgz",
+ "integrity": "sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew==",
+ "dev": true
+ },
+ "node_modules/markdown-it-mark": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-4.0.0.tgz",
+ "integrity": "sha512-YLhzaOsU9THO/cal0lUjfMjrqSMPjjyjChYM7oyj4DnyaXEzA8gnW6cVJeyCrCVeyesrY2PlEdUYJSPFYL4Nkg==",
+ "dev": true
+ },
+ "node_modules/markdown-it-sub": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz",
+ "integrity": "sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==",
+ "dev": true
+ },
+ "node_modules/markdown-it-sup": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz",
+ "integrity": "sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==",
+ "dev": true
+ },
+ "node_modules/markdown-it/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/maximatch": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
+ "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==",
+ "dev": true,
+ "dependencies": {
+ "array-differ": "^1.0.0",
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "minimatch": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/maximatch/node_modules/array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/maximatch/node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dev": true,
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/maximatch/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/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/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/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true
+ },
+ "node_modules/moo": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
+ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
+ "dev": true
+ },
+ "node_modules/morphdom": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.0.tgz",
+ "integrity": "sha512-8L8DwbdjjWwM/aNqj7BSoSn4G7SQLNiDcxCnMWbf506jojR6lNQ5YOmQqXEIE8u3C492UlkN4d0hQwz97+M1oQ==",
+ "dev": true
+ },
+ "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/multimatch": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
+ "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
+ "dev": true,
+ "dependencies": {
+ "@types/minimatch": "^3.0.3",
+ "array-differ": "^3.0.0",
+ "array-union": "^2.1.0",
+ "arrify": "^2.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mustache": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
+ "dev": true,
+ "bin": {
+ "mustache": "bin/mustache"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
+ "node_modules/netmask": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "dependencies": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "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/node-html-to-image": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/node-html-to-image/-/node-html-to-image-4.0.0.tgz",
+ "integrity": "sha512-lB8fkRleAKG4afJ2Wr7qJzIA5+//ue9OEoz+BMxQsowriGKR8sf4j4lK/pIXKakYwf/3aZHoDUNgOXuJ4HOzYA==",
+ "dev": true,
+ "dependencies": {
+ "handlebars": "4.7.8",
+ "puppeteer": "21.0.1",
+ "puppeteer-cluster": "^0.23.0"
+ }
+ },
+ "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/nunjucks": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz",
+ "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==",
+ "dev": true,
+ "dependencies": {
+ "a-sync-waterfall": "^1.0.0",
+ "asap": "^2.0.3",
+ "commander": "^5.1.0"
+ },
+ "bin": {
+ "nunjucks-precompile": "bin/precompile"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nunjucks/node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-queue": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
+ "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
+ "dev": true,
+ "dependencies": {
+ "eventemitter3": "^4.0.4",
+ "p-timeout": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-timeout": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+ "dev": true,
+ "dependencies": {
+ "p-finally": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pac-proxy-agent": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz",
+ "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==",
+ "dev": true,
+ "dependencies": {
+ "@tootallnate/quickjs-emscripten": "^0.23.0",
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "get-uri": "^6.0.1",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.2",
+ "pac-resolver": "^7.0.0",
+ "socks-proxy-agent": "^8.0.2"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/pac-resolver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz",
+ "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==",
+ "dev": true,
+ "dependencies": {
+ "degenerator": "^5.0.0",
+ "ip": "^1.1.8",
+ "netmask": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "dev": true,
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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/parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
+ "dev": true
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/path-scurry/node_modules/minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
+ "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "dependencies": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "node_modules/posthtml": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+ "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+ "dev": true,
+ "dependencies": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "dev": true,
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "dev": true,
+ "dependencies": {
+ "is-json": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml-urls": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-urls/-/posthtml-urls-1.0.0.tgz",
+ "integrity": "sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==",
+ "dev": true,
+ "dependencies": {
+ "http-equiv-refresh": "^1.0.0",
+ "list-to-array": "^1.1.0",
+ "parse-srcset": "^1.0.2",
+ "promise-each": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
+ "node_modules/promise-each": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
+ "integrity": "sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==",
+ "dev": true,
+ "dependencies": {
+ "any-promise": "^0.1.0"
+ }
+ },
+ "node_modules/proxy-agent": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
+ "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.0",
+ "lru-cache": "^7.14.1",
+ "pac-proxy-agent": "^7.0.0",
+ "proxy-from-env": "^1.1.0",
+ "socks-proxy-agent": "^8.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/proxy-agent/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/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "node_modules/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "dev": true
+ },
+ "node_modules/pug": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz",
+ "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==",
+ "dev": true,
+ "dependencies": {
+ "pug-code-gen": "^3.0.2",
+ "pug-filters": "^4.0.0",
+ "pug-lexer": "^5.0.1",
+ "pug-linker": "^4.0.0",
+ "pug-load": "^3.0.0",
+ "pug-parser": "^6.0.0",
+ "pug-runtime": "^3.0.1",
+ "pug-strip-comments": "^2.0.0"
+ }
+ },
+ "node_modules/pug-attrs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
+ "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
+ "dev": true,
+ "dependencies": {
+ "constantinople": "^4.0.1",
+ "js-stringify": "^1.0.2",
+ "pug-runtime": "^3.0.0"
+ }
+ },
+ "node_modules/pug-code-gen": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz",
+ "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==",
+ "dev": true,
+ "dependencies": {
+ "constantinople": "^4.0.1",
+ "doctypes": "^1.1.0",
+ "js-stringify": "^1.0.2",
+ "pug-attrs": "^3.0.0",
+ "pug-error": "^2.0.0",
+ "pug-runtime": "^3.0.0",
+ "void-elements": "^3.1.0",
+ "with": "^7.0.0"
+ }
+ },
+ "node_modules/pug-error": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz",
+ "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==",
+ "dev": true
+ },
+ "node_modules/pug-filters": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
+ "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
+ "dev": true,
+ "dependencies": {
+ "constantinople": "^4.0.1",
+ "jstransformer": "1.0.0",
+ "pug-error": "^2.0.0",
+ "pug-walk": "^2.0.0",
+ "resolve": "^1.15.1"
+ }
+ },
+ "node_modules/pug-lexer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
+ "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
+ "dev": true,
+ "dependencies": {
+ "character-parser": "^2.2.0",
+ "is-expression": "^4.0.0",
+ "pug-error": "^2.0.0"
+ }
+ },
+ "node_modules/pug-linker": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
+ "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
+ "dev": true,
+ "dependencies": {
+ "pug-error": "^2.0.0",
+ "pug-walk": "^2.0.0"
+ }
+ },
+ "node_modules/pug-load": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
+ "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "pug-walk": "^2.0.0"
+ }
+ },
+ "node_modules/pug-parser": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
+ "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
+ "dev": true,
+ "dependencies": {
+ "pug-error": "^2.0.0",
+ "token-stream": "1.0.0"
+ }
+ },
+ "node_modules/pug-runtime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
+ "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==",
+ "dev": true
+ },
+ "node_modules/pug-strip-comments": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
+ "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
+ "dev": true,
+ "dependencies": {
+ "pug-error": "^2.0.0"
+ }
+ },
+ "node_modules/pug-walk": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
+ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==",
+ "dev": true
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/puppeteer": {
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.0.1.tgz",
+ "integrity": "sha512-KTjmSdPZ6bMkq3EbAzAUhcB3gMDXvdwd6912rxG9hNtjwRJzHSA568vh6vIbO2WQeNmozRdt1LtiUMLSWfeMrg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@puppeteer/browsers": "1.5.0",
+ "cosmiconfig": "8.2.0",
+ "puppeteer-core": "21.0.1"
+ },
+ "engines": {
+ "node": ">=16.3.0"
+ }
+ },
+ "node_modules/puppeteer-cluster": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-cluster/-/puppeteer-cluster-0.23.0.tgz",
+ "integrity": "sha512-108terIWDzPrQopmoYSPd5yDoy3FGJ2dNnoGMkGYPs6xtkdhgaECwpfZkzaRToMQPZibUOz0/dSSGgPEdXEhkQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.3"
+ },
+ "peerDependencies": {
+ "puppeteer": ">=1.5.0"
+ }
+ },
+ "node_modules/puppeteer-core": {
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.0.1.tgz",
+ "integrity": "sha512-E8eWLGhaZZpa7dYe/58qGX7SLb4mTg42NP5M7B+ibPrncgNjTOQa9x1sFIlTn1chF/BmoZqOcMIvwuxcb/9XzQ==",
+ "dev": true,
+ "dependencies": {
+ "@puppeteer/browsers": "1.5.0",
+ "chromium-bidi": "0.4.20",
+ "cross-fetch": "4.0.0",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.1147663",
+ "ws": "8.13.0"
+ },
+ "engines": {
+ "node": ">=16.3.0"
+ }
+ },
+ "node_modules/queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "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/queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "dev": true
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/recursive-copy": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz",
+ "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==",
+ "dev": true,
+ "dependencies": {
+ "errno": "^0.1.2",
+ "graceful-fs": "^4.1.4",
+ "junk": "^1.0.1",
+ "maximatch": "^0.1.0",
+ "mkdirp": "^0.5.1",
+ "pify": "^2.3.0",
+ "promise": "^7.0.1",
+ "rimraf": "^2.7.1",
+ "slash": "^1.0.0"
+ }
+ },
+ "node_modules/recursive-copy/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/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": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/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/rimraf/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/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/section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
+ },
+ "node_modules/sharp": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz",
+ "integrity": "sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.2",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "libvips": ">=8.15.1",
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-darwin-arm64": "0.33.2",
+ "@img/sharp-darwin-x64": "0.33.2",
+ "@img/sharp-libvips-darwin-arm64": "1.0.1",
+ "@img/sharp-libvips-darwin-x64": "1.0.1",
+ "@img/sharp-libvips-linux-arm": "1.0.1",
+ "@img/sharp-libvips-linux-arm64": "1.0.1",
+ "@img/sharp-libvips-linux-s390x": "1.0.1",
+ "@img/sharp-libvips-linux-x64": "1.0.1",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.1",
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.1",
+ "@img/sharp-linux-arm": "0.33.2",
+ "@img/sharp-linux-arm64": "0.33.2",
+ "@img/sharp-linux-s390x": "0.33.2",
+ "@img/sharp-linux-x64": "0.33.2",
+ "@img/sharp-linuxmusl-arm64": "0.33.2",
+ "@img/sharp-linuxmusl-x64": "0.33.2",
+ "@img/sharp-wasm32": "0.33.2",
+ "@img/sharp-win32-ia32": "0.33.2",
+ "@img/sharp-win32-x64": "0.33.2"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "dev": true,
+ "dependencies": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks-proxy-agent": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
+ "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "socks": "^2.7.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/socks/node_modules/ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
+ "dev": true
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dev": true,
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/streamx": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
+ "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
+ "dev": true,
+ "dependencies": {
+ "fast-fifo": "^1.1.0",
+ "queue-tick": "^1.0.1"
+ }
+ },
+ "node_modules/string-replace-async": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/string-replace-async/-/string-replace-async-3.0.2.tgz",
+ "integrity": "sha512-s6hDtXJ7FKyRap/amefqrOMpkEQvxUDueyvJygQeHxCK5Za90dOMgdibCCrPdfdAYAkr8imrZ1PPXW7DOf0RzQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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-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/tar-fs": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+ "dev": true,
+ "dependencies": {
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
+ "dev": true,
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.27.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
+ "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/token-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
+ "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==",
+ "dev": true
+ },
+ "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/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+ "dev": true
+ },
+ "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/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "dev": true,
+ "dependencies": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.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/with": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
+ "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
+ "assert-never": "^1.2.1",
+ "babel-walk": "3.0.0-canary-5"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/ws": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/yargs": {
+ "version": "17.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ },
+ "dependencies": {
+ "@11ty/dependency-tree": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz",
+ "integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==",
+ "dev": true
+ },
+ "@11ty/eleventy": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz",
+ "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==",
+ "dev": true,
+ "requires": {
+ "@11ty/dependency-tree": "^2.0.1",
+ "@11ty/eleventy-dev-server": "^1.0.4",
+ "@11ty/eleventy-utils": "^1.0.1",
+ "@11ty/lodash-custom": "^4.17.21",
+ "@iarna/toml": "^2.2.5",
+ "@sindresorhus/slugify": "^1.1.2",
+ "bcp-47-normalize": "^1.1.1",
+ "chokidar": "^3.5.3",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.3.4",
+ "dependency-graph": "^0.11.0",
+ "ejs": "^3.1.9",
+ "fast-glob": "^3.2.12",
+ "graceful-fs": "^4.2.11",
+ "gray-matter": "^4.0.3",
+ "hamljs": "^0.6.2",
+ "handlebars": "^4.7.7",
+ "is-glob": "^4.0.3",
+ "iso-639-1": "^2.1.15",
+ "kleur": "^4.1.5",
+ "liquidjs": "^10.7.0",
+ "luxon": "^3.3.0",
+ "markdown-it": "^13.0.1",
+ "micromatch": "^4.0.5",
+ "minimist": "^1.2.8",
+ "moo": "^0.5.2",
+ "multimatch": "^5.0.0",
+ "mustache": "^4.2.0",
+ "normalize-path": "^3.0.0",
+ "nunjucks": "^3.2.3",
+ "path-to-regexp": "^6.2.1",
+ "please-upgrade-node": "^3.2.0",
+ "posthtml": "^0.16.6",
+ "posthtml-urls": "^1.0.0",
+ "pug": "^3.0.2",
+ "recursive-copy": "^2.0.14",
+ "semver": "^7.3.8",
+ "slugify": "^1.6.6"
+ }
+ },
+ "@11ty/eleventy-dev-server": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.4.tgz",
+ "integrity": "sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==",
+ "dev": true,
+ "requires": {
+ "@11ty/eleventy-utils": "^1.0.1",
+ "chokidar": "^3.5.3",
+ "debug": "^4.3.4",
+ "dev-ip": "^1.0.1",
+ "finalhandler": "^1.2.0",
+ "mime": "^3.0.0",
+ "minimist": "^1.2.8",
+ "morphdom": "^2.7.0",
+ "please-upgrade-node": "^3.2.0",
+ "ssri": "^8.0.1",
+ "ws": "^8.13.0"
+ }
+ },
+ "@11ty/eleventy-fetch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.0.tgz",
+ "integrity": "sha512-wGAd0r+8DUWr22fK5r07dOKuNY6ltA7hX+sJzngGZL1yJmuUVdM/xPQZ+iq0BFgf/ZeRdpVEzf2D0cpVZUuiTg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4",
+ "flat-cache": "^3.0.4",
+ "node-fetch": "^2.6.7",
+ "p-queue": "^6.6.2"
+ }
+ },
+ "@11ty/eleventy-img": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-4.0.1.tgz",
+ "integrity": "sha512-WcZiwPhSgBcR9hdRfK/GDHZFkaM6HylRd48zKZkNSSQJhCdo1uwHnnciVV7vWk1GXH4+Sz/P8wxw1MDN5jsogg==",
+ "dev": true,
+ "requires": {
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "brotli-size": "^4.0.0",
+ "debug": "^4.3.4",
+ "entities": "^4.5.0",
+ "image-size": "^1.1.1",
+ "p-queue": "^6.6.2",
+ "sharp": "^0.33.2"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true
+ }
+ }
+ },
+ "@11ty/eleventy-plugin-rss": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.2.0.tgz",
+ "integrity": "sha512-YzFnSH/5pObcFnqZ2sAQ782WmpOZHj1+xB9ydY/0j7BZ2jUNahn53VmwCB/sBRwXA/Fbwwj90q1MLo01Ru0UaQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4",
+ "posthtml": "^0.16.6",
+ "posthtml-urls": "1.0.0"
+ }
+ },
+ "@11ty/eleventy-plugin-syntaxhighlight": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-5.0.0.tgz",
+ "integrity": "sha512-y9BUmP1GofmbJgxM1+ky/UpFCpD8JSOeLeKItUs0WApgnrHk9haHziW7lS86lbArX5SiCVo4zTTw9x53gvRCaA==",
+ "dev": true,
+ "requires": {
+ "prismjs": "^1.29.0"
+ }
+ },
+ "@11ty/eleventy-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz",
+ "integrity": "sha512-HPpCTz4PzudcQU+i+x6GSNHVqgnvRhnVYg5dLKaAoRWLN966odAGsBxKSyhF8i1MdlOPtsytYb2AGWP7jISC5w==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0"
+ }
+ },
+ "@11ty/lodash-custom": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz",
+ "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==",
+ "dev": true
+ },
+ "@alpinejs/intersect": {
+ "version": "3.13.5",
+ "resolved": "https://registry.npmjs.org/@alpinejs/intersect/-/intersect-3.13.5.tgz",
+ "integrity": "sha512-wBveYNRuZoFFirRq4GmUx1JgD5/7S9b10l8Ps5wQJX/deiRXTY8f1Op0zVTkmIoHLpXyouSsOZz9/U/lPU3NZw==",
+ "dev": true
+ },
+ "@babel/code-frame": {
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz",
+ "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
+ "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.22.5",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/parser": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
+ "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
+ "dev": true
+ },
+ "@babel/types": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
+ "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@emnapi/runtime": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz",
+ "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "@iarna/toml": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
+ "dev": true
+ },
+ "@img/sharp-darwin-arm64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz",
+ "integrity": "sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-darwin-arm64": "1.0.1"
+ }
+ },
+ "@img/sharp-darwin-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz",
+ "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-darwin-x64": "1.0.1"
+ }
+ },
+ "@img/sharp-libvips-darwin-arm64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz",
+ "integrity": "sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-darwin-x64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz",
+ "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-linux-arm": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz",
+ "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-linux-arm64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz",
+ "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-linux-s390x": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz",
+ "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-linux-x64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz",
+ "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz",
+ "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz",
+ "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-linux-arm": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz",
+ "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-linux-arm": "1.0.1"
+ }
+ },
+ "@img/sharp-linux-arm64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz",
+ "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-linux-arm64": "1.0.1"
+ }
+ },
+ "@img/sharp-linux-s390x": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz",
+ "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-linux-s390x": "1.0.1"
+ }
+ },
+ "@img/sharp-linux-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz",
+ "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-linux-x64": "1.0.1"
+ }
+ },
+ "@img/sharp-linuxmusl-arm64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz",
+ "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.1"
+ }
+ },
+ "@img/sharp-linuxmusl-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz",
+ "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.1"
+ }
+ },
+ "@img/sharp-wasm32": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz",
+ "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@emnapi/runtime": "^0.45.0"
+ }
+ },
+ "@img/sharp-win32-ia32": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz",
+ "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==",
+ "dev": true,
+ "optional": true
+ },
+ "@img/sharp-win32-x64": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz",
+ "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==",
+ "dev": true,
+ "optional": true
+ },
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz",
+ "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ },
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ }
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true
+ },
+ "@puppeteer/browsers": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.5.0.tgz",
+ "integrity": "sha512-za318PweGINh5LnHSph7C4xhs0tmRjCD8EPpzcKlw4nzSPhnULj+LTG3+TGefZvW1ti5gjw2JkdQvQsivBeZlg==",
+ "dev": true,
+ "requires": {
+ "debug": "4.3.4",
+ "extract-zip": "2.0.1",
+ "progress": "2.0.3",
+ "proxy-agent": "6.3.0",
+ "tar-fs": "3.0.4",
+ "unbzip2-stream": "1.4.3",
+ "yargs": "17.7.1"
+ }
+ },
+ "@sindresorhus/slugify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz",
+ "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/transliterate": "^0.1.1",
+ "escape-string-regexp": "^4.0.0"
+ }
+ },
+ "@sindresorhus/transliterate": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz",
+ "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^2.0.0",
+ "lodash.deburr": "^4.1.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true
+ }
+ }
+ },
+ "@tootallnate/quickjs-emscripten": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
+ "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
+ "dev": true
+ },
+ "@types/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "20.5.9",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz",
+ "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@vue/reactivity": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
+ "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
+ "dev": true,
+ "requires": {
+ "@vue/shared": "3.1.5"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
+ "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==",
+ "dev": true
+ },
+ "a-sync-waterfall": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
+ "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true
+ },
+ "agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4"
+ }
+ },
+ "alpinejs": {
+ "version": "3.13.5",
+ "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.13.5.tgz",
+ "integrity": "sha512-1d2XeNGN+Zn7j4mUAKXtAgdc4/rLeadyTMWeJGXF5DzwawPBxwTiBhFFm6w/Ei8eJxUZeyNWWSD9zknfdz1kEw==",
+ "dev": true,
+ "requires": {
+ "@vue/reactivity": "~3.1.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "any-promise": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
+ "integrity": "sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "array-differ": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
+ "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true
+ },
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "dev": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true
+ },
+ "assert-never": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
+ "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==",
+ "dev": true
+ },
+ "ast-types": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
+ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.0.1"
+ }
+ },
+ "async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "dev": true
+ },
+ "b4a": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==",
+ "dev": true
+ },
+ "babel-walk": {
+ "version": "3.0.0-canary-5",
+ "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
+ "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.9.6"
+ }
+ },
+ "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
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
+ "basic-ftp": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz",
+ "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==",
+ "dev": true
+ },
+ "bcp-47": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz",
+ "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ }
+ },
+ "bcp-47-match": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz",
+ "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==",
+ "dev": true
+ },
+ "bcp-47-normalize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz",
+ "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==",
+ "dev": true,
+ "requires": {
+ "bcp-47": "^1.0.0",
+ "bcp-47-match": "^1.0.0"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "brotli-size": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz",
+ "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "character-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
+ "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==",
+ "dev": true,
+ "requires": {
+ "is-regex": "^1.0.3"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "chromium-bidi": {
+ "version": "0.4.20",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.20.tgz",
+ "integrity": "sha512-ruHgVZFEv00mAQMz1tQjfjdG63jiPWrQPF6HLlX2ucqLqVTJoWngeBEKHaJ6n1swV/HSvgnBNbtTRIlcVyW3Fw==",
+ "dev": true,
+ "requires": {
+ "mitt": "3.0.1"
+ }
+ },
+ "clean-css": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+ "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.6.0"
+ }
+ },
+ "cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dev": true,
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "commander": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "constantinople": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
+ "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.6.0",
+ "@babel/types": "^7.6.1"
+ }
+ },
+ "cosmiconfig": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
+ "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0"
+ },
+ "dependencies": {
+ "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
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ }
+ }
+ },
+ "cross-fetch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
+ "dev": true,
+ "requires": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "data-uri-to-buffer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz",
+ "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true
+ },
+ "degenerator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
+ "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
+ "dev": true,
+ "requires": {
+ "ast-types": "^0.13.4",
+ "escodegen": "^2.1.0",
+ "esprima": "^4.0.1"
+ }
+ },
+ "dependency-graph": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
+ "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
+ "dev": true
+ },
+ "detect-libc": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+ "dev": true
+ },
+ "dev-ip": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
+ "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==",
+ "dev": true
+ },
+ "devtools-protocol": {
+ "version": "0.0.1147663",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz",
+ "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==",
+ "dev": true
+ },
+ "doctypes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
+ "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==",
+ "dev": true
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true
+ },
+ "ejs": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+ "dev": true,
+ "requires": {
+ "jake": "^10.8.5"
+ }
+ },
+ "eleventy-plugin-embed-everything": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-everything/-/eleventy-plugin-embed-everything-1.18.2.tgz",
+ "integrity": "sha512-J/zxLnYN7bhVlbEnqxSswxKis6VjDndUFnE3I9ZdCzGFzlWVrXj933w5DOCobx/OZesuYN9VmapNgAHsGvFoAg==",
+ "dev": true,
+ "requires": {
+ "deepmerge": "^4.3.1",
+ "eleventy-plugin-embed-instagram": "^1.2.7",
+ "eleventy-plugin-embed-soundcloud": "^1.2.7",
+ "eleventy-plugin-embed-spotify": "^1.3.0",
+ "eleventy-plugin-embed-ted": "^1.0.1",
+ "eleventy-plugin-embed-tiktok": "^1.1.7",
+ "eleventy-plugin-embed-twitch": "^1.2.7",
+ "eleventy-plugin-embed-twitter": "^1.4.0",
+ "eleventy-plugin-vimeo-embed": "^1.3.8",
+ "eleventy-plugin-youtube-embed": "^1.10.2"
+ }
+ },
+ "eleventy-plugin-embed-instagram": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-instagram/-/eleventy-plugin-embed-instagram-1.2.7.tgz",
+ "integrity": "sha512-v6uSqeZiZU5L40lr4NTGBr+2Wbc81SqbNIllESEBQDFhS68g253WqkLaNs7gGh0k5hxhNuMt7ZZEBfous7jksw==",
+ "dev": true
+ },
+ "eleventy-plugin-embed-soundcloud": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-soundcloud/-/eleventy-plugin-embed-soundcloud-1.2.7.tgz",
+ "integrity": "sha512-0+VNeEcMiRySmyTmPmMhCwkbds44k9W4jWqUwjvk665TRagiXcCdj/BK2wl8vyiVrn/0arWeSCpol4NBb6BIvA==",
+ "dev": true,
+ "requires": {
+ "@11ty/eleventy-fetch": "^4.0.0"
+ }
+ },
+ "eleventy-plugin-embed-spotify": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-spotify/-/eleventy-plugin-embed-spotify-1.3.0.tgz",
+ "integrity": "sha512-waVUtW5PO9aKYQEjnvHG4P5bPyKj+SSUBuDtqfF2K+j7dGItmEDD4DP7CmBz6lkn/LlJGmJ7uT4Mr6L4jAP4bg==",
+ "dev": true
+ },
+ "eleventy-plugin-embed-ted": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-ted/-/eleventy-plugin-embed-ted-1.0.1.tgz",
+ "integrity": "sha512-F1CayKC05sGDAcdEgaZUP3Cs/71mwLT717sIUUiZWu+Gjd1Lp7m2gqL1R/uKnHN/CFxKYTpAA6ZNN/LCjg0ufw==",
+ "dev": true
+ },
+ "eleventy-plugin-embed-tiktok": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-tiktok/-/eleventy-plugin-embed-tiktok-1.1.7.tgz",
+ "integrity": "sha512-Yb/95hafIsKVsV11ebsX0PoYzpLQWWSbdznbvPfA0HIKjfTHGEt1q0XX5DRGPnn5tor7lM5sha9DMQPzJb/oGQ==",
+ "dev": true
+ },
+ "eleventy-plugin-embed-twitch": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitch/-/eleventy-plugin-embed-twitch-1.2.7.tgz",
+ "integrity": "sha512-E3oUtk5HhfgBaH9xpcnnByoddyyxuj0uhTzxD+UF5ftUU4pa0959HADBI1RuWUDssADzowpSes8m2gBgO4Peeg==",
+ "dev": true
+ },
+ "eleventy-plugin-embed-twitter": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitter/-/eleventy-plugin-embed-twitter-1.4.0.tgz",
+ "integrity": "sha512-1e2oI0OJiVStywT48h6/IJDT4+XlH5EEVT1z87qV8wABAA022m2ozKuog21EEoI217aV2AM89R/FZ1oo1eD/mA==",
+ "dev": true,
+ "requires": {
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "deepmerge": "^4.3.1"
+ }
+ },
+ "eleventy-plugin-vimeo-embed": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-vimeo-embed/-/eleventy-plugin-vimeo-embed-1.3.8.tgz",
+ "integrity": "sha512-XU/XH/lrx9slUifFiRCsFh8XiDsZxCBh5MnFU8wAz8u8rCFX9PpmyveJ2oeDtDZjEINqaDC+YFSPsxoq59S3cQ==",
+ "dev": true
+ },
+ "eleventy-plugin-youtube-embed": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-youtube-embed/-/eleventy-plugin-youtube-embed-1.10.2.tgz",
+ "integrity": "sha512-N0068hshDe+sG50SEk4zLbwClaTeyl000WiqmNACRG2Iwb2/iTVV4IGTv7d1yWz/5DGVpsHMniboHJSyChvc9w==",
+ "dev": true,
+ "requires": {
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "deepmerge": "^4.3.1",
+ "lite-youtube-embed": "^0.3.0",
+ "string-replace-async": "^3.0.2"
+ }
+ },
+ "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
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
+ "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
+ },
+ "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
+ },
+ "escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "dev": true,
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2",
+ "source-map": "~0.6.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "requires": {
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ }
+ },
+ "fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "dev": true,
+ "requires": {
+ "minimatch": "^5.0.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ }
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "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
+ },
+ "foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "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
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-uri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz",
+ "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==",
+ "dev": true,
+ "requires": {
+ "basic-ftp": "^5.0.2",
+ "data-uri-to-buffer": "^5.0.1",
+ "debug": "^4.3.4",
+ "fs-extra": "^8.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "dev": true,
+ "requires": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ }
+ },
+ "hamljs": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz",
+ "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4",
+ "wordwrap": "^1.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "html-minifier-terser": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
+ "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
+ "dev": true,
+ "requires": {
+ "camel-case": "^4.1.2",
+ "clean-css": "~5.3.2",
+ "commander": "^10.0.0",
+ "entities": "^4.4.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.15.1"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
+ "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
+ "dev": true
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "http-equiv-refresh": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz",
+ "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==",
+ "dev": true
+ },
+ "http-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
+ "image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "dev": true,
+ "requires": {
+ "queue": "6.0.2"
+ }
+ },
+ "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,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ip": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
+ "dev": true
+ },
+ "is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+ "dev": true
+ },
+ "is-expression": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
+ "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.1.1",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "dev": true
+ },
+ "is-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,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "iso-639-1": {
+ "version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz",
+ "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==",
+ "dev": true
+ },
+ "jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
+ "requires": {
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "jake": {
+ "version": "10.8.5",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
+ "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
+ "dev": true,
+ "requires": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "js-stringify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
+ "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jstransformer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
+ "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.0.0",
+ "promise": "^7.0.1"
+ }
+ },
+ "junk": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz",
+ "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==",
+ "dev": true
+ },
+ "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
+ },
+ "kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "liquidjs": {
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.7.0.tgz",
+ "integrity": "sha512-AEgEgbybxc17h2WBl5DTzj1tNy18ANpM/KJ2LigkNBwd/8sBc0uDaJH/MnvUbv1t2Md5RArTTZj5Wq1MGncIbg==",
+ "dev": true,
+ "requires": {
+ "commander": "^10.0.0"
+ }
+ },
+ "list-to-array": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz",
+ "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==",
+ "dev": true
+ },
+ "lite-youtube-embed": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.3.0.tgz",
+ "integrity": "sha512-3DUqE1C4s/+a8PVM4ik8anBsmHOW0zUavPyFQWugBulKyQpbZFE+/268Aq/pDNW7hRQJXkXpk4QjdSCpwf7Cvg==",
+ "dev": true
+ },
+ "lodash.deburr": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
+ "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==",
+ "dev": true
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "luxon": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
+ "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "argparse": "^2.0.1",
+ "entities": "~3.0.1",
+ "linkify-it": "^4.0.1",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "markdown-it-ins": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-4.0.0.tgz",
+ "integrity": "sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew==",
+ "dev": true
+ },
+ "markdown-it-mark": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-4.0.0.tgz",
+ "integrity": "sha512-YLhzaOsU9THO/cal0lUjfMjrqSMPjjyjChYM7oyj4DnyaXEzA8gnW6cVJeyCrCVeyesrY2PlEdUYJSPFYL4Nkg==",
+ "dev": true
+ },
+ "markdown-it-sub": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz",
+ "integrity": "sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==",
+ "dev": true
+ },
+ "markdown-it-sup": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz",
+ "integrity": "sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==",
+ "dev": true
+ },
+ "maximatch": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
+ "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==",
+ "dev": true,
+ "requires": {
+ "array-differ": "^1.0.0",
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "minimatch": "^3.0.0"
+ },
+ "dependencies": {
+ "array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true
+ }
+ }
+ },
+ "mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
+ "minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.6"
+ }
+ },
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true
+ },
+ "moo": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
+ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
+ "dev": true
+ },
+ "morphdom": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.0.tgz",
+ "integrity": "sha512-8L8DwbdjjWwM/aNqj7BSoSn4G7SQLNiDcxCnMWbf506jojR6lNQ5YOmQqXEIE8u3C492UlkN4d0hQwz97+M1oQ==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "multimatch": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
+ "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "^3.0.3",
+ "array-differ": "^3.0.0",
+ "array-union": "^2.1.0",
+ "arrify": "^2.0.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "mustache": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
+ "netmask": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
+ "dev": true
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ },
+ "node-html-to-image": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/node-html-to-image/-/node-html-to-image-4.0.0.tgz",
+ "integrity": "sha512-lB8fkRleAKG4afJ2Wr7qJzIA5+//ue9OEoz+BMxQsowriGKR8sf4j4lK/pIXKakYwf/3aZHoDUNgOXuJ4HOzYA==",
+ "dev": true,
+ "requires": {
+ "handlebars": "4.7.8",
+ "puppeteer": "21.0.1",
+ "puppeteer-cluster": "^0.23.0"
+ }
+ },
+ "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
+ },
+ "nunjucks": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz",
+ "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==",
+ "dev": true,
+ "requires": {
+ "a-sync-waterfall": "^1.0.0",
+ "asap": "^2.0.3",
+ "commander": "^5.1.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "dev": true
+ }
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "dev": true
+ },
+ "p-queue": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
+ "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.4",
+ "p-timeout": "^3.2.0"
+ }
+ },
+ "p-timeout": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+ "dev": true,
+ "requires": {
+ "p-finally": "^1.0.0"
+ }
+ },
+ "pac-proxy-agent": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz",
+ "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==",
+ "dev": true,
+ "requires": {
+ "@tootallnate/quickjs-emscripten": "^0.23.0",
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "get-uri": "^6.0.1",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.2",
+ "pac-resolver": "^7.0.0",
+ "socks-proxy-agent": "^8.0.2"
+ }
+ },
+ "pac-resolver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz",
+ "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==",
+ "dev": true,
+ "requires": {
+ "degenerator": "^5.0.0",
+ "ip": "^1.1.8",
+ "netmask": "^2.0.2"
+ }
+ },
+ "param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "dev": true,
+ "requires": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "path-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,
+ "requires": {
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "dev": true
+ },
+ "minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true
+ }
+ }
+ },
+ "path-to-regexp": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
+ "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true
+ },
+ "please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "requires": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "posthtml": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+ "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+ "dev": true,
+ "requires": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ }
+ },
+ "posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^7.1.1"
+ }
+ },
+ "posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "dev": true,
+ "requires": {
+ "is-json": "^2.0.1"
+ }
+ },
+ "posthtml-urls": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-urls/-/posthtml-urls-1.0.0.tgz",
+ "integrity": "sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==",
+ "dev": true,
+ "requires": {
+ "http-equiv-refresh": "^1.0.0",
+ "list-to-array": "^1.1.0",
+ "parse-srcset": "^1.0.2",
+ "promise-each": "^2.2.0"
+ }
+ },
+ "prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "promise-each": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
+ "integrity": "sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==",
+ "dev": true,
+ "requires": {
+ "any-promise": "^0.1.0"
+ }
+ },
+ "proxy-agent": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
+ "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.0",
+ "lru-cache": "^7.14.1",
+ "pac-proxy-agent": "^7.0.0",
+ "proxy-from-env": "^1.1.0",
+ "socks-proxy-agent": "^8.0.1"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "dev": true
+ },
+ "pug": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz",
+ "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==",
+ "dev": true,
+ "requires": {
+ "pug-code-gen": "^3.0.2",
+ "pug-filters": "^4.0.0",
+ "pug-lexer": "^5.0.1",
+ "pug-linker": "^4.0.0",
+ "pug-load": "^3.0.0",
+ "pug-parser": "^6.0.0",
+ "pug-runtime": "^3.0.1",
+ "pug-strip-comments": "^2.0.0"
+ }
+ },
+ "pug-attrs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
+ "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
+ "dev": true,
+ "requires": {
+ "constantinople": "^4.0.1",
+ "js-stringify": "^1.0.2",
+ "pug-runtime": "^3.0.0"
+ }
+ },
+ "pug-code-gen": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz",
+ "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==",
+ "dev": true,
+ "requires": {
+ "constantinople": "^4.0.1",
+ "doctypes": "^1.1.0",
+ "js-stringify": "^1.0.2",
+ "pug-attrs": "^3.0.0",
+ "pug-error": "^2.0.0",
+ "pug-runtime": "^3.0.0",
+ "void-elements": "^3.1.0",
+ "with": "^7.0.0"
+ }
+ },
+ "pug-error": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz",
+ "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==",
+ "dev": true
+ },
+ "pug-filters": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
+ "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
+ "dev": true,
+ "requires": {
+ "constantinople": "^4.0.1",
+ "jstransformer": "1.0.0",
+ "pug-error": "^2.0.0",
+ "pug-walk": "^2.0.0",
+ "resolve": "^1.15.1"
+ }
+ },
+ "pug-lexer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
+ "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
+ "dev": true,
+ "requires": {
+ "character-parser": "^2.2.0",
+ "is-expression": "^4.0.0",
+ "pug-error": "^2.0.0"
+ }
+ },
+ "pug-linker": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
+ "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
+ "dev": true,
+ "requires": {
+ "pug-error": "^2.0.0",
+ "pug-walk": "^2.0.0"
+ }
+ },
+ "pug-load": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
+ "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "pug-walk": "^2.0.0"
+ }
+ },
+ "pug-parser": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
+ "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
+ "dev": true,
+ "requires": {
+ "pug-error": "^2.0.0",
+ "token-stream": "1.0.0"
+ }
+ },
+ "pug-runtime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
+ "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==",
+ "dev": true
+ },
+ "pug-strip-comments": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
+ "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
+ "dev": true,
+ "requires": {
+ "pug-error": "^2.0.0"
+ }
+ },
+ "pug-walk": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
+ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "puppeteer": {
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.0.1.tgz",
+ "integrity": "sha512-KTjmSdPZ6bMkq3EbAzAUhcB3gMDXvdwd6912rxG9hNtjwRJzHSA568vh6vIbO2WQeNmozRdt1LtiUMLSWfeMrg==",
+ "dev": true,
+ "requires": {
+ "@puppeteer/browsers": "1.5.0",
+ "cosmiconfig": "8.2.0",
+ "puppeteer-core": "21.0.1"
+ }
+ },
+ "puppeteer-cluster": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-cluster/-/puppeteer-cluster-0.23.0.tgz",
+ "integrity": "sha512-108terIWDzPrQopmoYSPd5yDoy3FGJ2dNnoGMkGYPs6xtkdhgaECwpfZkzaRToMQPZibUOz0/dSSGgPEdXEhkQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.3"
+ }
+ },
+ "puppeteer-core": {
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.0.1.tgz",
+ "integrity": "sha512-E8eWLGhaZZpa7dYe/58qGX7SLb4mTg42NP5M7B+ibPrncgNjTOQa9x1sFIlTn1chF/BmoZqOcMIvwuxcb/9XzQ==",
+ "dev": true,
+ "requires": {
+ "@puppeteer/browsers": "1.5.0",
+ "chromium-bidi": "0.4.20",
+ "cross-fetch": "4.0.0",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.1147663",
+ "ws": "8.13.0"
+ }
+ },
+ "queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "recursive-copy": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz",
+ "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.2",
+ "graceful-fs": "^4.1.4",
+ "junk": "^1.0.1",
+ "maximatch": "^0.1.0",
+ "mkdirp": "^0.5.1",
+ "pify": "^2.3.0",
+ "promise": "^7.0.1",
+ "rimraf": "^2.7.1",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "dev": true
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "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
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+ "dev": true,
+ "requires": {
+ "glob": "^10.3.7"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true
+ }
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
+ },
+ "sharp": {
+ "version": "0.33.2",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz",
+ "integrity": "sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==",
+ "dev": true,
+ "requires": {
+ "@img/sharp-darwin-arm64": "0.33.2",
+ "@img/sharp-darwin-x64": "0.33.2",
+ "@img/sharp-libvips-darwin-arm64": "1.0.1",
+ "@img/sharp-libvips-darwin-x64": "1.0.1",
+ "@img/sharp-libvips-linux-arm": "1.0.1",
+ "@img/sharp-libvips-linux-arm64": "1.0.1",
+ "@img/sharp-libvips-linux-s390x": "1.0.1",
+ "@img/sharp-libvips-linux-x64": "1.0.1",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.1",
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.1",
+ "@img/sharp-linux-arm": "0.33.2",
+ "@img/sharp-linux-arm64": "0.33.2",
+ "@img/sharp-linux-s390x": "0.33.2",
+ "@img/sharp-linux-x64": "0.33.2",
+ "@img/sharp-linuxmusl-arm64": "0.33.2",
+ "@img/sharp-linuxmusl-x64": "0.33.2",
+ "@img/sharp-wasm32": "0.33.2",
+ "@img/sharp-win32-ia32": "0.33.2",
+ "@img/sharp-win32-x64": "0.33.2",
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.2",
+ "semver": "^7.5.4"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==",
+ "dev": true
+ },
+ "slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "dev": true
+ },
+ "smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "dev": true
+ },
+ "socks": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "dev": true,
+ "requires": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ },
+ "dependencies": {
+ "ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
+ "dev": true
+ }
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
+ "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "socks": "^2.7.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.1.1"
+ }
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true
+ },
+ "streamx": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
+ "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
+ "dev": true,
+ "requires": {
+ "fast-fifo": "^1.1.0",
+ "queue-tick": "^1.0.1"
+ }
+ },
+ "string-replace-async": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/string-replace-async/-/string-replace-async-3.0.2.tgz",
+ "integrity": "sha512-s6hDtXJ7FKyRap/amefqrOMpkEQvxUDueyvJygQeHxCK5Za90dOMgdibCCrPdfdAYAkr8imrZ1PPXW7DOf0RzQ==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "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
+ },
+ "tar-fs": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+ "dev": true,
+ "requires": {
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ }
+ },
+ "tar-stream": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
+ "dev": true,
+ "requires": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ },
+ "terser": {
+ "version": "5.27.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
+ "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ }
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "token-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
+ "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==",
+ "dev": true
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+ "dev": true
+ },
+ "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
+ },
+ "uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "dev": true,
+ "optional": true
+ },
+ "unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true
+ },
+ "void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "dev": true
+ },
+ "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
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "with": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
+ "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
+ "assert-never": "^1.2.1",
+ "babel-walk": "3.0.0-canary-5"
+ }
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "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
+ },
+ "ws": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+ "dev": true,
+ "requires": {}
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..28099b8
--- /dev/null
+++ b/package.json
@@ -0,0 +1,70 @@
+{
+ "name": "MiguelPimentel.do",
+ "version": "1.0.3",
+ "description": "Personal website built with 11ty.",
+ "main": "index.js",
+ "scripts": {
+ "build": "export NODE_ENV=production && rimraf dist && npx @11ty/eleventy",
+ "dev": "rimraf dist && npx @11ty/eleventy --serve --watch",
+ "start": "rimraf dist && npx @11ty/eleventy --serve --watch --quiet",
+ "clean": "rimraf dist",
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "release-patch": "npm version patch --force && npm publish",
+ "release-minor": "npm version minor --force && npm publish",
+ "release-major": "npm version major --force && npm publish",
+ "check": "npx prettier . --check",
+ "format": "npx prettier . --write"
+ },
+ "bugs": {
+ "url": "https://github.com/semanticdata/miguel-pimentel-do/issues"
+ },
+ "keywords": [
+ "eleventy",
+ "11ty",
+ "starter",
+ "theme",
+ "i18n",
+ "rss",
+ "markdown",
+ "sitemaps",
+ "CSS",
+ "alpine"
+ ],
+ "author": {
+ "name": "Miguel Pimentel",
+ "url": "https://miguelpimentel.do",
+ "email": "contact@miguelpimentel.do"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@11ty/eleventy": "^2.0.1",
+ "@11ty/eleventy-fetch": "^4.0.0",
+ "@11ty/eleventy-img": "^4.0.2",
+ "@11ty/eleventy-plugin-rss": "^1.2.0",
+ "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
+ "@alpinejs/intersect": "^3.13.5",
+ "alpinejs": "^3.13.5",
+ "clean-css": "^5.3.3",
+ "eleventy-plugin-embed-everything": "^1.18.2",
+ "html-minifier-terser": "^7.2.0",
+ "lodash.get": "^4.4.2",
+ "mime-types": "^2.1.35",
+ "node-html-to-image": "^4.0.0",
+ "prettier": "^3.2.5",
+ "prettier-plugin-sh": "^0.14.0",
+ "rimraf": "^5.0.5",
+ "terser": "^5.28.1"
+ },
+ "dependencies": {
+ "eleventy-plugin-toc": "^1.1.5",
+ "markdown-it-anchor": "^8.6.7",
+ "markdown-it-attrs": "^4.1.6",
+ "markdown-it-footnote": "^4.0.0",
+ "markdown-it-ins": "^4.0.0",
+ "markdown-it-mark": "^4.0.0",
+ "markdown-it-sub": "^2.0.0",
+ "markdown-it-sup": "^2.0.0",
+ "markdown-it-table-of-contents": "^0.6.0",
+ "title-case": "^3.0.3"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..3fcb6c1
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,3255 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+dependencies:
+ eleventy-plugin-toc:
+ specifier: ^1.1.5
+ version: 1.1.5
+ markdown-it-anchor:
+ specifier: ^8.6.7
+ version: 8.6.7(@types/markdown-it@13.0.7)(markdown-it@14.0.0)
+ markdown-it-attrs:
+ specifier: ^4.1.6
+ version: 4.1.6(markdown-it@14.0.0)
+ markdown-it-footnote:
+ specifier: ^4.0.0
+ version: 4.0.0
+ markdown-it-ins:
+ specifier: ^4.0.0
+ version: 4.0.0
+ markdown-it-mark:
+ specifier: ^4.0.0
+ version: 4.0.0
+ markdown-it-sub:
+ specifier: ^2.0.0
+ version: 2.0.0
+ markdown-it-sup:
+ specifier: ^2.0.0
+ version: 2.0.0
+ markdown-it-table-of-contents:
+ specifier: ^0.6.0
+ version: 0.6.0
+ title-case:
+ specifier: ^3.0.3
+ version: 3.0.3
+
+devDependencies:
+ '@11ty/eleventy':
+ specifier: ^2.0.1
+ version: 2.0.1
+ '@11ty/eleventy-fetch':
+ specifier: ^4.0.0
+ version: 4.0.0
+ '@11ty/eleventy-img':
+ specifier: ^4.0.2
+ version: 4.0.2
+ '@11ty/eleventy-plugin-rss':
+ specifier: ^1.2.0
+ version: 1.2.0
+ '@11ty/eleventy-plugin-syntaxhighlight':
+ specifier: ^5.0.0
+ version: 5.0.0
+ '@alpinejs/intersect':
+ specifier: ^3.13.5
+ version: 3.13.5
+ alpinejs:
+ specifier: ^3.13.5
+ version: 3.13.5
+ clean-css:
+ specifier: ^5.3.3
+ version: 5.3.3
+ eleventy-plugin-embed-everything:
+ specifier: ^1.18.2
+ version: 1.18.2
+ html-minifier-terser:
+ specifier: ^7.2.0
+ version: 7.2.0
+ lodash.get:
+ specifier: ^4.4.2
+ version: 4.4.2
+ mime-types:
+ specifier: ^2.1.35
+ version: 2.1.35
+ node-html-to-image:
+ specifier: ^4.0.0
+ version: 4.0.0
+ prettier:
+ specifier: ^3.2.5
+ version: 3.2.5
+ prettier-plugin-sh:
+ specifier: ^0.14.0
+ version: 0.14.0(prettier@3.2.5)
+ rimraf:
+ specifier: ^5.0.5
+ version: 5.0.5
+ terser:
+ specifier: ^5.28.1
+ version: 5.28.1
+
+packages:
+
+ /@11ty/dependency-tree@2.0.1:
+ resolution: {integrity: sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==}
+ dev: true
+
+ /@11ty/eleventy-dev-server@1.0.4:
+ resolution: {integrity: sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ '@11ty/eleventy-utils': 1.0.2
+ chokidar: 3.6.0
+ debug: 4.3.4
+ dev-ip: 1.0.1
+ finalhandler: 1.2.0
+ mime: 3.0.0
+ minimist: 1.2.8
+ morphdom: 2.7.2
+ please-upgrade-node: 3.2.0
+ ssri: 8.0.1
+ ws: 8.16.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /@11ty/eleventy-fetch@4.0.0:
+ resolution: {integrity: sha512-wGAd0r+8DUWr22fK5r07dOKuNY6ltA7hX+sJzngGZL1yJmuUVdM/xPQZ+iq0BFgf/ZeRdpVEzf2D0cpVZUuiTg==}
+ engines: {node: '>=14'}
+ dependencies:
+ debug: 4.3.4
+ flat-cache: 3.2.0
+ node-fetch: 2.7.0
+ p-queue: 6.6.2
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /@11ty/eleventy-img@4.0.2:
+ resolution: {integrity: sha512-MSCkZRJk9rWa7nojx9HBMZJePOrm+V3XNpT091qguj61SG5UsgXbxAkoeejO3npmKIQJTyVIV/rrA6d7xZYOvw==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@11ty/eleventy-fetch': 4.0.0
+ brotli-size: 4.0.0
+ debug: 4.3.4
+ entities: 4.5.0
+ image-size: 1.1.1
+ p-queue: 6.6.2
+ sharp: 0.33.2
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /@11ty/eleventy-plugin-rss@1.2.0:
+ resolution: {integrity: sha512-YzFnSH/5pObcFnqZ2sAQ782WmpOZHj1+xB9ydY/0j7BZ2jUNahn53VmwCB/sBRwXA/Fbwwj90q1MLo01Ru0UaQ==}
+ dependencies:
+ debug: 4.3.4
+ posthtml: 0.16.6
+ posthtml-urls: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@11ty/eleventy-plugin-syntaxhighlight@5.0.0:
+ resolution: {integrity: sha512-y9BUmP1GofmbJgxM1+ky/UpFCpD8JSOeLeKItUs0WApgnrHk9haHziW7lS86lbArX5SiCVo4zTTw9x53gvRCaA==}
+ dependencies:
+ prismjs: 1.29.0
+ dev: true
+
+ /@11ty/eleventy-utils@1.0.2:
+ resolution: {integrity: sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==}
+ engines: {node: '>=12'}
+ dependencies:
+ normalize-path: 3.0.0
+ dev: true
+
+ /@11ty/eleventy@2.0.1:
+ resolution: {integrity: sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ '@11ty/dependency-tree': 2.0.1
+ '@11ty/eleventy-dev-server': 1.0.4
+ '@11ty/eleventy-utils': 1.0.2
+ '@11ty/lodash-custom': 4.17.21
+ '@iarna/toml': 2.2.5
+ '@sindresorhus/slugify': 1.1.2
+ bcp-47-normalize: 1.1.1
+ chokidar: 3.6.0
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ dependency-graph: 0.11.0
+ ejs: 3.1.9
+ fast-glob: 3.3.2
+ graceful-fs: 4.2.11
+ gray-matter: 4.0.3
+ hamljs: 0.6.2
+ handlebars: 4.7.8
+ is-glob: 4.0.3
+ iso-639-1: 2.1.15
+ kleur: 4.1.5
+ liquidjs: 10.10.1
+ luxon: 3.4.4
+ markdown-it: 13.0.2
+ micromatch: 4.0.5
+ minimist: 1.2.8
+ moo: 0.5.2
+ multimatch: 5.0.0
+ mustache: 4.2.0
+ normalize-path: 3.0.0
+ nunjucks: 3.2.4(chokidar@3.6.0)
+ path-to-regexp: 6.2.1
+ please-upgrade-node: 3.2.0
+ posthtml: 0.16.6
+ posthtml-urls: 1.0.0
+ pug: 3.0.2
+ recursive-copy: 2.0.14
+ semver: 7.6.0
+ slugify: 1.6.6
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /@11ty/lodash-custom@4.17.21:
+ resolution: {integrity: sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /@alpinejs/intersect@3.13.5:
+ resolution: {integrity: sha512-wBveYNRuZoFFirRq4GmUx1JgD5/7S9b10l8Ps5wQJX/deiRXTY8f1Op0zVTkmIoHLpXyouSsOZz9/U/lPU3NZw==}
+ dev: true
+
+ /@babel/code-frame@7.23.5:
+ resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.23.4
+ chalk: 2.4.2
+ dev: true
+
+ /@babel/helper-string-parser@7.23.4:
+ resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-identifier@7.22.20:
+ resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/highlight@7.23.4:
+ resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.20
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.23.9
+ dev: true
+
+ /@babel/types@7.23.9:
+ resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.23.4
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@emnapi/runtime@0.45.0:
+ resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==}
+ requiresBuild: true
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+ optional: true
+
+ /@iarna/toml@2.2.5:
+ resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
+ dev: true
+
+ /@img/sharp-darwin-arm64@0.33.2:
+ resolution: {integrity: sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==}
+ engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-arm64': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-darwin-x64@0.33.2:
+ resolution: {integrity: sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==}
+ engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-x64': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-darwin-arm64@1.0.1:
+ resolution: {integrity: sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==}
+ engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-darwin-x64@1.0.1:
+ resolution: {integrity: sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==}
+ engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-linux-arm64@1.0.1:
+ resolution: {integrity: sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==}
+ engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-linux-arm@1.0.1:
+ resolution: {integrity: sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==}
+ engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-linux-s390x@1.0.1:
+ resolution: {integrity: sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==}
+ engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-linux-x64@1.0.1:
+ resolution: {integrity: sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==}
+ engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-linuxmusl-arm64@1.0.1:
+ resolution: {integrity: sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==}
+ engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-libvips-linuxmusl-x64@1.0.1:
+ resolution: {integrity: sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==}
+ engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-linux-arm64@0.33.2:
+ resolution: {integrity: sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==}
+ engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm64': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-linux-arm@0.33.2:
+ resolution: {integrity: sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==}
+ engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-linux-s390x@0.33.2:
+ resolution: {integrity: sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==}
+ engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-linux-s390x': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-linux-x64@0.33.2:
+ resolution: {integrity: sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==}
+ engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-linux-x64': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-linuxmusl-arm64@0.33.2:
+ resolution: {integrity: sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==}
+ engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-linuxmusl-x64@0.33.2:
+ resolution: {integrity: sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==}
+ engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.0.1
+ dev: true
+ optional: true
+
+ /@img/sharp-wasm32@0.33.2:
+ resolution: {integrity: sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [wasm32]
+ requiresBuild: true
+ dependencies:
+ '@emnapi/runtime': 0.45.0
+ dev: true
+ optional: true
+
+ /@img/sharp-win32-ia32@0.33.2:
+ resolution: {integrity: sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@img/sharp-win32-x64@0.33.2:
+ resolution: {integrity: sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@isaacs/cliui@8.0.2:
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: /string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: /strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: /wrap-ansi@7.0.0
+ dev: true
+
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.22
+ dev: true
+
+ /@jridgewell/resolve-uri@3.1.2:
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/set-array@1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/source-map@0.3.5:
+ resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.22
+ dev: true
+
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ dev: true
+
+ /@jridgewell/trace-mapping@0.3.22:
+ resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+ dev: true
+
+ /@pkgjs/parseargs@0.11.0:
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@puppeteer/browsers@1.5.0:
+ resolution: {integrity: sha512-za318PweGINh5LnHSph7C4xhs0tmRjCD8EPpzcKlw4nzSPhnULj+LTG3+TGefZvW1ti5gjw2JkdQvQsivBeZlg==}
+ engines: {node: '>=16.3.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ extract-zip: 2.0.1
+ progress: 2.0.3
+ proxy-agent: 6.3.0
+ tar-fs: 3.0.4
+ unbzip2-stream: 1.4.3
+ yargs: 17.7.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@sindresorhus/slugify@1.1.2:
+ resolution: {integrity: sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@sindresorhus/transliterate': 0.1.2
+ escape-string-regexp: 4.0.0
+ dev: true
+
+ /@sindresorhus/transliterate@0.1.2:
+ resolution: {integrity: sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==}
+ engines: {node: '>=10'}
+ dependencies:
+ escape-string-regexp: 2.0.0
+ lodash.deburr: 4.1.0
+ dev: true
+
+ /@tootallnate/quickjs-emscripten@0.23.0:
+ resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
+ dev: true
+
+ /@types/linkify-it@3.0.5:
+ resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==}
+ dev: false
+
+ /@types/markdown-it@13.0.7:
+ resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==}
+ dependencies:
+ '@types/linkify-it': 3.0.5
+ '@types/mdurl': 1.0.5
+ dev: false
+
+ /@types/mdurl@1.0.5:
+ resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==}
+ dev: false
+
+ /@types/minimatch@3.0.5:
+ resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
+ dev: true
+
+ /@types/node@20.11.20:
+ resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==}
+ requiresBuild: true
+ dependencies:
+ undici-types: 5.26.5
+ dev: true
+ optional: true
+
+ /@types/yauzl@2.10.3:
+ resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
+ requiresBuild: true
+ dependencies:
+ '@types/node': 20.11.20
+ dev: true
+ optional: true
+
+ /@vue/reactivity@3.1.5:
+ resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==}
+ dependencies:
+ '@vue/shared': 3.1.5
+ dev: true
+
+ /@vue/shared@3.1.5:
+ resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==}
+ dev: true
+
+ /a-sync-waterfall@1.0.1:
+ resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==}
+ dev: true
+
+ /acorn@7.4.1:
+ resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /acorn@8.11.3:
+ resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /agent-base@7.1.0:
+ resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
+ engines: {node: '>= 14'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /alpinejs@3.13.5:
+ resolution: {integrity: sha512-1d2XeNGN+Zn7j4mUAKXtAgdc4/rLeadyTMWeJGXF5DzwawPBxwTiBhFFm6w/Ei8eJxUZeyNWWSD9zknfdz1kEw==}
+ dependencies:
+ '@vue/reactivity': 3.1.5
+ dev: true
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /any-promise@0.1.0:
+ resolution: {integrity: sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==}
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ /array-differ@1.0.0:
+ resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /array-differ@3.0.0:
+ resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array-union@1.0.2:
+ resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-uniq: 1.0.3
+ dev: true
+
+ /array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array-uniq@1.0.3:
+ resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /arrify@2.0.1:
+ resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /asap@2.0.6:
+ resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+ dev: true
+
+ /assert-never@1.2.1:
+ resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==}
+ dev: true
+
+ /ast-types@0.13.4:
+ resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
+ engines: {node: '>=4'}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
+ /async@3.2.5:
+ resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
+ dev: true
+
+ /b4a@1.6.6:
+ resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
+ dev: true
+
+ /babel-walk@3.0.0-canary-5:
+ resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==}
+ engines: {node: '>= 10.0.0'}
+ dependencies:
+ '@babel/types': 7.23.9
+ dev: true
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /bare-events@2.2.0:
+ resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: true
+
+ /basic-ftp@5.0.4:
+ resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==}
+ engines: {node: '>=10.0.0'}
+ dev: true
+
+ /bcp-47-match@1.0.3:
+ resolution: {integrity: sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==}
+ dev: true
+
+ /bcp-47-normalize@1.1.1:
+ resolution: {integrity: sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==}
+ dependencies:
+ bcp-47: 1.0.8
+ bcp-47-match: 1.0.3
+ dev: true
+
+ /bcp-47@1.0.8:
+ resolution: {integrity: sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==}
+ dependencies:
+ is-alphabetical: 1.0.4
+ is-alphanumerical: 1.0.4
+ is-decimal: 1.0.4
+ dev: true
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ dev: false
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /brotli-size@4.0.0:
+ resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==}
+ engines: {node: '>= 10.16.0'}
+ dependencies:
+ duplexer: 0.1.1
+ dev: true
+
+ /buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+ dev: true
+
+ /buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ dev: true
+
+ /buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+ dev: true
+
+ /call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ set-function-length: 1.2.1
+ dev: true
+
+ /callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camel-case@4.1.2:
+ resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
+ dependencies:
+ pascal-case: 3.1.2
+ tslib: 2.6.2
+ dev: true
+
+ /chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: true
+
+ /character-parser@2.2.0:
+ resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==}
+ dependencies:
+ is-regex: 1.1.4
+ dev: true
+
+ /cheerio-select@2.1.0:
+ resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
+ dependencies:
+ boolbase: 1.0.0
+ css-select: 5.1.0
+ css-what: 6.1.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ dev: false
+
+ /cheerio@1.0.0-rc.12:
+ resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
+ engines: {node: '>= 6'}
+ dependencies:
+ cheerio-select: 2.1.0
+ dom-serializer: 2.0.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ htmlparser2: 8.0.2
+ parse5: 7.1.2
+ parse5-htmlparser2-tree-adapter: 7.0.0
+ dev: false
+
+ /chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chromium-bidi@0.4.20(devtools-protocol@0.0.1147663):
+ resolution: {integrity: sha512-ruHgVZFEv00mAQMz1tQjfjdG63jiPWrQPF6HLlX2ucqLqVTJoWngeBEKHaJ6n1swV/HSvgnBNbtTRIlcVyW3Fw==}
+ peerDependencies:
+ devtools-protocol: '*'
+ dependencies:
+ devtools-protocol: 0.0.1147663
+ mitt: 3.0.1
+ dev: true
+
+ /clean-css@5.3.3:
+ resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
+ engines: {node: '>= 10.0'}
+ dependencies:
+ source-map: 0.6.1
+ dev: true
+
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+ dev: true
+
+ /color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+ dev: true
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /color-string@1.9.1:
+ resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+ dependencies:
+ color-name: 1.1.4
+ simple-swizzle: 0.2.2
+ dev: true
+
+ /color@4.2.3:
+ resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
+ engines: {node: '>=12.5.0'}
+ dependencies:
+ color-convert: 2.0.1
+ color-string: 1.9.1
+ dev: true
+
+ /commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ dev: true
+
+ /commander@5.1.0:
+ resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: true
+
+ /constantinople@4.0.1:
+ resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==}
+ dependencies:
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
+ dev: true
+
+ /cosmiconfig@8.2.0:
+ resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ dev: true
+
+ /cross-fetch@4.0.0:
+ resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /css-select@5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ nth-check: 2.1.1
+ dev: false
+
+ /css-what@6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+ dev: false
+
+ /data-uri-to-buffer@6.0.2:
+ resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.0.0
+ dev: true
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ gopd: 1.0.1
+ dev: true
+
+ /degenerator@5.0.1:
+ resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
+ engines: {node: '>= 14'}
+ dependencies:
+ ast-types: 0.13.4
+ escodegen: 2.1.0
+ esprima: 4.0.1
+ dev: true
+
+ /dependency-graph@0.11.0:
+ resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
+ engines: {node: '>= 0.6.0'}
+ dev: true
+
+ /detect-libc@2.0.2:
+ resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /dev-ip@1.0.1:
+ resolution: {integrity: sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==}
+ engines: {node: '>= 0.8.0'}
+ hasBin: true
+ dev: true
+
+ /devtools-protocol@0.0.1147663:
+ resolution: {integrity: sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==}
+ dev: true
+
+ /doctypes@1.1.0:
+ resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
+ dev: true
+
+ /dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+ dev: true
+
+ /dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+ dev: false
+
+ /domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ /domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: true
+
+ /domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: false
+
+ /domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ dev: true
+
+ /domutils@3.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ dev: false
+
+ /dot-case@3.0.4:
+ resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.6.2
+ dev: true
+
+ /duplexer@0.1.1:
+ resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==}
+ dev: true
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ dev: true
+
+ /ejs@3.1.9:
+ resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dependencies:
+ jake: 10.8.7
+ dev: true
+
+ /eleventy-plugin-embed-everything@1.18.2:
+ resolution: {integrity: sha512-J/zxLnYN7bhVlbEnqxSswxKis6VjDndUFnE3I9ZdCzGFzlWVrXj933w5DOCobx/OZesuYN9VmapNgAHsGvFoAg==}
+ dependencies:
+ deepmerge: 4.3.1
+ eleventy-plugin-embed-instagram: 1.2.7
+ eleventy-plugin-embed-soundcloud: 1.2.7
+ eleventy-plugin-embed-spotify: 1.3.0
+ eleventy-plugin-embed-ted: 1.0.1
+ eleventy-plugin-embed-tiktok: 1.1.7
+ eleventy-plugin-embed-twitch: 1.2.7
+ eleventy-plugin-embed-twitter: 1.4.0
+ eleventy-plugin-vimeo-embed: 1.3.8
+ eleventy-plugin-youtube-embed: 1.10.2
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /eleventy-plugin-embed-instagram@1.2.7:
+ resolution: {integrity: sha512-v6uSqeZiZU5L40lr4NTGBr+2Wbc81SqbNIllESEBQDFhS68g253WqkLaNs7gGh0k5hxhNuMt7ZZEBfous7jksw==}
+ dev: true
+
+ /eleventy-plugin-embed-soundcloud@1.2.7:
+ resolution: {integrity: sha512-0+VNeEcMiRySmyTmPmMhCwkbds44k9W4jWqUwjvk665TRagiXcCdj/BK2wl8vyiVrn/0arWeSCpol4NBb6BIvA==}
+ dependencies:
+ '@11ty/eleventy-fetch': 4.0.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /eleventy-plugin-embed-spotify@1.3.0:
+ resolution: {integrity: sha512-waVUtW5PO9aKYQEjnvHG4P5bPyKj+SSUBuDtqfF2K+j7dGItmEDD4DP7CmBz6lkn/LlJGmJ7uT4Mr6L4jAP4bg==}
+ dev: true
+
+ /eleventy-plugin-embed-ted@1.0.1:
+ resolution: {integrity: sha512-F1CayKC05sGDAcdEgaZUP3Cs/71mwLT717sIUUiZWu+Gjd1Lp7m2gqL1R/uKnHN/CFxKYTpAA6ZNN/LCjg0ufw==}
+ dev: true
+
+ /eleventy-plugin-embed-tiktok@1.1.7:
+ resolution: {integrity: sha512-Yb/95hafIsKVsV11ebsX0PoYzpLQWWSbdznbvPfA0HIKjfTHGEt1q0XX5DRGPnn5tor7lM5sha9DMQPzJb/oGQ==}
+ dev: true
+
+ /eleventy-plugin-embed-twitch@1.2.7:
+ resolution: {integrity: sha512-E3oUtk5HhfgBaH9xpcnnByoddyyxuj0uhTzxD+UF5ftUU4pa0959HADBI1RuWUDssADzowpSes8m2gBgO4Peeg==}
+ dev: true
+
+ /eleventy-plugin-embed-twitter@1.4.0:
+ resolution: {integrity: sha512-1e2oI0OJiVStywT48h6/IJDT4+XlH5EEVT1z87qV8wABAA022m2ozKuog21EEoI217aV2AM89R/FZ1oo1eD/mA==}
+ dependencies:
+ '@11ty/eleventy-fetch': 4.0.0
+ deepmerge: 4.3.1
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /eleventy-plugin-toc@1.1.5:
+ resolution: {integrity: sha512-Fo5AZZSBH8CKvz0axJQA9nmnTFOflAMFrngaKER4rOz3C6oDwqxK8N+kNFepmIsieTPkrH+iREWLJ+/9j5JjUg==}
+ dependencies:
+ cheerio: 1.0.0-rc.12
+ dev: false
+
+ /eleventy-plugin-vimeo-embed@1.3.8:
+ resolution: {integrity: sha512-XU/XH/lrx9slUifFiRCsFh8XiDsZxCBh5MnFU8wAz8u8rCFX9PpmyveJ2oeDtDZjEINqaDC+YFSPsxoq59S3cQ==}
+ dev: true
+
+ /eleventy-plugin-youtube-embed@1.10.2:
+ resolution: {integrity: sha512-N0068hshDe+sG50SEk4zLbwClaTeyl000WiqmNACRG2Iwb2/iTVV4IGTv7d1yWz/5DGVpsHMniboHJSyChvc9w==}
+ dependencies:
+ '@11ty/eleventy-fetch': 4.0.0
+ deepmerge: 4.3.1
+ lite-youtube-embed: 0.3.0
+ string-replace-async: 3.0.2
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+ dev: true
+
+ /entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ dev: true
+
+ /entities@3.0.1:
+ resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
+ engines: {node: '>=0.12'}
+ dev: true
+
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ /errno@0.1.8:
+ resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
+ hasBin: true
+ dependencies:
+ prr: 1.0.1
+ dev: true
+
+ /error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+ dev: true
+
+ /es-define-property@1.0.0:
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.4
+ dev: true
+
+ /es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /escalade@3.1.2:
+ resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ dev: true
+
+ /escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /escodegen@2.1.0:
+ resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionalDependencies:
+ source-map: 0.6.1
+ dev: true
+
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ dev: true
+
+ /extend-shallow@2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extendable: 0.1.1
+ dev: true
+
+ /extract-zip@2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /fast-fifo@1.3.2:
+ resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+ dev: true
+
+ /fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ dependencies:
+ pend: 1.2.0
+ dev: true
+
+ /filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+ dependencies:
+ minimatch: 5.1.6
+ dev: true
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /finalhandler@1.2.0:
+ resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ debug: 2.6.9
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.1
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flatted: 3.3.1
+ keyv: 4.5.4
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted@3.3.1:
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+ dev: true
+
+ /foreground-child@3.1.1:
+ resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
+ engines: {node: '>=14'}
+ dependencies:
+ cross-spawn: 7.0.3
+ signal-exit: 4.1.0
+ dev: true
+
+ /fs-extra@11.2.0:
+ resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
+ engines: {node: '>=14.14'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: true
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: true
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ dev: true
+
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: true
+
+ /get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ hasown: 2.0.1
+ dev: true
+
+ /get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+ dependencies:
+ pump: 3.0.0
+ dev: true
+
+ /get-uri@6.0.3:
+ resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==}
+ engines: {node: '>= 14'}
+ dependencies:
+ basic-ftp: 5.0.4
+ data-uri-to-buffer: 6.0.2
+ debug: 4.3.4
+ fs-extra: 11.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob@10.3.10:
+ resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 2.3.6
+ minimatch: 9.0.3
+ minipass: 7.0.4
+ path-scurry: 1.10.1
+ dev: true
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.4
+ dev: true
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: true
+
+ /gray-matter@4.0.3:
+ resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
+ engines: {node: '>=6.0'}
+ dependencies:
+ js-yaml: 3.14.1
+ kind-of: 6.0.3
+ section-matter: 1.0.0
+ strip-bom-string: 1.0.0
+ dev: true
+
+ /hamljs@0.6.2:
+ resolution: {integrity: sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==}
+ dev: true
+
+ /handlebars@4.7.8:
+ resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+ neo-async: 2.6.2
+ source-map: 0.6.1
+ wordwrap: 1.0.0
+ optionalDependencies:
+ uglify-js: 3.17.4
+ dev: true
+
+ /has-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+ dependencies:
+ es-define-property: 1.0.0
+ dev: true
+
+ /has-proto@1.0.3:
+ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /hasown@2.0.1:
+ resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function-bind: 1.1.2
+ dev: true
+
+ /html-minifier-terser@7.2.0:
+ resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ camel-case: 4.1.2
+ clean-css: 5.3.3
+ commander: 10.0.1
+ entities: 4.5.0
+ param-case: 3.0.4
+ relateurl: 0.2.7
+ terser: 5.28.1
+ dev: true
+
+ /htmlparser2@7.2.0:
+ resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ entities: 3.0.1
+ dev: true
+
+ /htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ entities: 4.5.0
+ dev: false
+
+ /http-equiv-refresh@1.0.0:
+ resolution: {integrity: sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /https-proxy-agent@7.0.4:
+ resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==}
+ engines: {node: '>= 14'}
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: true
+
+ /image-size@1.1.1:
+ resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
+ engines: {node: '>=16.x'}
+ hasBin: true
+ dependencies:
+ queue: 6.0.2
+ dev: true
+
+ /import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /ip-address@9.0.5:
+ resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
+ engines: {node: '>= 12'}
+ dependencies:
+ jsbn: 1.1.0
+ sprintf-js: 1.1.3
+ dev: true
+
+ /is-alphabetical@1.0.4:
+ resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
+ dev: true
+
+ /is-alphanumerical@1.0.4:
+ resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
+ dependencies:
+ is-alphabetical: 1.0.4
+ is-decimal: 1.0.4
+ dev: true
+
+ /is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ dev: true
+
+ /is-arrayish@0.3.2:
+ resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-core-module@2.13.1:
+ resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
+ dependencies:
+ hasown: 2.0.1
+ dev: true
+
+ /is-decimal@1.0.4:
+ resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
+ dev: true
+
+ /is-expression@4.0.0:
+ resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==}
+ dependencies:
+ acorn: 7.4.1
+ object-assign: 4.1.1
+ dev: true
+
+ /is-extendable@0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-json@2.0.1:
+ resolution: {integrity: sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==}
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-promise@2.2.2:
+ resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
+ dev: true
+
+ /is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+ dev: true
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /iso-639-1@2.1.15:
+ resolution: {integrity: sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==}
+ engines: {node: '>=6.0'}
+ dev: true
+
+ /jackspeak@2.3.6:
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+ dev: true
+
+ /jake@10.8.7:
+ resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ async: 3.2.5
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+ dev: true
+
+ /js-stringify@1.0.2:
+ resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==}
+ dev: true
+
+ /js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /jsbn@1.1.0:
+ resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ dev: true
+
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+ dev: true
+
+ /json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ dev: true
+
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: true
+
+ /jstransformer@1.0.0:
+ resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==}
+ dependencies:
+ is-promise: 2.2.2
+ promise: 7.3.1
+ dev: true
+
+ /junk@1.0.3:
+ resolution: {integrity: sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ dependencies:
+ json-buffer: 3.0.1
+ dev: true
+
+ /kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
+ /linkify-it@4.0.1:
+ resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==}
+ dependencies:
+ uc.micro: 1.0.6
+ dev: true
+
+ /linkify-it@5.0.0:
+ resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+ dependencies:
+ uc.micro: 2.0.0
+ dev: false
+
+ /liquidjs@10.10.1:
+ resolution: {integrity: sha512-h699VW79OLoshCTjFF02tmRCrd8t/E49LSIsjLwlg4k0TbMVjxsCRXVUEsURXbfKl3HUln2cShlDQCrSNm2YaA==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ commander: 10.0.1
+ dev: true
+
+ /list-to-array@1.1.0:
+ resolution: {integrity: sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==}
+ dev: true
+
+ /lite-youtube-embed@0.3.0:
+ resolution: {integrity: sha512-3DUqE1C4s/+a8PVM4ik8anBsmHOW0zUavPyFQWugBulKyQpbZFE+/268Aq/pDNW7hRQJXkXpk4QjdSCpwf7Cvg==}
+ dev: true
+
+ /lodash.deburr@4.1.0:
+ resolution: {integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==}
+ dev: true
+
+ /lodash.get@4.4.2:
+ resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
+ dev: true
+
+ /lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
+ /lru-cache@10.2.0:
+ resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
+ engines: {node: 14 || >=16.14}
+ dev: true
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /lru-cache@7.18.3:
+ resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /luxon@3.4.4:
+ resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /markdown-it-anchor@8.6.7(@types/markdown-it@13.0.7)(markdown-it@14.0.0):
+ resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==}
+ peerDependencies:
+ '@types/markdown-it': '*'
+ markdown-it: '*'
+ dependencies:
+ '@types/markdown-it': 13.0.7
+ markdown-it: 14.0.0
+ dev: false
+
+ /markdown-it-attrs@4.1.6(markdown-it@14.0.0):
+ resolution: {integrity: sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ markdown-it: '>= 9.0.0'
+ dependencies:
+ markdown-it: 14.0.0
+ dev: false
+
+ /markdown-it-footnote@4.0.0:
+ resolution: {integrity: sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==}
+ dev: false
+
+ /markdown-it-ins@4.0.0:
+ resolution: {integrity: sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew==}
+ dev: false
+
+ /markdown-it-mark@4.0.0:
+ resolution: {integrity: sha512-YLhzaOsU9THO/cal0lUjfMjrqSMPjjyjChYM7oyj4DnyaXEzA8gnW6cVJeyCrCVeyesrY2PlEdUYJSPFYL4Nkg==}
+ dev: false
+
+ /markdown-it-sub@2.0.0:
+ resolution: {integrity: sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==}
+ dev: false
+
+ /markdown-it-sup@2.0.0:
+ resolution: {integrity: sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==}
+ dev: false
+
+ /markdown-it-table-of-contents@0.6.0:
+ resolution: {integrity: sha512-jHvEjZVEibyW97zEYg19mZCIXO16lHbvRaPDkEuOfMPBmzlI7cYczMZLMfUvwkhdOVQpIxu3gx6mgaw46KsNsQ==}
+ engines: {node: '>6.4.0'}
+ dev: false
+
+ /markdown-it@13.0.2:
+ resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ entities: 3.0.1
+ linkify-it: 4.0.1
+ mdurl: 1.0.1
+ uc.micro: 1.0.6
+ dev: true
+
+ /markdown-it@14.0.0:
+ resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.0
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.0.0
+ dev: false
+
+ /maximatch@0.1.0:
+ resolution: {integrity: sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-differ: 1.0.0
+ array-union: 1.0.2
+ arrify: 1.0.1
+ minimatch: 3.1.2
+ dev: true
+
+ /mdurl@1.0.1:
+ resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
+ dev: true
+
+ /mdurl@2.0.0:
+ resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+ dev: false
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: true
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: true
+
+ /mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ dev: true
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /minimatch@9.0.3:
+ resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
+
+ /minipass@3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /minipass@7.0.4:
+ resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dev: true
+
+ /mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+ dev: true
+
+ /mkdirp-classic@0.5.3:
+ resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
+ dev: true
+
+ /mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+ dev: true
+
+ /moo@0.5.2:
+ resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
+ dev: true
+
+ /morphdom@2.7.2:
+ resolution: {integrity: sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==}
+ dev: true
+
+ /ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+ dev: true
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /multimatch@5.0.0:
+ resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@types/minimatch': 3.0.5
+ array-differ: 3.0.0
+ array-union: 2.1.0
+ arrify: 2.0.1
+ minimatch: 3.1.2
+ dev: true
+
+ /mustache@4.2.0:
+ resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
+ hasBin: true
+ dev: true
+
+ /mvdan-sh@0.10.1:
+ resolution: {integrity: sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==}
+ dev: true
+
+ /neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+ dev: true
+
+ /netmask@2.0.2:
+ resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
+ engines: {node: '>= 0.4.0'}
+ dev: true
+
+ /no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ dependencies:
+ lower-case: 2.0.2
+ tslib: 2.6.2
+ dev: true
+
+ /node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: true
+
+ /node-html-to-image@4.0.0:
+ resolution: {integrity: sha512-lB8fkRleAKG4afJ2Wr7qJzIA5+//ue9OEoz+BMxQsowriGKR8sf4j4lK/pIXKakYwf/3aZHoDUNgOXuJ4HOzYA==}
+ dependencies:
+ handlebars: 4.7.8
+ puppeteer: 21.0.1
+ puppeteer-cluster: 0.23.0(puppeteer@21.0.1)
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ dependencies:
+ boolbase: 1.0.0
+ dev: false
+
+ /nunjucks@3.2.4(chokidar@3.6.0):
+ resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==}
+ engines: {node: '>= 6.9.0'}
+ hasBin: true
+ peerDependencies:
+ chokidar: ^3.3.0
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+ dependencies:
+ a-sync-waterfall: 1.0.1
+ asap: 2.0.6
+ chokidar: 3.6.0
+ commander: 5.1.0
+ dev: true
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ ee-first: 1.1.1
+ dev: true
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+ dev: true
+
+ /p-finally@1.0.0:
+ resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /p-queue@6.6.2:
+ resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ eventemitter3: 4.0.7
+ p-timeout: 3.2.0
+ dev: true
+
+ /p-timeout@3.2.0:
+ resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-finally: 1.0.0
+ dev: true
+
+ /pac-proxy-agent@7.0.1:
+ resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==}
+ engines: {node: '>= 14'}
+ dependencies:
+ '@tootallnate/quickjs-emscripten': 0.23.0
+ agent-base: 7.1.0
+ debug: 4.3.4
+ get-uri: 6.0.3
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.4
+ pac-resolver: 7.0.1
+ socks-proxy-agent: 8.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /pac-resolver@7.0.1:
+ resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==}
+ engines: {node: '>= 14'}
+ dependencies:
+ degenerator: 5.0.1
+ netmask: 2.0.2
+ dev: true
+
+ /param-case@3.0.4:
+ resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.6.2
+ dev: true
+
+ /parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
+ /parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+ dev: true
+
+ /parse-srcset@1.0.2:
+ resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
+ dev: true
+
+ /parse5-htmlparser2-tree-adapter@7.0.0:
+ resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
+ dependencies:
+ domhandler: 5.0.3
+ parse5: 7.1.2
+ dev: false
+
+ /parse5@7.1.2:
+ resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+ dependencies:
+ entities: 4.5.0
+ dev: false
+
+ /parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /pascal-case@3.1.2:
+ resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.6.2
+ dev: true
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /path-scurry@1.10.1:
+ resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ lru-cache: 10.2.0
+ minipass: 7.0.4
+ dev: true
+
+ /path-to-regexp@6.2.1:
+ resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
+ dev: true
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+ dev: true
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /please-upgrade-node@3.2.0:
+ resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==}
+ dependencies:
+ semver-compare: 1.0.0
+ dev: true
+
+ /posthtml-parser@0.11.0:
+ resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==}
+ engines: {node: '>=12'}
+ dependencies:
+ htmlparser2: 7.2.0
+ dev: true
+
+ /posthtml-render@3.0.0:
+ resolution: {integrity: sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==}
+ engines: {node: '>=12'}
+ dependencies:
+ is-json: 2.0.1
+ dev: true
+
+ /posthtml-urls@1.0.0:
+ resolution: {integrity: sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ http-equiv-refresh: 1.0.0
+ list-to-array: 1.1.0
+ parse-srcset: 1.0.2
+ promise-each: 2.2.0
+ dev: true
+
+ /posthtml@0.16.6:
+ resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ posthtml-parser: 0.11.0
+ posthtml-render: 3.0.0
+ dev: true
+
+ /prettier-plugin-sh@0.14.0(prettier@3.2.5):
+ resolution: {integrity: sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ prettier: ^3.0.3
+ dependencies:
+ mvdan-sh: 0.10.1
+ prettier: 3.2.5
+ sh-syntax: 0.4.2
+ dev: true
+
+ /prettier@3.2.5:
+ resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dev: true
+
+ /prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /progress@2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /promise-each@2.2.0:
+ resolution: {integrity: sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==}
+ dependencies:
+ any-promise: 0.1.0
+ dev: true
+
+ /promise@7.3.1:
+ resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
+ dependencies:
+ asap: 2.0.6
+ dev: true
+
+ /proxy-agent@6.3.0:
+ resolution: {integrity: sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==}
+ engines: {node: '>= 14'}
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.4
+ lru-cache: 7.18.3
+ pac-proxy-agent: 7.0.1
+ proxy-from-env: 1.1.0
+ socks-proxy-agent: 8.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: true
+
+ /prr@1.0.1:
+ resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+ dev: true
+
+ /pug-attrs@3.0.0:
+ resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==}
+ dependencies:
+ constantinople: 4.0.1
+ js-stringify: 1.0.2
+ pug-runtime: 3.0.1
+ dev: true
+
+ /pug-code-gen@3.0.2:
+ resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==}
+ dependencies:
+ constantinople: 4.0.1
+ doctypes: 1.1.0
+ js-stringify: 1.0.2
+ pug-attrs: 3.0.0
+ pug-error: 2.0.0
+ pug-runtime: 3.0.1
+ void-elements: 3.1.0
+ with: 7.0.2
+ dev: true
+
+ /pug-error@2.0.0:
+ resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==}
+ dev: true
+
+ /pug-filters@4.0.0:
+ resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==}
+ dependencies:
+ constantinople: 4.0.1
+ jstransformer: 1.0.0
+ pug-error: 2.0.0
+ pug-walk: 2.0.0
+ resolve: 1.22.8
+ dev: true
+
+ /pug-lexer@5.0.1:
+ resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==}
+ dependencies:
+ character-parser: 2.2.0
+ is-expression: 4.0.0
+ pug-error: 2.0.0
+ dev: true
+
+ /pug-linker@4.0.0:
+ resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==}
+ dependencies:
+ pug-error: 2.0.0
+ pug-walk: 2.0.0
+ dev: true
+
+ /pug-load@3.0.0:
+ resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==}
+ dependencies:
+ object-assign: 4.1.1
+ pug-walk: 2.0.0
+ dev: true
+
+ /pug-parser@6.0.0:
+ resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==}
+ dependencies:
+ pug-error: 2.0.0
+ token-stream: 1.0.0
+ dev: true
+
+ /pug-runtime@3.0.1:
+ resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==}
+ dev: true
+
+ /pug-strip-comments@2.0.0:
+ resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==}
+ dependencies:
+ pug-error: 2.0.0
+ dev: true
+
+ /pug-walk@2.0.0:
+ resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==}
+ dev: true
+
+ /pug@3.0.2:
+ resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==}
+ dependencies:
+ pug-code-gen: 3.0.2
+ pug-filters: 4.0.0
+ pug-lexer: 5.0.1
+ pug-linker: 4.0.0
+ pug-load: 3.0.0
+ pug-parser: 6.0.0
+ pug-runtime: 3.0.1
+ pug-strip-comments: 2.0.0
+ dev: true
+
+ /pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+ dev: true
+
+ /punycode.js@2.3.1:
+ resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /puppeteer-cluster@0.23.0(puppeteer@21.0.1):
+ resolution: {integrity: sha512-108terIWDzPrQopmoYSPd5yDoy3FGJ2dNnoGMkGYPs6xtkdhgaECwpfZkzaRToMQPZibUOz0/dSSGgPEdXEhkQ==}
+ peerDependencies:
+ puppeteer: '>=1.5.0'
+ dependencies:
+ debug: 4.3.4
+ puppeteer: 21.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /puppeteer-core@21.0.1:
+ resolution: {integrity: sha512-E8eWLGhaZZpa7dYe/58qGX7SLb4mTg42NP5M7B+ibPrncgNjTOQa9x1sFIlTn1chF/BmoZqOcMIvwuxcb/9XzQ==}
+ engines: {node: '>=16.3.0'}
+ dependencies:
+ '@puppeteer/browsers': 1.5.0
+ chromium-bidi: 0.4.20(devtools-protocol@0.0.1147663)
+ cross-fetch: 4.0.0
+ debug: 4.3.4
+ devtools-protocol: 0.0.1147663
+ ws: 8.13.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /puppeteer@21.0.1:
+ resolution: {integrity: sha512-KTjmSdPZ6bMkq3EbAzAUhcB3gMDXvdwd6912rxG9hNtjwRJzHSA568vh6vIbO2WQeNmozRdt1LtiUMLSWfeMrg==}
+ engines: {node: '>=16.3.0'}
+ deprecated: < 21.5.0 is no longer supported
+ requiresBuild: true
+ dependencies:
+ '@puppeteer/browsers': 1.5.0
+ cosmiconfig: 8.2.0
+ puppeteer-core: 21.0.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /queue-tick@1.0.1:
+ resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
+ dev: true
+
+ /queue@6.0.2:
+ resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
+ dependencies:
+ inherits: 2.0.4
+ dev: true
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /recursive-copy@2.0.14:
+ resolution: {integrity: sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==}
+ dependencies:
+ errno: 0.1.8
+ graceful-fs: 4.2.11
+ junk: 1.0.3
+ maximatch: 0.1.0
+ mkdirp: 0.5.6
+ pify: 2.3.0
+ promise: 7.3.1
+ rimraf: 2.7.1
+ slash: 1.0.0
+ dev: true
+
+ /relateurl@0.2.7:
+ resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /rimraf@2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+ dev: true
+
+ /rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+ dev: true
+
+ /rimraf@5.0.5:
+ resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ glob: 10.3.10
+ dev: true
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /section-matter@1.0.0:
+ resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
+ engines: {node: '>=4'}
+ dependencies:
+ extend-shallow: 2.0.1
+ kind-of: 6.0.3
+ dev: true
+
+ /semver-compare@1.0.0:
+ resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
+ dev: true
+
+ /semver@7.6.0:
+ resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
+ /set-function-length@1.2.1:
+ resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.2
+ dev: true
+
+ /sh-syntax@0.4.2:
+ resolution: {integrity: sha512-/l2UZ5fhGZLVZa16XQM9/Vq/hezGGbdHeVEA01uWjOL1+7Ek/gt6FquW0iKKws4a9AYPYvlz6RyVvjh3JxOteg==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
+ /sharp@0.33.2:
+ resolution: {integrity: sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==}
+ engines: {libvips: '>=8.15.1', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ requiresBuild: true
+ dependencies:
+ color: 4.2.3
+ detect-libc: 2.0.2
+ semver: 7.6.0
+ optionalDependencies:
+ '@img/sharp-darwin-arm64': 0.33.2
+ '@img/sharp-darwin-x64': 0.33.2
+ '@img/sharp-libvips-darwin-arm64': 1.0.1
+ '@img/sharp-libvips-darwin-x64': 1.0.1
+ '@img/sharp-libvips-linux-arm': 1.0.1
+ '@img/sharp-libvips-linux-arm64': 1.0.1
+ '@img/sharp-libvips-linux-s390x': 1.0.1
+ '@img/sharp-libvips-linux-x64': 1.0.1
+ '@img/sharp-libvips-linuxmusl-arm64': 1.0.1
+ '@img/sharp-libvips-linuxmusl-x64': 1.0.1
+ '@img/sharp-linux-arm': 0.33.2
+ '@img/sharp-linux-arm64': 0.33.2
+ '@img/sharp-linux-s390x': 0.33.2
+ '@img/sharp-linux-x64': 0.33.2
+ '@img/sharp-linuxmusl-arm64': 0.33.2
+ '@img/sharp-linuxmusl-x64': 0.33.2
+ '@img/sharp-wasm32': 0.33.2
+ '@img/sharp-win32-ia32': 0.33.2
+ '@img/sharp-win32-x64': 0.33.2
+ dev: true
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: true
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /simple-swizzle@0.2.2:
+ resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
+ dependencies:
+ is-arrayish: 0.3.2
+ dev: true
+
+ /slash@1.0.0:
+ resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /slugify@1.6.6:
+ resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
+ engines: {node: '>=8.0.0'}
+ dev: true
+
+ /smart-buffer@4.2.0:
+ resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
+ engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
+ dev: true
+
+ /socks-proxy-agent@8.0.2:
+ resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==}
+ engines: {node: '>= 14'}
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4
+ socks: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /socks@2.8.1:
+ resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
+ engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
+ dependencies:
+ ip-address: 9.0.5
+ smart-buffer: 4.2.0
+ dev: true
+
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+ dev: true
+
+ /source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
+ /sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ dev: true
+
+ /ssri@8.0.1:
+ resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.3.6
+ dev: true
+
+ /statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /streamx@2.16.1:
+ resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==}
+ dependencies:
+ fast-fifo: 1.3.2
+ queue-tick: 1.0.1
+ optionalDependencies:
+ bare-events: 2.2.0
+ dev: true
+
+ /string-replace-async@3.0.2:
+ resolution: {integrity: sha512-s6hDtXJ7FKyRap/amefqrOMpkEQvxUDueyvJygQeHxCK5Za90dOMgdibCCrPdfdAYAkr8imrZ1PPXW7DOf0RzQ==}
+ engines: {node: '>= 14.0.0'}
+ dev: true
+
+ /string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+ dev: true
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
+ /strip-bom-string@1.0.0:
+ resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /tar-fs@3.0.4:
+ resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
+ dependencies:
+ mkdirp-classic: 0.5.3
+ pump: 3.0.0
+ tar-stream: 3.1.7
+ dev: true
+
+ /tar-stream@3.1.7:
+ resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
+ dependencies:
+ b4a: 1.6.6
+ fast-fifo: 1.3.2
+ streamx: 2.16.1
+ dev: true
+
+ /terser@5.28.1:
+ resolution: {integrity: sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/source-map': 0.3.5
+ acorn: 8.11.3
+ commander: 2.20.3
+ source-map-support: 0.5.21
+ dev: true
+
+ /through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+ dev: true
+
+ /title-case@3.0.3:
+ resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /token-stream@1.0.0:
+ resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==}
+ dev: true
+
+ /tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ dev: true
+
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+
+ /uc.micro@1.0.6:
+ resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
+ dev: true
+
+ /uc.micro@2.0.0:
+ resolution: {integrity: sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==}
+ dev: false
+
+ /uglify-js@3.17.4:
+ resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /unbzip2-stream@1.4.3:
+ resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
+ dependencies:
+ buffer: 5.7.1
+ through: 2.3.8
+ dev: true
+
+ /undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+ dev: true
+
+ /unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+ dev: true
+
+ /void-elements@3.1.0:
+ resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ dev: true
+
+ /whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+ dev: true
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /with@7.0.2:
+ resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==}
+ engines: {node: '>= 10.0.0'}
+ dependencies:
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
+ assert-never: 1.2.1
+ babel-walk: 3.0.0-canary-5
+ dev: true
+
+ /wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+ dev: true
+
+ /wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+ dev: true
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ dev: true
+
+ /ws@8.13.0:
+ resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: true
+
+ /ws@8.16.0:
+ resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: true
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
+
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /yargs@17.7.1:
+ resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
+ engines: {node: '>=12'}
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.2
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+ dev: true
+
+ /yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+ dev: true
diff --git a/sass/giscus_dark.scss b/sass/giscus_dark.scss
deleted file mode 100644
index a7b24c2..0000000
--- a/sass/giscus_dark.scss
+++ /dev/null
@@ -1,100 +0,0 @@
-main {
- --primary-default: 109, 155, 255;
- --bg-default: 22, 22, 24;
- --color-prettylights-syntax-comment: #8b949e;
- --color-prettylights-syntax-constant: #79c0ff;
- --color-prettylights-syntax-entity: #d2a8ff;
- --color-prettylights-syntax-storage-modifier-import: #c9d1d9;
- --color-prettylights-syntax-entity-tag: #7ee787;
- --color-prettylights-syntax-keyword: #ff7b72;
- --color-prettylights-syntax-string: #a5d6ff;
- --color-prettylights-syntax-variable: #ffa657;
- --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;
- --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;
- --color-prettylights-syntax-invalid-illegal-bg: #8e1519;
- --color-prettylights-syntax-carriage-return-text: #f0f6fc;
- --color-prettylights-syntax-carriage-return-bg: #b62324;
- --color-prettylights-syntax-string-regexp: #7ee787;
- --color-prettylights-syntax-markup-list: #f2cc60;
- --color-prettylights-syntax-markup-heading: #1f6feb;
- --color-prettylights-syntax-markup-italic: #c9d1d9;
- --color-prettylights-syntax-markup-bold: #c9d1d9;
- --color-prettylights-syntax-markup-deleted-text: #ffdcd7;
- --color-prettylights-syntax-markup-deleted-bg: #67060c;
- --color-prettylights-syntax-markup-inserted-text: #aff5b4;
- --color-prettylights-syntax-markup-inserted-bg: #033a16;
- --color-prettylights-syntax-markup-changed-text: #ffdfb6;
- --color-prettylights-syntax-markup-changed-bg: #5a1e02;
- --color-prettylights-syntax-markup-ignored-text: #c9d1d9;
- --color-prettylights-syntax-markup-ignored-bg: #1158c7;
- --color-prettylights-syntax-meta-diff-range: #d2a8ff;
- --color-prettylights-syntax-brackethighlighter-angle: #8b949e;
- --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;
- --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;
- --color-btn-text: rgb(235 235 245 / 86%);
- --color-btn-bg: rgba(var(--bg-default), 1);
- --color-btn-border: rgba(var(--bg-default), 1);
- --color-btn-shadow: 0 1px 0 rgba(var(--bg-default), 1);
- --color-btn-inset-shadow: inset 0 1px 0 rgba(var(--bg-default), 1);
- --color-btn-hover-bg: rgba(var(--bg-default), 0.5);
- --color-btn-hover-border: rgba(var(--bg-default), 0.5);
- --color-btn-active-bg: rgba(var(--primary-default), 0.2);
- --color-btn-active-border: rgba(var(--primary-default), 1);
- --color-btn-selected-bg: rgba(var(--primary-default), 0.15);
- --color-btn-primary-text: rgb(255 255 255 / 100%);
- --color-btn-primary-bg: rgba(var(--primary-default), 0.45);
- --color-btn-primary-border: rgba(var(--primary-default), 0.5);
- --color-btn-primary-shadow: 0 1px 0 rgb(27 31 36 / 10%);
- --color-btn-primary-inset-shadow: inset 0 1px 0 hsl(0deg 0% 100% / 3%);
- --color-btn-primary-hover-bg: rgba(var(--primary-default), 0.53);
- --color-btn-primary-hover-border: rgba(var(--primary-default), 0.75);
- --color-btn-primary-selected-bg: rgba(var(--primary-default), 0.45);
- --color-btn-primary-selected-shadow: inset 0 1px 0 rgb(0 45 17 / 20%);
- --color-btn-primary-disabled-text: rgb(255 255 255 / 80%);
- --color-btn-primary-disabled-bg: rgba(var(--primary-default), 0.5);
- --color-btn-primary-disabled-border: rgba(var(--primary-default), 0.5);
- --color-action-list-item-default-hover-bg: rgb(177 186 196 / 12%);
- --color-segmented-control-bg: rgb(110 118 129 / 10%);
- --color-segmented-control-button-bg: #0d1117;
- --color-segmented-control-button-selected-border: rgba(var(--bg-default), 0.85);
- --color-fg-default: rgb(235 235 245 / 86%);
- --color-fg-muted: rgb(235 235 245 / 60%);
- --color-fg-subtle: rgb(235 235 245 / 50%);
- --color-canvas-default: rgb(30 30 32 / 100%);
- --color-canvas-overlay: rgb(30 30 32 / 100%);
- --color-canvas-inset: rgba(var(--bg-default), 0.85);
- --color-canvas-subtle: rgba(var(--bg-default), 1);
- --color-border-default: rgba(var(--bg-default), 0.85);
- --color-border-muted: rgb(175 184 193 / 20%);
- --color-neutral-muted: rgb(175 184 193 / 20%);
- --color-accent-fg: rgba(var(--primary-default), 0.85);
- --color-accent-emphasis: rgba(var(--primary-default), 0.95);
- --color-accent-muted: rgba(var(--primary-default), 0.4);
- --color-accent-subtle: rgba(var(--primary-default), 0.1);
- --color-success-fg: #3fb950;
- --color-attention-fg: #d29922;
- --color-attention-muted: rgb(187 128 9 / 40%);
- --color-attention-subtle: rgb(187 128 9 / 15%);
- --color-danger-fg: #f85149;
- --color-danger-muted: rgb(248 81 73 / 40%);
- --color-danger-subtle: rgb(248 81 73 / 10%);
- --color-primer-shadow-inset: 0 1px 0 rgba(var(--bg-default), 1), inset 0 1px 0 rgba(var(--bg-default), 1);
- --color-scale-gray-7: rgb(22 22 24 / 100%);
- --color-scale-blue-8: rgb(16 185 129 / 15%);
-
- /*! Extensions from @primer/css/alerts/flash.scss */
- --color-social-reaction-bg-hover: var(--color-scale-gray-7);
- --color-social-reaction-bg-reacted-hover: var(--color-scale-blue-8);
-}
-
-main .pagination-loader-container {
- background-image: url("https://github.com/images/modules/pulls/progressive-disclosure-line-dark.svg");
-}
-
-main .gsc-loading-image {
- background-image: url("https://github.githubassets.com/images/mona-loading-dark.gif");
-}
-
-.gsc-comment-box-buttons a {
- border-radius: 0.25rem !important;
-}
diff --git a/sass/giscus_light.scss b/sass/giscus_light.scss
deleted file mode 100644
index eea8d3d..0000000
--- a/sass/giscus_light.scss
+++ /dev/null
@@ -1,104 +0,0 @@
-main {
- --primary-default: 109, 155, 255;
- --bg-default: 246, 246, 247;
- --color-prettylights-syntax-comment: #6e7781;
- --color-prettylights-syntax-constant: #0550ae;
- --color-prettylights-syntax-entity: #8250df;
- --color-prettylights-syntax-storage-modifier-import: #24292f;
- --color-prettylights-syntax-entity-tag: #116329;
- --color-prettylights-syntax-keyword: #cf222e;
- --color-prettylights-syntax-string: #0a3069;
- --color-prettylights-syntax-variable: #953800;
- --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;
- --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;
- --color-prettylights-syntax-invalid-illegal-bg: #82071e;
- --color-prettylights-syntax-carriage-return-text: #f6f8fa;
- --color-prettylights-syntax-carriage-return-bg: #cf222e;
- --color-prettylights-syntax-string-regexp: #116329;
- --color-prettylights-syntax-markup-list: #3b2300;
- --color-prettylights-syntax-markup-heading: #0550ae;
- --color-prettylights-syntax-markup-italic: #24292f;
- --color-prettylights-syntax-markup-bold: #24292f;
- --color-prettylights-syntax-markup-deleted-text: #82071e;
- --color-prettylights-syntax-markup-deleted-bg: #ffebe9;
- --color-prettylights-syntax-markup-inserted-text: #116329;
- --color-prettylights-syntax-markup-inserted-bg: #dafbe1;
- --color-prettylights-syntax-markup-changed-text: #953800;
- --color-prettylights-syntax-markup-changed-bg: #ffd8b5;
- --color-prettylights-syntax-markup-ignored-text: #eaeef2;
- --color-prettylights-syntax-markup-ignored-bg: #0550ae;
- --color-prettylights-syntax-meta-diff-range: #8250df;
- --color-prettylights-syntax-brackethighlighter-angle: #57606a;
- --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;
- --color-prettylights-syntax-constant-other-reference-link: #0a3069;
- --color-btn-text: #24292f;
- --color-btn-bg: rgba(var(--bg-default), 1);
- --color-btn-border: rgba(var(--bg-default), 1);
- --color-btn-shadow: 0 1px 0 rgba(var(--bg-default), 1);
- --color-btn-inset-shadow: inset 0 1px 0 rgba(var(--bg-default), 1);
- --color-btn-hover-bg: rgba(var(--bg-default), 0.5);
- --color-btn-hover-border: rgba(var(--bg-default), 0.5);
- --color-btn-active-bg: rgba(var(--primary-default), 0.2);
- --color-btn-active-border: rgba(var(--primary-default), 1);
- --color-btn-selected-bg: rgba(var(--primary-default), 0.15);
- --color-btn-primary-text: rgb(255 255 255 / 100%);
- --color-btn-primary-bg: rgba(var(--primary-default), 1);
- --color-btn-primary-border: rgba(var(--primary-default), 1);
- --color-btn-primary-shadow: 0 1px 0 rgb(31 35 40 / 10%);
- --color-btn-primary-inset-shadow: inset 0 1px 0 rgb(255 255 255 / 3%);
- --color-btn-primary-hover-bg: rgba(var(--primary-default), 0.9);
- --color-btn-primary-hover-border: rgba(var(--primary-default), 0.75);
- --color-btn-primary-selected-bg: rgba(var(--primary-default), 1);
- --color-btn-primary-selected-shadow: inset 0 1px 0 rgb(0 45 17 / 20%);
- --color-btn-primary-disabled-text: rgb(255 255 255 / 80%);
- --color-btn-primary-disabled-bg: rgba(var(--primary-default), 0.5);
- --color-btn-primary-disabled-border: rgba(var(--primary-default), 0.5);
- --color-action-list-item-default-hover-bg: rgb(208 215 222 / 32%);
- --color-segmented-control-bg: #eaeef2;
- --color-segmented-control-button-bg: #fff;
- --color-segmented-control-button-selected-border: rgba(var(--bg-default), 0.85);
- --color-fg-default: rgb(60 60 67);
- --color-fg-muted: rgb(60 60 67 / 75%);
- --color-fg-subtle: rgb(60 60 67 / 33%);
- --color-canvas-default: rgb(255 255 255);
- --color-canvas-overlay: rgb(255 255 255);
- --color-canvas-inset: rgba(var(--bg-default), 0.85);
- --color-canvas-subtle: rgba(var(--bg-default), 1);
- --color-border-default: rgba(var(--bg-default), 0.85);
- --color-border-muted: rgb(175 184 193 / 20%);
- --color-neutral-muted: rgb(175 184 193 / 20%);
- --color-accent-fg: rgba(var(--primary-default), 0.85);
- --color-accent-emphasis: rgba(var(--primary-default), 0.95);
- --color-accent-muted: rgba(var(--primary-default), 0.4);
- --color-accent-subtle: rgba(var(--primary-default), 0.1);
- --color-success-fg: #1a7f37;
- --color-attention-fg: #9a6700;
- --color-attention-muted: rgb(212 167 44 / 40%);
- --color-attention-subtle: #fff8c5;
- --color-danger-fg: #d1242f;
- --color-danger-muted: rgb(255 129 130 / 40%);
- --color-danger-subtle: #ffebe9;
- --color-primer-shadow-inset: 0 1px 0 rgba(var(--bg-default), 1), inset 0 1px 0 rgba(var(--bg-default), 1);
- --color-scale-gray-1: rgb(234 238 242 / 100%);
- --color-scale-blue-1: rgb(16 185 129 / 15%);
-
- /*! Extensions from @primer/css/alerts/flash.scss */
- --color-social-reaction-bg-hover: var(--color-scale-gray-1);
- --color-social-reaction-bg-reacted-hover: var(--color-scale-blue-1);
-}
-
-main .pagination-loader-container {
- background-image: url("https://github.com/images/modules/pulls/progressive-disclosure-line.svg");
-}
-
-main .gsc-loading-image {
- background-image: url("https://github.githubassets.com/images/mona-loading-default.gif");
-}
-
-.gsc-comment:not(.gsc-reply-box) .gsc-replies {
- border-radius: unset;
-}
-
-.gsc-comment-box-buttons a {
- border-radius: 0.25rem !important;
-}
diff --git a/sass/main.scss b/sass/main.scss
deleted file mode 100644
index 53cbd41..0000000
--- a/sass/main.scss
+++ /dev/null
@@ -1,1410 +0,0 @@
-/* base
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-*,
-*::before,
-*::after {
- box-sizing: border-box;
-}
-
-body {
- min-height: 100%;
- font-family: var(--main-font);
- background-color: var(--bg-color);
- color: var(--text-color);
-}
-
-html {
- scroll-behavior: smooth;
-}
-
-button:focus-visible,
-a:focus-visible {
- outline: var(--primary-color) solid 3px;
-}
-
-::selection {
- background-color: var(--primary-color);
- color: var(--bg-color);
-}
-
-@media screen and (min-width: 425px) {
- body::-webkit-scrollbar {
- width: 6px;
- height: 6px;
- }
-
- ::-webkit-scrollbar {
- width: 4px;
- height: 4px;
- }
-
- ::-webkit-scrollbar-track {
- background: #0000;
- }
-
- ::-webkit-scrollbar-thumb {
- background: #aeb7caa1;
- border-radius: 0px;
- }
-
- ::-webkit-scrollbar-thumb:hover {
- background: #8a90a1a1;
- }
-}
-
-/* prose
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-.prose {
- h1 {
- font-size: 1.5em;
- font-weight: bolder;
- margin: 1em 0 0.5em 0;
- }
-
- h2 {
- font-size: 1.3em;
- padding-top: 65px;
- margin-top: -45px;
- }
-
- h3 {
- font-size: 1.1em;
- padding-top: 65px;
- margin-top: -45px;
- }
-
- h4 {
- font-size: 1.05em;
- margin: 30px 0 15px 0;
- }
-
- .zola-anchor {
- visibility: hidden;
- margin-left: 0.75em;
- font-size: 0.85em;
- }
-
- h1, h2, h3, h4, h5, h6 {
- &:hover a.zola-anchor {
- visibility: visible !important;
- }
- }
-
- p {
- font-size: 1em;
- line-height: inherit;
- word-wrap: break-word;
- }
-
- a {
- color: var(--primary-color);
- text-decoration-color: var(--primary-pale-color);
- text-decoration-thickness: 1.5px;
-
- &:hover {
- text-decoration-color: var(--primary-color);
- }
-
- @media (max-width: 425px) {
- text-decoration-color: unset;
- text-decoration-thickness: auto;
- }
- }
-
- img {
- max-width: 100%;
- display: block;
- margin: 0 auto;
- border-radius: var(--img-border-radius);
- }
-
- figure {
- margin: 0 auto;
- }
-
- figcaption {
- width: 100%;
- text-align: center;
- margin: 5px auto;
- }
-
- blockquote {
- border-left: 3px var(--primary-pale-color) solid;
- padding-left: 16px;
- margin: 0 0 24px 0;
- color: var(--text-pale-color);
- }
-
- li::marker {
- color: var(--primary-color);
- }
-
- hr {
- border: none;
- background-color: var(--primary-pale-color);
- height: 3px;
- margin: 36px 0;
- }
-
- table {
- width: 100%;
- border-spacing: 0;
- border: 1px solid var(--primary-pale-color);
- }
-
- thead {
- background-color: var(--primary-pale-color);
- }
-
- th,
- td {
- line-height: 2;
- text-align: center;
- border: 1px solid var(--primary-pale-color);
- padding: 1px 10px;
- }
-
- p>code,
- li>code,
- td>code,
- th>code {
- font-family: var(--code-font);
- font-size: 0.8em;
- padding: 1px 6px;
- margin: 0 2px;
- color: var(--primary-color);
- background-color: var(--primary-pale-color);
- border-radius: var(--inline-code-border-radius);
- }
-
- pre {
- font-size: 0.8em;
- margin: 1.25em 0;
- padding: 12px 48px 12px 16px;
- line-height: 1.5;
- border: 1.5px solid var(--primary-color);
- overflow: auto;
-
- code {
- font-family: var(--code-font);
- }
-
- &[data-linenos] {
- padding: 12px 48px 12px 8px;
- }
-
- table {
- width: 100%;
- border-collapse: collapse;
- border: none;
- th, td {
- line-height: 1.5;
- }
- }
-
-
- table tr td:first-of-type {
- color: var(--text-pale-color);
- }
-
- table td {
- padding: 0;
- padding-right: 48px;
- text-align: initial;
- border: initial;
- }
-
- table td:nth-of-type(1) {
- text-align: right;
- user-select: none;
- padding-right: 1em;
- mark::before {
- left: -8px;
- width: calc(100% + 1em + 8px);
- }
- }
-
- mark {
- display: block;
- color: inherit;
- background-color: transparent;
- position: relative;
- overflow: visible;
-
- &::before {
- pointer-events: none;
- content: '';
- position: absolute;
- top: 0;
- bottom: 0;
- width: calc(100% + 48px + 48px);
- background-color: var(--highlight-mark-color);
- }
- }
-
- &.mermaid {
- border: none;
- }
- }
-
- pre > code > mark::before {
- width: calc(100% + 48px + 16px);
- left: -16px;
- }
-
- .codeblock {
- margin: 1em 0;
- position: relative;
- overflow: auto;
-
- pre {
- margin: 0;
- }
-
- .copy {
- z-index: 9;
- position: absolute;
- right: 0.6em;
- top: 0.6em;
- width: 24px;
- height: 24px;
- padding: 2px;
- cursor: pointer;
- background: transparent;
- border: none;
- color: var(--text-pale-color);
-
- &.copied, &:hover {
- color: var(--primary-color);
- }
-
- svg {
- width: 20px;
- height: 20px;
- }
- }
- }
-
- .codeblock-with-filename {
- margin-top: calc(0px - 1.2em - 24px - 1em - 1.5px);
-
- .filename {
- z-index: 1;
- position: relative;
- top: calc(1.2em + 24px + 1em + 1.5px);
- padding: 12px 16px;
- line-height: 1.2;
- color: var(--text-pale-color);
- border-bottom: 1.5px solid var(--primary-pale-color);
- }
-
- pre>code {
- display: inline-block;
- min-width: 100%;
- margin-top: 3.2em;
- }
- }
-
- .footnote-definition {
- display: flex;
-
- .footnote-definition-label {
- position: static;
- font-size: 1em;
- line-height: inherit;
- vertical-align: auto;
- margin-right: 0.5em;
- &::after {
- content: ".";
- }
- }
-
- p {
- margin: 0;
- }
-
- button.backlink {
- border: none;
- background: none;
- display: flex;
- align-items: center;
- margin-left: 0.5em;
- color: var(--primary-color);
- cursor: pointer;
- }
- }
-
- .callout {
- line-height: inherit;
- margin-bottom: 20px;
- border: 1.5px solid var(--primary-color);
- padding: 6px 12px;
- display: flex;
- gap: 12px;
-
- .icon {
- height: 1.75em;
- display: flex;
- align-items: center;
- }
-
- .content {
- p {
- margin: 0;
-
- +p {
- margin: 0.2em 0 0.5em;
- }
- }
- }
-
- &.note {
- color: var(--callout-note-color);
- border-color: var(--callout-note-color);
- }
-
- &.important {
- color: var(--callout-important-color);
- border-color: var(--callout-important-color);
- }
-
- &.warning {
- color: var(--callout-warning-color);
- border-color: var(--callout-warning-color);
- }
-
- &.alert {
- color: var(--callout-alert-color);
- border-color: var(--callout-alert-color);
- }
-
- &.question {
- color: var(--callout-question-color);
- border-color: var(--callout-question-color);
- }
-
- &.tip {
- color: var(--callout-tip-color);
- border-color: var(--callout-tip-color);
- }
- }
-
- .mermaid {
- background: #fff;
- }
-}
-
-/* prose pages
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.prose-page {
- main {
- font-size: var(--paragraph-font-size);
- min-height: 100vh;
- padding-top: 45px;
- margin: 0 auto;
- max-width: var(--main-max-width);
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
-
- article {
- padding: 45px 15px 30px;
- font-size: var(--paragraph-font-size);
- line-height: var(--paragraph-line-height);
- }
-
- .giscus {
- padding: 0 15px;
- }
-}
-
-/* layout blog list ( homepage / blogpage )
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-.layout-list {
- .category {
- font-size: 1.3em;
- margin: 2em 15px 1em;
- }
-
- .post-list {
- margin-top: 25px;
- }
-
- .post {
- display: flex;
- justify-content: space-between;
- align-items: flex-end;
- gap: 5px;
- padding: 6px 15px;
- margin: 1px 0;
- border-radius: 2px;
- font-size: 1.1em;
- text-decoration: none;
- color: var(--primary-color);
- -webkit-tap-highlight-color: transparent;
-
- &:hover {
- background-color: var(--primary-pale-color);
- }
-
- @media (max-width: 768px) {
- & {
- font-size: 1em;
- margin: 2.5px 5px;
- padding: 5px 10px;
- }
- }
-
- .date {
- white-space: nowrap;
- }
- }
-}
-
-/* homepage
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.homepage {
- #wrapper {
- width: 100%;
- min-height: 100vh;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- main {
- width: 100%;
- max-width: var(--homepage-max-width);
- padding: 3em 0 6em;
- }
-
- #info {
- padding: 0 15px;
- display: flex;
- gap: 1em;
-
- img {
- height: var(--avatar-size);
- width: var(--avatar-size);
- border-radius: 50%;
- }
-
- #text {
- font-size: 1.25em;
- display: flex;
- flex-direction: column;
- justify-content: space-around;
- }
-
- #id {
- margin-left: 0.5em;
- color: var(--primary-color);
- }
-
- #bio {
- font-size: 0.85em;
- }
- }
-
- #links {
- padding: 0 15px;
- margin: 1.25em 0 1.75em;
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
- gap: 0.5em 1em;
- font-size: 1.25em;
-
- a,
- button {
- text-decoration: none;
- color: var(--text-color);
-
- &:hover {
- color: var(--primary-color);
- }
- }
-
- #left {
- display: flex;
- flex-wrap: wrap;
- gap: 1em;
-
- a {
- border-bottom: 1.5px solid var(--primary-color);
- line-height: 24px;
- }
- }
-
- #right {
- display: flex;
- gap: 0.5em;
- margin-left: auto;
-
- a,
- button {
- width: 24px;
- height: 24px;
- }
-
- button {
- padding: 0;
- border: none;
- background-color: transparent;
- cursor: pointer;
- }
- }
-
- @media (max-width: 425px) {
- #left {
- gap: 0.75em;
- }
- }
- }
-
- #brief {
- padding: 0 15px;
- font-size: 1.15em;
- line-height: 1.5;
- }
-}
-
-/* header
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-header {
- z-index: 99;
- position: fixed;
- top: 0;
- width: 100%;
- height: 45px;
- background-color: var(--bg-color);
- border-bottom: 1.5px solid var(--primary-color);
-
- @supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
- &.blur {
- background-color: initial;
- -webkit-backdrop-filter: blur(8px);
- backdrop-filter: blur(8px);
- }
- }
-
- #header-wrapper {
- height: 100%;
- max-width: var(--main-max-width);
- margin: 0 auto;
- padding: 0 15px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- position: relative;
- }
-
- nav {
- font-size: 1.4em;
- display: flex;
- align-items: center;
-
- a {
- color: var(--text-color);
- text-decoration: none;
-
- &:hover {
- color: var(--primary-color);
- }
- }
-
- .separator {
- width: 24px;
- text-align: center;
- line-height: 1;
- cursor: pointer;
- border: none;
- padding: 0;
- background: transparent;
- margin: 0 0.1em;
- color: var(--text-color);
- -webkit-tap-highlight-color: transparent;
- }
- .wrap {
- &.left {
- margin: 0 0.3em 0 -0.1em;
- }
- &.right {
- margin: 0 0 0 0.3em;
- }
- }
- .wrap-separator {
- margin: 0 0.5em 0 0.1em;
- }
-
- .fold {
- display: none;
- &.shown {
- display: initial;
- }
- }
- }
-
- #btns {
- display: flex;
- gap: 1em;
- align-items: center;
- padding-top: 1.5px;
-
- a,
- button {
- width: 24px;
- height: 24px;
- border: none;
- background-color: transparent;
- padding: 0;
- text-decoration: none;
- color: var(--text-color);
- cursor: pointer;
-
- @media (hover: hover) {
- &:hover {
- color: var(--primary-color);
- }
- }
- }
- }
-
- #toc-toggle {
- display: none;
-
- @media (max-width: 1024px) {
- & {
- display: inline-block;
-
- &.active {
- color: var(--primary-color);
- }
- }
- }
- }
-}
-
-/* footer
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-footer {
- font-size: 0.95rem;
- padding: 15px;
- display: flex;
- justify-content: center;
- align-items: center;
- flex-wrap: wrap;
- gap: 15px;
- color: var(--text-pale-color);
-
- .copyright {
- margin-right: auto;
- }
-
- .credits {
- margin-left: auto;
- }
-
- a {
- color: var(--text-pale-color);
- }
-
- @media (max-width: 374px) {
- & {
- flex-direction: column;
- gap: 0;
-
- .copyright,
- .credits {
- margin: 0;
- }
- }
- }
-}
-
-/* blog page
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.blog {
- #wrapper {
- margin: 0 auto;
- max-width: var(--main-max-width);
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
-
- main {
- margin: 60px 0;
- }
-}
-
-/* post page
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.post {
- #wrapper {
- display: flex;
- justify-content: space-between;
- font-size: 18px;
- }
-
- #blank {
- order: 1;
- position: sticky;
- width: calc((100% - var(--main-max-width)) / 2);
- }
-
- main {
- order: 2;
- width: 100%;
- margin: 0 auto;
- padding-top: 45px;
- max-width: var(--main-max-width);
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
-
- article {
- padding: 0 15px 30px;
- font-size: var(--paragraph-font-size);
- line-height: var(--paragraph-line-height);
-
- #post-info {
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
- margin-bottom: 1em;
- }
-
- #date {
- color: var(--text-pale-color);
- margin-bottom: 1em;
-
- #publish,
- #updated {
- margin-right: 20px;
- }
- }
-
- #tags {
- margin-bottom: 1em;
- display: flex;
- gap: 1em;
- flex-wrap: wrap;
-
- a {
- color: var(--primary-color);
- text-decoration: none;
- span {
- font-size: 0.95em;
- margin-right: 2px;
- }
- }
- }
-
- #outdate_alert.hidden {
- display: none;
- }
- }
-
- .mermaid {
- background: #fff;
- }
-
- .giscus {
- padding: 0 15px;
- }
-
- aside {
- order: 3;
- width: calc((100% - var(--main-max-width)) / 2);
- position: sticky;
- margin-top: 195px;
- top: 60px;
- height: min-content;
- font-size: var(--aside-font-size);
-
- nav {
- padding: 5px 15px 5px 2em;
- min-width: 60%;
- overflow-y: auto;
- max-height: calc(100vh - 50px - 5em);
- scrollbar-width: none;
-
- &::-webkit-scrollbar {
- width: 0;
- }
-
- &:hover::-webkit-scrollbar {
- width: 4px;
- }
- }
-
- ul {
- list-style-type: none;
- padding: 0;
- line-height: 2;
- margin: 0;
- }
-
- a {
- text-decoration: none;
- display: block;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- color: var(--text-pale-color);
- position: relative;
- padding: 0 1em;
-
- &.h3 {
- padding-left: 2.5em;
- font-size: 0.95em;
- }
-
- &::before {
- display: block;
- content: "";
- width: 2px;
- position: absolute;
- top: 0.6em;
- bottom: 0.7em;
- left: 0em;
- background: transparent;
- }
-
- &:hover,
- &.active {
- color: var(--primary-color);
- }
-
- &:hover::before {
- background-color: var(--primary-color);
- }
- }
-
- #back-to-top {
- z-index: 99;
- height: 28px;
- padding: 0;
- position: fixed;
- bottom: 1.5em;
- margin-left: 3em;
- color: var(--text-pale-color);
- background: transparent;
- border: none;
- cursor: pointer;
- svg {
- width: 28px;
- height: 28px;
- }
- transform: translateY(-5px) scale(0);
- transition: transform 0.2s;
-
- &.shown {
- transform: translateY(0px) scale(1);
- }
-
- &:hover {
- color: var(--primary-color);
- }
- }
- }
-
- @media screen and (max-width: 1024px) {
- aside {
- position: fixed;
- right: -100%;
-
- &.shown {
- right: 0;
- }
-
- top: 45px;
- margin-top: 0;
- min-width: 260px;
- height: 100%;
- background-color: var(--bg-color);
- box-shadow: rgba(0, 0, 0, 0.08) -2px 8px 8px 0px;
-
- nav {
- padding: 1em 0;
- }
-
- ul {
- padding-left: 10px;
- }
-
- #back-to-top {
- display: none;
- }
- }
-
- @supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
- aside.blur {
- background-color: fade(var(--bg-color), 75%);
- -webkit-backdrop-filter: blur(8px);
- backdrop-filter: blur(8px);
- }
- }
-
- #blank {
- display: none;
- }
-
- main {
- margin: 0 auto;
- }
- }
-}
-
-/* tag list page
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.tag-list {
- #wrapper {
- margin: 0 auto;
- max-width: var(--main-max-width);
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
-
- main {
- margin: 85px auto 60px;
- }
-
- .title {
- width: min-content;
- font-size: 1.3em;
- margin: 0 auto;
- }
-
- .tags {
- margin-top: 40px;
- display: flex;
- justify-content: center;
- align-items: center;
- flex-wrap: wrap;
- font-size: 1.1em;
-
- a {
- color: var(--primary-color);
- text-decoration: none;
- margin: 2em;
- }
- }
-
-}
-
-/* tag single page
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.tag-single {
- #wrapper {
- margin: 0 auto;
- max-width: var(--main-max-width);
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
-
- main {
- width: 100%;
- margin: 85px auto 60px;
- }
-
-
- .title {
- width: min-content;
- white-space: nowrap;
- color: var(--text-color);
- font-size: 1.3em;
- margin: 0 auto;
- margin-bottom: 40px;
- padding: 0 0 0 60px;
-
- a {
- margin-left: 30px;
- font-size: 0.5em;
- color: var(--primary-color);
- }
- }
-
- .post {
- display: flex;
- justify-content: space-between;
- align-items: flex-end;
- gap: 5px;
- padding: 6px 15px;
- margin: 1px 0;
- border-radius: 2px;
- font-size: 1.1em;
- text-decoration: none;
- color: var(--primary-color);
- -webkit-tap-highlight-color: transparent;
-
- &:hover {
- background-color: var(--primary-pale-color);
- }
-
- .date {
- white-space: nowrap;
- }
-
- @media screen and (max-width: 768px) {
- & {
- font-size: 1em;
- margin: 2.5px 5px;
- padding: 5px 10px;
- }
- }
- }
-}
-
-/* projects page
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.projects {
- #wrapper {
- margin: 0 auto;
- max-width: var(--main-max-width);
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
-
- main {
- width: 100%;
- margin: 90px auto 40px;
- }
-
- .proj {
- margin: 0px 15px 45px;
-
- .name {
- font-size: 1.2em;
- margin: 0 0 15px 0;
- color: var(--primary-color);
- }
-
- .desc {
- line-height: 1.5;
- margin: 0 0 10px 0;
-
- a {
- color: var(--primary-color);
- text-decoration: underline var(--primary-pale-color) 2px;
-
- &:hover {
- text-decoration-color: var(--primary-color);
- }
- }
-
- p>code {
- font-family: var(--code-font);
- font-size: 0.8em;
- padding: 1px 6px;
- color: var(--primary-color);
- background-color: var(--primary-pale-color);
- border-radius: 4px;
- }
- }
-
- .more {
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
- gap: 1em;
-
- .tags {
- font-size: 0.9em;
- display: flex;
- gap: 0.5em 1em;
- flex-wrap: wrap;
-
- div {
- color: var(--text-pale-color);
- span {
- font-size: 0.9em;
- margin-right: 1.5px;
- }
- }
- }
-
- .links {
- margin-left: auto;
- display: flex;
- justify-content: end;
- gap: 0.5em 1em;
-
- a {
- text-decoration: none;
- border-bottom: 1.5px solid var(--primary-color);
- padding: 0 2px;
- cursor: pointer;
- color: inherit;
-
- &:visited {
- color: inherit;
- }
-
- &:hover {
- color: var(--primary-color);
- }
- }
- }
- }
-
- }
-}
-
-/* 404 page
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-body.not-found {
- height: 100vh;
- height: 100dvh;
- display: flex;
- justify-content: center;
- align-items: center;
-
- .wrapper {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 3em;
- }
-
- .error {
- display: flex;
- align-items: center;
- font-size: 2em;
- color: var(--text-pale-color);
- }
-
- .spacer {
- background: var(--text-pale-color);
- width: 2px;
- height: 0.75em;
- margin: 0 0.5em;
- }
-
- .text {
- font-size: 0.85em;
- }
-
- a {
- color: var(--primary-color);
- text-decoration-color: var(--primary-pale-color);
-
- &:hover, &:active {
- text-decoration-color: var(--primary-color);
- }
- }
-}
-
-
-/* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-html {
- line-height: 1.15;
- -webkit-text-size-adjust: 100%;
- text-size-adjust: 100%;
-}
-
-body {
- margin: 0;
-}
-
-main {
- display: block;
-}
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-hr {
- box-sizing: content-box;
- height: 0;
- overflow: visible;
-}
-
-pre {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-a {
- background-color: transparent;
-}
-
-abbr[title] {
- border-bottom: none;
- text-decoration: underline;
- text-decoration: underline dotted;
-}
-
-b,
-strong {
- font-weight: bolder;
-}
-
-code,
-kbd,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-small {
- font-size: 80%;
-}
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-img {
- border-style: none;
-}
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- font-size: 100%;
- line-height: 1.15;
- margin: 0;
-}
-
-button,
-input {
- overflow: visible;
-}
-
-button,
-select {
- text-transform: none;
-}
-
-button,
-[type="button"],
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button;
- appearance: button;
-}
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
- border-style: none;
- padding: 0;
-}
-
-button:-moz-focusring,
-[type="button"]:-moz-focusring,
-[type="reset"]:-moz-focusring,
-[type="submit"]:-moz-focusring {
- outline: 1px dotted ButtonText;
-}
-
-fieldset {
- padding: 0.35em 0.75em 0.625em;
-}
-
-legend {
- box-sizing: border-box;
- color: inherit;
- display: table;
- max-width: 100%;
- padding: 0;
- white-space: normal;
-}
-
-progress {
- vertical-align: baseline;
-}
-
-textarea {
- overflow: auto;
-}
-
-[type="checkbox"],
-[type="radio"] {
- box-sizing: border-box;
- padding: 0;
-}
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-[type="search"] {
- -webkit-appearance: textfield;
- appearance: textfield;
- outline-offset: -2px;
-}
-
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- font: inherit;
-}
-
-details {
- display: block;
-}
-
-summary {
- display: list-item;
-}
-
-template {
- display: none;
-}
-
-[hidden] {
- display: none;
-}
diff --git a/src/_config/filters/base64.js b/src/_config/filters/base64.js
new file mode 100644
index 0000000..563b059
--- /dev/null
+++ b/src/_config/filters/base64.js
@@ -0,0 +1,3 @@
+module.exports = function base64(text) {
+ return Buffer.from(text).toString('base64');
+};
diff --git a/src/_config/filters/cdnify.js b/src/_config/filters/cdnify.js
new file mode 100644
index 0000000..8be20a3
--- /dev/null
+++ b/src/_config/filters/cdnify.js
@@ -0,0 +1,9 @@
+module.exports = function cdnify(url) {
+ if (
+ (this.ctx.settings.isProduction || this.ctx.settings.isStaging) &&
+ this.ctx.settings.cdn
+ ) {
+ url = 'https://i0.wp.com/' + url.replace(/^https?:\/\//, '');
+ }
+ return url;
+};
diff --git a/src/_config/filters/dates.js b/src/_config/filters/dates.js
new file mode 100644
index 0000000..7aacbb2
--- /dev/null
+++ b/src/_config/filters/dates.js
@@ -0,0 +1,14 @@
+const formatDate = function (
+ date,
+ format = {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'},
+) {
+ const d = new Date(date);
+ return d.toLocaleDateString(
+ this.ctx.locales[this.page.lang || this.ctx.lang].locale,
+ format,
+ );
+};
+
+module.exports = {
+ formatDate,
+};
diff --git a/src/_config/filters/language.js b/src/_config/filters/language.js
new file mode 100644
index 0000000..7328171
--- /dev/null
+++ b/src/_config/filters/language.js
@@ -0,0 +1,5 @@
+module.exports = function languageFilter(collection, lang) {
+ if (!lang) lang = this.page.lang || this.ctx.lang;
+ const filtered = collection.filter((item) => item.page.lang == lang);
+ return filtered;
+};
diff --git a/src/_config/filters/mimetype.js b/src/_config/filters/mimetype.js
new file mode 100644
index 0000000..0221006
--- /dev/null
+++ b/src/_config/filters/mimetype.js
@@ -0,0 +1,5 @@
+const mime = require('mime-types');
+
+module.exports = function mimeType(file) {
+ return mime.lookup(file);
+};
diff --git a/src/_config/filters/random.js b/src/_config/filters/random.js
new file mode 100644
index 0000000..de324f4
--- /dev/null
+++ b/src/_config/filters/random.js
@@ -0,0 +1,9 @@
+// return a random item from a collection, excluding the current page
+// {% set collection = collections.posts | random(page) %}
+module.exports = function (collections, avoid) {
+ let selected = collections[Math.floor(Math.random() * collections.length)];
+ while (selected.url === avoid.url) {
+ selected = collections[Math.floor(Math.random() * collections.length)];
+ }
+ return [selected];
+};
diff --git a/src/_config/filters/readingtime.js b/src/_config/filters/readingtime.js
new file mode 100644
index 0000000..1d6d4d1
--- /dev/null
+++ b/src/_config/filters/readingtime.js
@@ -0,0 +1,35 @@
+// calculate the time to read of a chunk of text (to the nearest minute)
+// based on https://www.bobmonsour.com/posts/calculating-reading-time/
+const nunjucks = require('nunjucks');
+nunjucks.configure({autoescape: true});
+
+module.exports = function (text) {
+ var content = new String(text);
+ const speed = 240; // reading speed in words per minute
+
+ // remove all html elements
+ var re = /(<.*?>)|(<[^>]+>)/gi;
+ var plain = content.replace(re, '');
+
+ // replace all newlines and 's with spaces
+ var plain = plain.replace(/\s+|'s/g, ' ');
+
+ // create array of all the words in the post & count them
+ var words = plain.split(' ');
+ var count = words.length;
+
+ // calculate the reading time
+ var readingTime = Math.round(count / speed);
+ if (readingTime === 0) {
+ return this.ctx.translations[this.page.lang || this.ctx.lang].readingTime
+ .underMinute;
+ } else if (readingTime === 1) {
+ return this.ctx.translations[this.page.lang || this.ctx.lang].readingTime
+ .minute;
+ } else {
+ return nunjucks.renderString(
+ this.ctx.translations[this.page.lang || this.ctx.lang].readingTime.other,
+ {minutes: readingTime},
+ );
+ }
+};
diff --git a/src/_config/filters/sort.js b/src/_config/filters/sort.js
new file mode 100644
index 0000000..8f0b0e6
--- /dev/null
+++ b/src/_config/filters/sort.js
@@ -0,0 +1,26 @@
+// sort collection by an arbitrary key
+// {% set collection = collections.posts | sort('title', false, false) %}
+module.exports = function (
+ collections,
+ key,
+ reversed = false,
+ forceLowerCase = false,
+) {
+ return collections.sort((a, b) => {
+ let x = key ? a.data[key] : a;
+ let y = key ? b.data[key] : b;
+
+ if (forceLowerCase) {
+ x = x.toLowerCase();
+ y = y.toLowerCase();
+ }
+
+ if (x < y) {
+ return reversed ? 1 : -1;
+ }
+ if (x > y) {
+ return reversed ? -1 : 1;
+ }
+ return 0;
+ });
+};
diff --git a/src/_config/filters/translate.js b/src/_config/filters/translate.js
new file mode 100644
index 0000000..a9e6ee5
--- /dev/null
+++ b/src/_config/filters/translate.js
@@ -0,0 +1,15 @@
+// finds a translation from src/_data/translations.js
+// can support data substitution, for example: {{ 'translation.key' | translate(page.lang, {data: 500}) }}
+// to-do: can this be made to support plurals also?
+const get = require('lodash.get');
+const nunjucks = require('nunjucks');
+nunjucks.configure({autoescape: true});
+
+module.exports = function translate(lookup, lang, data = {}) {
+ if (!lang) lang = this.page.lang || this.ctx.lang;
+ const translation = nunjucks.renderString(
+ get(this.ctx.translations[lang], `[${lookup}]`),
+ data,
+ );
+ return translation;
+};
diff --git a/src/_config/filters/where.js b/src/_config/filters/where.js
new file mode 100644
index 0000000..f37f28c
--- /dev/null
+++ b/src/_config/filters/where.js
@@ -0,0 +1,8 @@
+// filter collection by a key
+// {% set collection = collections.posts | where('title', 'value') %}
+module.exports = function (collections, key, value) {
+ return collections.filter((item) => {
+ const data = item && item.data ? item.data : item;
+ return typeof value === 'undefined' ? key in data : data[key] === value;
+ });
+};
diff --git a/src/_config/filters/widont.js b/src/_config/filters/widont.js
new file mode 100644
index 0000000..ee32318
--- /dev/null
+++ b/src/_config/filters/widont.js
@@ -0,0 +1,10 @@
+// polyfill to be replaced with CSS when more widely supported
+// text-wrap: pretty or text-wrap: balance (https://caniuse.com/?search=text-wrap%3A)
+module.exports = function widont(value) {
+ const words = value.split(' ');
+ if (words.length > 1) {
+ words[words.length - 2] += ` ${words[words.length - 1]}`;
+ words.pop();
+ }
+ return words.join(' ');
+};
diff --git a/src/_config/plugins/drafts.js b/src/_config/plugins/drafts.js
new file mode 100644
index 0000000..b30f6c0
--- /dev/null
+++ b/src/_config/plugins/drafts.js
@@ -0,0 +1,51 @@
+function eleventyComputedPermalink() {
+ return (data) => {
+ // Always skip during non-watch/serve builds
+ if (data.draft && !process.env.BUILD_DRAFTS) {
+ return false;
+ }
+ return data.permalink;
+ };
+}
+
+function eleventyComputedExcludeFromCollections() {
+ return (data) => {
+ // Always exclude from non-watch/serve builds
+ if (data.draft && !process.env.BUILD_DRAFTS) {
+ return true;
+ }
+ return data.eleventyExcludeFromCollections;
+ };
+}
+
+module.exports.eleventyComputedPermalink = eleventyComputedPermalink;
+module.exports.eleventyComputedExcludeFromCollections =
+ eleventyComputedExcludeFromCollections;
+
+module.exports = (eleventyConfig) => {
+ eleventyConfig.addGlobalData(
+ 'eleventyComputed.permalink',
+ eleventyComputedPermalink,
+ );
+ eleventyConfig.addGlobalData(
+ 'eleventyComputed.eleventyExcludeFromCollections',
+ eleventyComputedExcludeFromCollections,
+ );
+
+ let logged = false;
+ eleventyConfig.on('eleventy.before', ({runMode}) => {
+ let text = 'Excluding';
+ // Only show drafts in serve/watch modes
+ if (runMode === 'serve' || runMode === 'watch') {
+ process.env.BUILD_DRAFTS = true;
+ text = 'Including';
+ }
+
+ // Only log once.
+ if (!logged) {
+ console.log(`[11ty] ${text} drafts`);
+ }
+
+ logged = true;
+ });
+};
diff --git a/src/_config/shortcodes/image.js b/src/_config/shortcodes/image.js
new file mode 100644
index 0000000..ec3e77e
--- /dev/null
+++ b/src/_config/shortcodes/image.js
@@ -0,0 +1,56 @@
+const Image = require('@11ty/eleventy-img');
+
+module.exports = async function (
+ src,
+ alt,
+ sizes,
+ caption = '',
+ classes = '',
+ loading = 'lazy',
+ fetch = 'auto',
+ decoding = 'async',
+) {
+ const settings = this.ctx.settings;
+ let meta = {};
+ let metadata = {
+ // set your required image sizes here
+ widths: [300, 600, 1200, 2400, 'auto'],
+ urlPath: '/assets/img/',
+ outputDir: './dist/assets/img/',
+ sharpWebpOptions: {
+ options: {
+ quality: 70,
+ },
+ },
+ };
+
+ if ((settings.isProduction || settings.isStaging) && settings.cdn) {
+ meta = await Image('./src' + src, {
+ ...metadata,
+ formats: ['webp', 'auto'],
+ urlFormat: function ({width}) {
+ return `//i0.wp.com/${settings.url.replace(/^https?:\/\//, '')}${src}?w=${width}&quality=70&strip=info`;
+ },
+ });
+ } else {
+ meta = await Image('./src' + src, {
+ ...metadata,
+ formats: ['avif', 'webp', 'auto'],
+ });
+ }
+
+ let imageAttributes = {
+ class: classes,
+ alt,
+ sizes,
+ loading,
+ fetch,
+ decoding,
+ };
+
+ const generated = Image.generateHTML(meta, imageAttributes);
+ if (caption) {
+ return `${generated}${caption} `;
+ }
+ return generated;
+};
diff --git a/src/_config/transforms/css.js b/src/_config/transforms/css.js
new file mode 100644
index 0000000..0b895c6
--- /dev/null
+++ b/src/_config/transforms/css.js
@@ -0,0 +1,14 @@
+const CleanCSS = require('clean-css');
+
+module.exports = (eleventyConfig) => {
+ eleventyConfig.addTransform('css-minify', (content, path) => {
+ if (
+ path &&
+ path.endsWith('.css') &&
+ eleventyConfig.globalData.settings.isProduction
+ ) {
+ return new CleanCSS().minify(content).styles;
+ }
+ return content;
+ });
+};
diff --git a/src/_config/transforms/html.js b/src/_config/transforms/html.js
new file mode 100644
index 0000000..c6a8875
--- /dev/null
+++ b/src/_config/transforms/html.js
@@ -0,0 +1,22 @@
+const htmlmin = require('html-minifier-terser');
+
+module.exports = (eleventyConfig) => {
+ eleventyConfig.addTransform('html-minify', (content, path) => {
+ if (
+ path &&
+ path.endsWith('.html') &&
+ eleventyConfig.globalData.settings.isProduction
+ ) {
+ return htmlmin.minify(content, {
+ collapseBooleanAttributes: true,
+ collapseWhitespace: true,
+ decodeEntities: true,
+ includeAutoGeneratedTags: false,
+ removeComments: true,
+ minifyCSS: true,
+ minifyJS: true,
+ });
+ }
+ return content;
+ });
+};
diff --git a/src/_config/transforms/js.js b/src/_config/transforms/js.js
new file mode 100644
index 0000000..7387e73
--- /dev/null
+++ b/src/_config/transforms/js.js
@@ -0,0 +1,15 @@
+const {minify} = require('terser');
+
+module.exports = (eleventyConfig) => {
+ eleventyConfig.addTransform('js-minify', async (content, path) => {
+ if (
+ path &&
+ path.endsWith('.js') &&
+ eleventyConfig.globalData.settings.isProduction
+ ) {
+ const minified = await minify(content);
+ return minified.code;
+ }
+ return content;
+ });
+};
diff --git a/src/_data/locales.js b/src/_data/locales.js
new file mode 100644
index 0000000..1e5ef6f
--- /dev/null
+++ b/src/_data/locales.js
@@ -0,0 +1,14 @@
+module.exports = {
+ en: {
+ dir: 'ltr',
+ label: 'English',
+ shorthand: 'EN',
+ locale: 'en-US',
+ },
+ sv: {
+ dir: 'ltr',
+ label: 'Svenska',
+ shorthand: 'SE',
+ locale: 'sv-SE',
+ },
+};
diff --git a/src/_data/navigation.js b/src/_data/navigation.js
new file mode 100644
index 0000000..bc7b53b
--- /dev/null
+++ b/src/_data/navigation.js
@@ -0,0 +1,44 @@
+module.exports = {
+ en: [
+ {
+ text: 'About',
+ url: '/about/',
+ },
+ {
+ text: 'Blog',
+ url: '/',
+ },
+ {
+ text: 'Journal',
+ url: '/journal/',
+ },
+ {
+ text: 'Notes',
+ url: '/notes/',
+ },
+ ],
+ sv: [
+ {
+ text: 'Om',
+ url: '/om/',
+ },
+ {
+ text: 'Dokumentation',
+ url: '/',
+ },
+ {
+ text: 'GitHub',
+ url: 'https://github.com/scottsweb/elva',
+ },
+ ],
+ footer: [
+ {
+ text: '/now',
+ url: '/now/',
+ },
+ {
+ text: '/uses',
+ url: '/uses/',
+ },
+ ],
+};
diff --git a/src/_data/settings.json b/src/_data/settings.json
new file mode 100644
index 0000000..f4bf0c6
--- /dev/null
+++ b/src/_data/settings.json
@@ -0,0 +1,27 @@
+{
+ "themeColorLight": "#F7ECE1",
+ "themeColorDark": "#342038",
+ "cdn": false,
+ "author": {
+ "name": "Miguel Pimentel",
+ "email": "contact@miguelpimentel.do",
+ "url": "https://miguelpimentel.do",
+ "location": "Minnesota, USA",
+ "fediverseProfile": "https://mas.to/@database"
+ },
+ "meta": {
+ "separator": "•",
+ "opengraphDefaultImage": "/assets/img/opengraph-default.png"
+ },
+ "seo": {
+ "defaultChangeFrequency": "monthly",
+ "defaultPriority": "0.7"
+ },
+ "manifest": {
+ "themeColor": "#F7ECE1",
+ "backgroundColor": "#342038",
+ "display": "minimal-ui",
+ "orientation": "portrait-primary",
+ "categories": ["blogging", "notes"]
+ }
+}
diff --git a/src/_data/translations.js b/src/_data/translations.js
new file mode 100644
index 0000000..188de4e
--- /dev/null
+++ b/src/_data/translations.js
@@ -0,0 +1,51 @@
+module.exports = {
+ en: {
+ meta: {
+ title: 'Miguel Pimentel',
+ rssTitle: 'RSS Feed',
+ jsonTitle: 'JSON Feed',
+ description: 'Personal website built with 11ty.',
+ opengraphDefaultAlt: 'Site logo.',
+ },
+ header: {
+ skipLink: 'Skip to content',
+ home: 'Home',
+ },
+ readingTime: {
+ underMinute: 'Less than 1 minute to read',
+ minute: '1 minute to read',
+ other: '{{ minutes }} minutes to read',
+ },
+ feeds: {
+ info: 'This is an RSS feed. Copy and paste the URL into your feed reader. Visit About Feeds to learn more about RSS.',
+ title: 'Recently published',
+ },
+ dark: 'Dark',
+ light: 'Light',
+ },
+ sv: {
+ meta: {
+ title: 'elva',
+ rssTitle: 'RSS Feed',
+ jsonTitle: 'JSON Feed',
+ description: 'A multilingual clean green 11ty starter theme',
+ opengraphDefaultAlt:
+ 'A Swedish description of the default opengraph image',
+ },
+ header: {
+ skipLink: 'Hoppa till innehållet',
+ home: 'Hem',
+ },
+ readingTime: {
+ underMinute: 'Mindre än 1 minut att läsa',
+ minute: '1 minut till läsaren',
+ other: '{{ minutes }} minuter att läsa',
+ },
+ feeds: {
+ info: 'Detta är ett RSS feed. Kopiera och klistra in webbadressen i din flödesläsare. Besök About Feeds för att lära dig mer om RSS.',
+ title: 'Nyligen publicerad',
+ },
+ dark: 'Mörk',
+ light: 'Ljus',
+ },
+};
diff --git a/src/_includes/backlinks.njk b/src/_includes/backlinks.njk
new file mode 100644
index 0000000..883e410
--- /dev/null
+++ b/src/_includes/backlinks.njk
@@ -0,0 +1,16 @@
+
+Backlinks
+{% if backlinks.length > 0 %}
+
+{% else %}
+ No backlinks found.
+{% endif %}
\ No newline at end of file
diff --git a/src/_includes/footer-nav.njk b/src/_includes/footer-nav.njk
new file mode 100644
index 0000000..046ca9f
--- /dev/null
+++ b/src/_includes/footer-nav.njk
@@ -0,0 +1,15 @@
+{# #}
+
+
\ No newline at end of file
diff --git a/src/_includes/footer.njk b/src/_includes/footer.njk
new file mode 100644
index 0000000..1e795a2
--- /dev/null
+++ b/src/_includes/footer.njk
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/src/_includes/header.njk b/src/_includes/header.njk
new file mode 100644
index 0000000..61e5f4d
--- /dev/null
+++ b/src/_includes/header.njk
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/src/_includes/navigation.njk b/src/_includes/navigation.njk
new file mode 100644
index 0000000..c159af0
--- /dev/null
+++ b/src/_includes/navigation.njk
@@ -0,0 +1,16 @@
+
+
+ {# {% include "switch-il8n.njk" %} #}
+
\ No newline at end of file
diff --git a/src/_includes/notes.njk b/src/_includes/notes.njk
new file mode 100644
index 0000000..27757a8
--- /dev/null
+++ b/src/_includes/notes.njk
@@ -0,0 +1,19 @@
+{% set noteslist = collections.notes | languageFilter %}
+
+ {% for note in noteslist %}
+
+ {% endfor %}
+
\ No newline at end of file
diff --git a/src/_includes/posts.njk b/src/_includes/posts.njk
new file mode 100644
index 0000000..9f7dc6d
--- /dev/null
+++ b/src/_includes/posts.njk
@@ -0,0 +1,15 @@
+{% set postslist = collections.posts | languageFilter | reverse %}
+
+ {% for post in postslist %}
+
+
+ {% if post.data.title %}
+ {{ post.data.title }}
+ {% else %}
+ {{ post.url }}
+ {% endif %}
+
+ {{ post.date | formatDate }}
+
+ {% endfor %}
+
\ No newline at end of file
diff --git a/src/_includes/site-intro.njk b/src/_includes/site-intro.njk
new file mode 100644
index 0000000..1e3623f
--- /dev/null
+++ b/src/_includes/site-intro.njk
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/_includes/switch-darkmode.njk b/src/_includes/switch-darkmode.njk
new file mode 100644
index 0000000..2864876
--- /dev/null
+++ b/src/_includes/switch-darkmode.njk
@@ -0,0 +1,47 @@
+
\ No newline at end of file
diff --git a/src/_includes/switch-il8n.njk b/src/_includes/switch-il8n.njk
new file mode 100644
index 0000000..b4900e8
--- /dev/null
+++ b/src/_includes/switch-il8n.njk
@@ -0,0 +1,23 @@
+
+ {% for lang, properties in locales %}
+ {% if page.lang === lang %}
+
+ {{ properties.shorthand }}
+
+ {% else %}
+ {% set found = false %}
+ {% for link in page.url | locale_links %}
+ {% if lang === link.lang %}{% set found = link %}{% endif %}
+ {% endfor %}
+ {% if found %}
+
+ {{ properties.shorthand }}
+
+ {% else %}
+
+ {{ properties.shorthand }}
+
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+
\ No newline at end of file
diff --git a/src/_includes/toc.njk b/src/_includes/toc.njk
new file mode 100644
index 0000000..5fc7255
--- /dev/null
+++ b/src/_includes/toc.njk
@@ -0,0 +1,4 @@
+
+ Show/Hide
+ {{ content | toc | safe }}
+
\ No newline at end of file
diff --git a/src/_layouts/base.njk b/src/_layouts/base.njk
new file mode 100644
index 0000000..e84f7df
--- /dev/null
+++ b/src/_layouts/base.njk
@@ -0,0 +1,72 @@
+
+
+
+ {%- set t = ((seo.title or title) + ' ' + settings.meta.separator + ' ' + ('meta.title' | translate) if (seo.title or title) else ('meta.title' | translate)) %}
+ {%- set d = seo.description or ('meta.description' | translate) %}
+ {%- set u = page.url | htmlBaseUrl(settings.url) %}
+ {%- set i = (thumbnail or settings.meta.opengraphDefaultImage) | htmlBaseUrl(settings.url) %}
+ {%- set ia = thumbnailDescription or ('meta.opengraphDefaultAlt' | translate) %}
+
+
+
+
+ {{ t }}
+
+
+
+ {%- for link in page.url | locale_links %} {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if (settings.isProduction or settings.isStaging) and settings.cdn %} {% endif %}
+
+
+
+
+
+ {% if settings.isStaging or noIndex %} {% endif %}
+ {% if settings.author.fediverseProfile %} {% endif %}
+
+
+
+
+
+ {% include "header.njk" %}
+
+ {{ content | safe }}
+
+ {% include "footer.njk" %}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/_layouts/blog.njk b/src/_layouts/blog.njk
new file mode 100644
index 0000000..3f081de
--- /dev/null
+++ b/src/_layouts/blog.njk
@@ -0,0 +1,12 @@
+---
+layout: base
+---
+
+
+
+
+
+ {% include "posts.njk" %}
+
\ No newline at end of file
diff --git a/src/_layouts/json.njk b/src/_layouts/json.njk
new file mode 100644
index 0000000..31c4114
--- /dev/null
+++ b/src/_layouts/json.njk
@@ -0,0 +1,32 @@
+{
+ "version": "https://jsonfeed.org/version/1.1",
+ "title": "{{ 'meta.jsonTitle' | translate }} {{ settings.meta.separator }} {{ 'meta.title' | translate }}",
+ "description": "{{ 'meta.description' | translate }}",
+ "language": "{{ page.lang }}",
+ "home_page_url": "{{ "/" | htmlBaseUrl(settings.url) }}",
+ "feed_url": "{{ permalink | htmlBaseUrl(settings.url) }}",
+ "icon": "{{ "/assets/img/android-chrome-512x512.png" | htmlBaseUrl(settings.url) | cdnify }}",
+ "favicon": "{{ "/assets/img/android-chrome-192x192.png" | htmlBaseUrl(settings.url) | cdnify }}",
+ "authors": [
+ {
+ "name": "{{ settings.author.name }}",
+ "url": "{{ settings.author.url }}"
+ }
+ ],
+ "items": [
+ {%- for post in collections.posts | languageFilter(page.lang)| reverse %}
+ {%- set absolutePostUrl = post.url | htmlBaseUrl(settings.url) %}
+ {%- set image = (post.data.thumbnail or settings.meta.opengraphDefaultImage) | htmlBaseUrl(settings.url) | cdnify %}
+ {
+ "id": "{{ absolutePostUrl }}",
+ "url": "{{ absolutePostUrl }}",
+ "title": "{{ post.data.title }}",
+ "image": "{{ image | cdnify }}",
+ "content_html": {% if post.templateContent %}{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) | dump | safe }}{% else %}""{% endif %},
+ "date_published": "{{ post.date | dateToRfc3339 }}",
+ "language": "{{ post.page.lang }}"
+ }
+ {%- if not loop.last %},{% endif %}
+ {%- endfor %}
+ ]
+}
\ No newline at end of file
diff --git a/src/_layouts/manifest.njk b/src/_layouts/manifest.njk
new file mode 100644
index 0000000..5c15299
--- /dev/null
+++ b/src/_layouts/manifest.njk
@@ -0,0 +1,33 @@
+{
+ "lang": "{{ locales[page.lang].locale or page.lang }}",
+ "dir": "{{ locales[page.lang].dir or 'ltr' }}",
+ "short_name": "{{ 'meta.title' | translate }}",
+ "name": "{{ 'meta.title' | translate }}",
+ "description": "{{ 'meta.description' | translate }}",
+ "categories": {{ settings.manifest.categories | dump | safe }},
+ "orientation": "{{ settings.manifest.orientation }}",
+ "scope": "{{ '/' | htmlBaseUrl(settings.url) }}",
+ "id": "/?v= {% version %}",
+ "start_url": "{{ '/' | htmlBaseUrl(settings.url) }}",
+ "theme_color": "{{ settings.manifest.themeColor }}",
+ "background_color": "{{ settings.manifest.backgroundColor }}",
+ "display": "{{ settings.manifest.display }}",
+ "icons": [
+ {
+ {# "src": "{{ '/assets/img/android-chrome-192x192.png' | htmlBaseUrl(settings.url) }}", #}
+ "src": "./assets/img/android-chrome-192x192.png",
+ "type": "image/svg+xml",
+ "sizes": "any",
+ "purpose": "any maskable"
+ }, {
+ "src": "{{ '/assets/img/android-chrome-192x192.png' | htmlBaseUrl(settings.url) }}",
+ "type": "image/png",
+ "sizes": "192x192"
+ }, {
+ "src": "{{ '/assets/img/android-chrome-512x512.png' | htmlBaseUrl(settings.url) }}",
+ "type": "image/png",
+ "sizes": "512x512",
+ "purpose": "any maskable"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/_layouts/note.njk b/src/_layouts/note.njk
new file mode 100644
index 0000000..ee81e0a
--- /dev/null
+++ b/src/_layouts/note.njk
@@ -0,0 +1,16 @@
+---
+layout: base
+---
+
+
+
+
+ {# {% include 'toc.njk' %} #}
+
+
+ {{ content | safe }}
+
+
+{% include 'backlinks.njk' %}
\ No newline at end of file
diff --git a/src/_layouts/notes.njk b/src/_layouts/notes.njk
new file mode 100644
index 0000000..88ec63e
--- /dev/null
+++ b/src/_layouts/notes.njk
@@ -0,0 +1,13 @@
+---
+layout: base
+---
+
+
+
+
+
+ {{ content | safe }}
+ {% include "notes.njk" %}
+
\ No newline at end of file
diff --git a/src/_layouts/page.njk b/src/_layouts/page.njk
new file mode 100644
index 0000000..04e062e
--- /dev/null
+++ b/src/_layouts/page.njk
@@ -0,0 +1,11 @@
+---
+layout: base
+---
+
+
+
+ {{ content | safe }}
+
+
\ No newline at end of file
diff --git a/src/_layouts/post.njk b/src/_layouts/post.njk
new file mode 100644
index 0000000..abbb674
--- /dev/null
+++ b/src/_layouts/post.njk
@@ -0,0 +1,17 @@
+---
+layout: base
+---
+
+
+
+ {{ content | safe }}
+
+
\ No newline at end of file
diff --git a/src/_layouts/rss.njk b/src/_layouts/rss.njk
new file mode 100644
index 0000000..07ea562
--- /dev/null
+++ b/src/_layouts/rss.njk
@@ -0,0 +1,45 @@
+---json
+{
+ "permalink": "/{{ lang }}/feed.xml",
+ "eleventyExcludeFromCollections": true,
+ "metadata": {
+ "title": "Custom blog posts RSS feed.",
+ "subtitle": "This is a custom blog post RSS feed.",
+ "language": "en",
+ "url": "https://miguelpimentel.do",
+ "author": {
+ "name": "Miguel Pimentel",
+ "email": "contact@miguelpimentel.do"
+ }
+ }
+}
+---
+
+
+
+ {{ 'meta.rssTitle' | translate }}
+ {{ settings.meta.separator }}
+ {{ 'meta.title' | translate }}
+ {{ 'meta.description' | translate }}
+ {{ "/assets/img/android-chrome-512x512.png" | htmlBaseUrl(settings.url) | cdnify }}
+
+
+ {{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}
+ {{ "/" | htmlBaseUrl(settings.url) }}
+
+ {{ settings.author.name }}
+ {{ settings.author.email }}
+
+ {%- for post in collections.posts | languageFilter(page.lang)| reverse %}
+ {%- set absolutePostUrl = post.url | absoluteUrl(settings.url) %}
+ {%- set image = (post.data.thumbnail or settings.meta.opengraphDefaultImage) | htmlBaseUrl(settings.url) | cdnify %}
+
+ {{ post.data.title }}
+
+ {{ post.date | dateToRfc3339 }}
+ {{ absolutePostUrl }}
+ {{ post.templateContent | transformWithHtmlBase(settings.url) }}
+
+
+ {%- endfor %}
+
\ No newline at end of file
diff --git a/src/_layouts/rss.xsl.njk b/src/_layouts/rss.xsl.njk
new file mode 100644
index 0000000..9cd92e6
--- /dev/null
+++ b/src/_layouts/rss.xsl.njk
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ 'feeds.info' | translate | safe }}
+
{{ 'feeds.title' | translate }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/_utils/humans.njk b/src/_utils/humans.njk
new file mode 100644
index 0000000..9f3bc60
--- /dev/null
+++ b/src/_utils/humans.njk
@@ -0,0 +1,18 @@
+---
+permalink: /humans.txt
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
+/* TEAM */
+Designer / Developer: {{ settings.author.name }}
+Contact: {{ settings.author.email }}
+Site: {{ settings.author.url }}
+From: {{ settings.author.location }}
+{% if settings.author.fediverseProfile %}Fediverse: {{ settings.author.fediverseProfile }}{% endif %}
+
+/* SITE */
+Last update: {% build %}
+Standards: HTML5, CSS3
+Components: elva, Alpine.js
+Software: 11ty
diff --git a/src/_utils/redirects.njk b/src/_utils/redirects.njk
new file mode 100644
index 0000000..4e7277a
--- /dev/null
+++ b/src/_utils/redirects.njk
@@ -0,0 +1,6 @@
+---
+permalink: /_redirects
+eleventyExcludeFromCollections: true
+---
+/en/* /404.html 404
+/sv/* /sv/404.html 404
\ No newline at end of file
diff --git a/src/_utils/robots.njk b/src/_utils/robots.njk
new file mode 100644
index 0000000..d63ddbe
--- /dev/null
+++ b/src/_utils/robots.njk
@@ -0,0 +1,22 @@
+---
+permalink: /robots.txt
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
+{%- if settings.isProduction -%}
+Sitemap: {{ "/sitemap.xml" | htmlBaseUrl(settings.url) }}
+
+User-agent: Google-Extended
+User-agent: CCBot
+User-agent: FacebookBot
+User-agent: GPTBot
+Disallow: /
+
+User-agent: *
+Disallow:
+Disallow: /404.html
+{%- else -%}
+User-agent: *
+Disallow: /
+{%- endif -%}
\ No newline at end of file
diff --git a/src/_utils/sitemap.njk b/src/_utils/sitemap.njk
new file mode 100644
index 0000000..3b8ed04
--- /dev/null
+++ b/src/_utils/sitemap.njk
@@ -0,0 +1,22 @@
+---
+permalink: /sitemap.xml
+eleventyExcludeFromCollections: true
+---
+
+
+{%- for page in collections.all %}
+ {%- if not page.data.seo.excludeFromSitemap %}
+ {%- set absoluteUrl %}{{ page.url | htmlBaseUrl(settings.url) }}{% endset %}
+
+ {{ absoluteUrl }}
+ {%- if page.url === '/' %}
+ {{ collections.all | getNewestCollectionItemDate | dateToRfc3339 }}
+ {%- else %}
+ {{ page.date | dateToRfc3339 }}
+ {%- endif %}
+ {{ page.data.seo.changeFrequency or settings.seo.defaultChangeFrequency }}
+ {{ page.data.seo.sitemapPriority or settings.seo.defaultPriority }}
+
+ {%- endif %}
+{%- endfor %}
+
\ No newline at end of file
diff --git a/src/assets/css/bundle.njk b/src/assets/css/bundle.njk
new file mode 100644
index 0000000..87e0ef3
--- /dev/null
+++ b/src/assets/css/bundle.njk
@@ -0,0 +1,13 @@
+---
+permalink: /assets/css/bundle.css
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
+
+{% include "./reset.css" %}
+{% include "./variables.css" %}
+{% include "./styles.css" %}
+{% include "./components/syntax.css" %}
+{% include "./components/switch-il8n.css" %}
+{% include "./components/switch-darkmode.css" %}
\ No newline at end of file
diff --git a/src/assets/css/components/switch-darkmode.css b/src/assets/css/components/switch-darkmode.css
new file mode 100644
index 0000000..a2e4613
--- /dev/null
+++ b/src/assets/css/components/switch-darkmode.css
@@ -0,0 +1,63 @@
+.switch-wrapper .switch + .switch-btn {
+ background: var(--foreground);
+ border-radius: 2em;
+ padding: 6px;
+ transition: all 0.4s ease;
+ display: block;
+ width: 3.5em;
+ height: 2em;
+ position: relative;
+ cursor: pointer;
+ user-select: none;
+}
+
+.switch-wrapper .switch + .switch-btn::before,
+.switch-wrapper .switch + .switch-btn::after {
+ position: relative;
+ display: block;
+ content: '';
+ height: 100%;
+}
+
+.switch-wrapper .switch + .switch-btn::before {
+ display: none;
+ width: 50%;
+}
+
+.switch-wrapper .switch + .switch-btn::after {
+ left: 0;
+ border-radius: 50%;
+ background: var(--background);
+ width: unset;
+ aspect-ratio: 1/1;
+ transition: all 0.2s ease;
+}
+
+.switch-wrapper .switch:checked + .switch-btn {
+ background: var(--foreground);
+}
+
+.switch-wrapper .switch-btn.switch-button-on::after {
+ transform: translateX(106%) !important;
+ background: var(--background);
+}
+
+.switch-wrapper .icon {
+ width: 20px;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ color: var(--background);
+}
+
+.switch-wrapper .icon-sun {
+ left: 12%;
+}
+
+.switch-wrapper .icon-moon {
+ right: 12%;
+}
+
+.switch-wrapper .switch {
+ display: none;
+}
diff --git a/src/assets/css/components/switch-il8n.css b/src/assets/css/components/switch-il8n.css
new file mode 100644
index 0000000..c14ec4d
--- /dev/null
+++ b/src/assets/css/components/switch-il8n.css
@@ -0,0 +1,22 @@
+.switch-language a,
+.switch-language span {
+ padding: var(--space-3xs) var(--space-2xs);
+ text-decoration: none;
+ margin-left: var(--space-2xs);
+ background-color: var(--link);
+ color: var(--background);
+ border-radius: var(--step--1);
+ display: inline-block;
+}
+
+.switch-language a:hover,
+.switch-language a.current {
+ background-color: var(--foreground);
+ color: var(--background);
+}
+
+.switch-language span.disabled {
+ background-color: var(--background-soft);
+ color: var(--foreground-soft);
+ cursor: not-allowed;
+}
diff --git a/src/assets/css/components/syntax.css b/src/assets/css/components/syntax.css
new file mode 100644
index 0000000..597a203
--- /dev/null
+++ b/src/assets/css/components/syntax.css
@@ -0,0 +1,127 @@
+code[class*='language-'],
+pre[class*='language-'] {
+ color: var(--code-default);
+ background: none;
+ font-family: var(--font-mono);
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+code[class*='language-'] {
+ padding-right: var(--space-s-l);
+}
+
+[class*='language-']::selection,
+[class*='language-'] *::selection {
+ background: var(--nord13);
+ color: var(--nord0);
+}
+
+/* code blocks */
+pre[class*='language-'] {
+ padding: var(--space-s-l);
+ overflow: auto;
+}
+
+:not(pre) > code[class*='language-'],
+pre[class*='language-'] {
+ background: var(--code-background);
+ border-radius: var(--border-radius);
+}
+
+/* inline code */
+:not(pre) > code[class*='language-'] {
+ padding: 0.1em;
+ border-radius: 0.3em;
+ white-space: normal;
+}
+
+/* tokens */
+.namespace {
+ opacity: 0.7;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+/* colour */
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: var(--code-comment);
+}
+
+.token.punctuation {
+ color: var(--code-tag);
+}
+
+.token.property,
+.token.tag,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: var(--code-tag);
+}
+
+.token.number {
+ color: var(--code-number);
+}
+
+.token.boolean {
+ color: var(--code-tag);
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: var(--code-selector);
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string,
+.token.variable {
+ color: var(--code-tag);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.function,
+.token.class-name {
+ color: var(--code-function);
+}
+
+.token.keyword {
+ color: var(--code-tag);
+}
+
+.token.regex,
+.token.important {
+ color: var(--code-regex);
+}
diff --git a/src/assets/css/reset.css b/src/assets/css/reset.css
new file mode 100644
index 0000000..0120c58
--- /dev/null
+++ b/src/assets/css/reset.css
@@ -0,0 +1,68 @@
+/* Modern reset: https://piccalil.li/blog/a-modern-css-reset/ */
+
+/* Box sizing rules */
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+/* Remove default margin */
+/* body,
+h1,
+h2,
+h3,
+h4,
+p,
+figure,
+blockquote,
+dl,
+dd {
+ margin: 0;
+} */
+
+/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
+ul[role='list'],
+ol[role='list'] {
+ list-style: none;
+}
+
+/* Prevent zooming when orientation changes on some iOS devices */
+html {
+ text-size-adjust: none;
+ -webkit-text-size-adjust: none;
+}
+
+/* Set core root defaults */
+html:focus-within {
+ scroll-behavior: smooth;
+}
+
+/* Set core body defaults */
+body {
+ min-height: 100vh;
+ /*text-rendering: optimizeSpeed; - this can break safari thing*/
+ line-height: 1.5;
+}
+
+/* A elements that don't have a class get default styles */
+a:not([class]) {
+ text-decoration-skip-ink: auto;
+}
+
+/* Make images easier to work with */
+img,
+picture,
+svg {
+ width: 100%;
+ height: auto;
+ display: block;
+}
+
+/* Inherit fonts for inputs and buttons */
+input,
+button,
+textarea,
+select {
+ font: inherit;
+}
diff --git a/src/assets/css/styles.css b/src/assets/css/styles.css
new file mode 100644
index 0000000..a27bf8b
--- /dev/null
+++ b/src/assets/css/styles.css
@@ -0,0 +1,672 @@
+@media (prefers-reduced-motion) {
+ * {
+ transition: none !important;
+ }
+}
+
+html {
+ overflow-y: scroll;
+}
+
+body {
+ background-color: var(--background);
+ color: var(--foreground);
+ font-family: var(--font-base);
+ font-size: var(--step-0);
+ line-height: 1.4;
+ letter-spacing: var(--tracking);
+ transition:
+ background var(--transition-base),
+ color var(--transition-base);
+}
+
+[x-cloak] {
+ display: none !important;
+}
+
+::selection {
+ background: var(--foreground);
+ color: var(--background);
+}
+
+:focus {
+ transition: var(--transition-base);
+ outline: var(--focus-outline);
+ outline-offset: 0.3ch;
+ border-radius: var(--border-radius);
+ text-decoration: none;
+}
+
+:focus:not(:focus-visible) {
+ outline: none;
+}
+
+:target {
+ scroll-margin-top: 2ex;
+}
+
+@font-face {
+ font-family: 'Pacifico';
+ font-style: normal;
+ font-display: swap;
+ font-weight: normal;
+ src:
+ local(''),
+ url(/assets/fonts/Pacifico.woff2) format('woff2');
+}
+@font-face {
+ font-family: 'Bitter';
+ font-style: normal;
+ font-display: swap;
+ font-weight: normal;
+ src:
+ local(''),
+ url(/assets/fonts/Bitter.woff2) format('woff2');
+}
+@font-face {
+ font-family: 'Bitter';
+ font-style: italic;
+ font-display: swap;
+ font-weight: normal;
+ src:
+ local(''),
+ url(/assets/fonts/Bitter-Italic.woff2) format('woff2');
+}
+
+.site-title {
+ font-family: var(--font-site-title);
+ font-weight: 100;
+}
+
+a {
+ color: var(--link);
+}
+
+a:hover {
+ color: var(--link-hover);
+ text-decoration: none;
+}
+
+hr {
+ border-top: 1px solid var(--divider);
+ border-bottom: none;
+}
+
+p > code,
+li > code {
+ /* background-color: var(--background-soft); */
+ /* border-radius: var(--border-radius); */
+ background: rgb(0, 0, 0, 0.1);
+ padding: 0 0.4ch;
+ border-radius: 0.25rem;
+}
+
+table {
+ width: 100%;
+ border: 1px solid var(--foreground-soft);
+ border-collapse: collapse;
+}
+
+table th {
+ font-family: var(--font-headings);
+}
+
+table th,
+table td {
+ border: 1px solid var(--foreground-soft);
+ padding: var(--space-2xs);
+}
+
+table tbody tr:nth-child(odd) {
+ background-color: var(--background-soft);
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: var(--font-headings);
+}
+
+h1,
+h2,
+h3 {
+ line-height: 1;
+ letter-spacing: var(--tracking-s);
+ margin-top: var(--space-xs);
+}
+
+h1 {
+ font-size: var(--step-4);
+}
+
+h2 {
+ font-size: var(--step-2);
+}
+
+h3 {
+ font-size: var(--step-1);
+}
+
+h4 {
+ font-size: var(--step-0);
+}
+
+h5,
+h6 {
+ font-size: var(--step-0);
+}
+
+blockquote:not([class]) {
+ font-family: var(--font-serif);
+ font-size: var(--step-1);
+}
+
+blockquote:not([class]) p:last-of-type {
+ font-family: var(--font-base);
+ font-size: var(--size-step-1);
+ font-weight: normal;
+}
+
+blockquote p::before {
+ content: open-quote;
+}
+
+blockquote p::after {
+ content: close-quote;
+}
+
+/* h4,
+h5,
+h6,
+p,
+li,
+blockquote:not([class]) {
+ max-width: 65ch;
+} */
+
+p:has(> picture) {
+ max-width: initial;
+ width: 100%;
+}
+
+mark {
+ background-color: var(--nord13);
+ color: var(--nord0);
+}
+
+figure {
+ position: relative;
+}
+
+figure > figcaption {
+ position: absolute;
+ bottom: var(--space-s-m);
+ left: var(--space-s-m);
+ color: var(--background);
+ margin-right: var(--space-s-m);
+ background-color: var(--foreground);
+ padding: var(--space-3xs) var(--space-xs);
+ box-shadow: 0px 4px color-mix(in srgb, var(--foreground), var(--black) 9%);
+ border-radius: var(--border-radius);
+ font-size: var(--step--1);
+}
+
+figure > figcaption::selection {
+ background: var(--nord13);
+ color: var(--nord0);
+}
+
+.entry-header {
+ margin-bottom: var(--space-m, 1em);
+}
+
+.entry-content > * + * {
+ margin-top: var(--space-m, 1em);
+}
+
+/* @media screen and (max-width: 768px) {
+ .entry-content p {
+ text-align: justify;
+ }
+} */
+
+/* utilities */
+
+.screen-reader-text {
+ border: 0;
+ clip: rect(1px, 1px, 1px, 1px);
+ clip-path: inset(50%);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+ word-wrap: normal !important;
+}
+
+.rounded {
+ border-radius: var(--border-radius);
+}
+
+.subtle {
+ font-size: var(--step--1);
+ color: var(--foreground-soft);
+}
+
+.oembed-youtube,
+.oembed-vimeo {
+ border: 1px solid var(--foreground);
+}
+
+.oembed-youtube lite-youtube {
+ max-width: 100%;
+}
+
+.oembed-youtube lite-youtube::before {
+ background: none;
+ position: relative;
+}
+
+/* notice */
+
+.notice {
+ padding: var(--space-s) var(--space-s) calc(var(--space-s) - 4px)
+ var(--space-s);
+ border-radius: var(--border-radius);
+ color: var(--white);
+ background-color: var(--nord9);
+ box-shadow: 0px 4px color-mix(in srgb, var(--nord9), var(--black) 9%);
+ width: 100%;
+ max-width: initial;
+}
+
+.notice.notice-warning {
+ background-color: var(--nord13);
+ box-shadow: 0px 4px color-mix(in srgb, var(--nord13), var(--black) 9%);
+}
+
+.notice.notice-error {
+ background-color: var(--nord11);
+ box-shadow: 0px 4px color-mix(in srgb, var(--nord11), var(--black) 9%);
+}
+
+.notice a {
+ color: var(--nord5);
+}
+
+.notice a:hover {
+ color: var(--white);
+}
+
+/* body and containers */
+
+body {
+ display: flex;
+ flex-direction: column;
+ max-width: var(--page-width);
+ margin: 0 auto;
+}
+
+#content {
+ padding: var(--space-s-2xl);
+ flex-grow: 1;
+}
+
+/* skip to content */
+
+.skip-link {
+ transform: translateY(-140px);
+ transition: var(--transition-base);
+ padding: var(--space-s-l);
+ background-color: var(--foreground);
+ color: var(--background);
+ font-family: var(--font-headings);
+ font-weight: 500;
+ border-radius: 0;
+ width: 100%;
+}
+
+.skip-link:hover {
+ color: var(--background);
+}
+
+.skip-link:focus {
+ transform: translateY(0);
+ position: fixed;
+ display: block;
+ clip: auto !important;
+ clip-path: none;
+ height: auto;
+ width: 100%;
+ z-index: 10;
+}
+
+/* header and navigation */
+
+.navigation {
+ padding: var(--space-s-l);
+ display: flex;
+ gap: var(--space-s-l);
+ align-items: center;
+ font-family: var(--font-headings);
+ flex-direction: column;
+ font-weight: 500;
+}
+
+/* @media (min-width: 600px) {
+ .navigation {
+ flex-direction: row;
+ }
+} */
+
+svg.site-logo {
+ color: var(--foreground);
+ max-width: var(--home-width);
+}
+
+.site-logo:focus {
+ outline: none;
+}
+
+/* .site-logo:focus svg {
+ color: var(--link);
+} */
+
+.navigation-menu {
+ list-style: none;
+ border: 0;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ gap: var(--space-s-m);
+ flex-grow: 1;
+ font-family: var(--font-site-title);
+ font-size: var(--step-1);
+}
+
+.navigation-menu li {
+ margin: 0;
+ padding: 0;
+}
+
+.navigation-menu li a {
+ text-decoration: none;
+ letter-spacing: var(--tracking-s);
+}
+
+.navigation-menu li a:focus {
+ outline-offset: 0.6ch;
+}
+
+a[aria-current='page'] {
+ color: var(--link-hover);
+ text-decoration: none;
+}
+
+/* home */
+
+.home #content {
+ display: flex;
+ flex-direction: column;
+}
+
+.home .site-intro {
+ text-align: justify;
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+/* .home .site-intro svg {
+ max-width: 50%;
+} */
+
+.home .site-intro p {
+ /* margin: var(--space-m-l) auto 0 auto; */
+ max-width: var(--home-width);
+}
+
+/* notes */
+
+.notelist {
+ /* list-style: none; */
+ margin: 0;
+ padding: 0;
+}
+
+/* posts */
+
+.postlist {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.postlist li {
+ margin-bottom: var(--space-s-m);
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.postlist .postlist-date {
+ color: var(--foreground-soft);
+ font-size: var(--step--1);
+ display: block;
+}
+
+.posts .meta {
+ list-style: none;
+ margin: 0 0 var(--space-s-2xl) 0;
+ padding: 0;
+}
+
+@media (min-width: 600px) {
+ .posts .meta {
+ display: flex;
+ gap: var(--space-3xs);
+ }
+
+ .posts .meta-reading-time::before {
+ content: '•';
+ display: inline-block;
+ padding-left: var(--space-2xs);
+ padding-right: var(--space-2xs);
+ }
+}
+
+.posts .meta-date,
+.posts .meta-reading-time {
+ color: var(--foreground-soft);
+}
+
+/* footer */
+
+.footer {
+ padding: var(--space-s-l);
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.rss-icon {
+ width: 44px;
+}
+
+/* feed xslt */
+
+.rss-xslt h1 {
+ margin-top: var(--space-s-l);
+}
+
+.rss-xslt .posts {
+ list-style: none;
+ margin: var(--space-s-l) 0 0 0;
+ padding: 0;
+}
+
+.rss-xslt .posts li {
+ margin-bottom: var(--space-s-m);
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.rss-xslt .posts span {
+ color: var(--foreground-soft);
+ font-size: var(--step--1);
+ display: block;
+}
+
+/* backlinks */
+.backlinks-title {
+ margin-bottom: 1rem;
+ margin-top: 1rem;
+}
+
+/* .backlinks-container {
+} */
+
+.backlinks-default {
+ margin-top: 1rem;
+ margin-left: 16px;
+ color: var(--text-color);
+}
+
+.backlink__preview {
+ display: none;
+
+ position: absolute;
+ bottom: 8px;
+ left: 100%;
+ background-color: var(--background);
+ border-radius: 0.2rem;
+ padding: 1rem;
+ box-shadow: 0.1rem 0.5rem 0.7rem rgba(0, 0, 0, 0.5);
+ width: clamp(348px, 750px, 1100px); /* 348 */
+ overflow: hidden;
+ /* max-height: 348px; */
+ outline: 0.2rem solid black;
+}
+.backlink__preview::after {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ background: linear-gradient(transparent, var(--background));
+ width: 100%;
+ height: 24px;
+}
+
+.backlink__preview h1 {
+ margin: 0 0 1rem 0;
+ font-size: var(--step-3);
+}
+.backlink__preview h2 {
+ margin-top: 1rem;
+ font-size: var(--step-2);
+}
+.backlink__preview h3 {
+ font-size: var(--step-1);
+}
+
+.backlink {
+ font-size: var(--step--1);
+ width: fit-content;
+ position: relative;
+}
+
+.backlink:hover {
+ padding-right: 4px; /* Allow mouse to travel between link and modal */
+}
+
+.backlink:hover .backlink__preview {
+ display: block;
+}
+
+.navigation-menu a:hover {
+ text-decoration: underline;
+}
+
+ul .current-page {
+ display: none;
+}
+
+.notelist {
+ list-style: none;
+}
+
+.notelist-item {
+ box-shadow: 0.1rem 0.5rem 0.7rem rgba(0, 0, 0, 0.5);
+ outline: 0.2rem solid black;
+ border-radius: 0.2rem;
+ max-height: 14rem;
+ max-width: calc(50% - 2rem);
+ overflow: hidden;
+ padding: 1rem;
+ font-size: var(--step--1);
+ outline-color: var(--text-color);
+ /* background: var(--opposite-background); */
+ /* color: var(--opposite-text); */
+ /* color: var(--opposite-text); */
+}
+
+@media screen and (max-width: 768px) {
+ .notelist-item {
+ max-width: 80%;
+ }
+}
+
+.notelist {
+ display: inline-flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 1rem;
+ max-width: var(--page-width);
+}
+
+a.notelist-link {
+ font-size: var(--step-1);
+ color: var(--text-color);
+ /* color: var(--opposite-text); */
+ font-family: var(--font-site-title);
+ text-decoration: none;
+ &::hover {
+ /* color: var(--opposite-text); */
+ }
+}
+
+.navigation-menu-footer {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ gap: var(--space-s-m);
+ flex-grow: 1;
+ font-size: var(--step-0);
+}
+
+.navigation-menu-footer li {
+ margin: 0;
+ padding: 0;
+}
+
+.navigation-menu-footer li a {
+ text-decoration: none;
+ letter-spacing: var(--tracking-s);
+}
+
+.navigation-menu-footer li a:focus {
+ outline-offset: 0.6ch;
+}
+
+.navigation-menu-footer li a:hover {
+ text-decoration: underline;
+}
diff --git a/src/assets/css/variables.css b/src/assets/css/variables.css
new file mode 100644
index 0000000..7f7cae4
--- /dev/null
+++ b/src/assets/css/variables.css
@@ -0,0 +1,124 @@
+:root {
+ /* branding */
+ --black: #000;
+ --white: #fff;
+ /* --nord0: #2e3440; */
+ /* --nord0: #342038; */
+ --nord0: #0d2113;
+ /* --nord0: #14311D; */
+ --nord1: #3b4252;
+ --nord2: #434c5e;
+ --nord3: #4c566a;
+ --nord4: #d8dee9;
+ --nord5: #e5e9f0;
+ --nord6: #ffeddf;
+ /* --nord6: #F7ECE1; */
+ /* --nord6: #342038; */
+ --nord7: #8fbcbb;
+ /* --nord8: #88c0d0; */
+ --nord8: #ffeddf;
+ --nord9: #81a1c1;
+ --nord10: #5e81ac;
+ --nord11: #bf616a;
+ --nord12: #d08770;
+ --nord13: #efc571;
+ --nord14: #a3be8c;
+ --nord15: #b48ead;
+
+ /* colours */
+ --background: var(--nord6);
+ --background-soft: var(--nord4);
+ --foreground: var(--nord0);
+ --foreground-soft: color-mix(in srgb, var(--nord6) 30%, var(--nord0));
+ --link: color-mix(in srgb, var(--nord10) 70%, var(--nord0));
+ --link-hover: var(--nord0);
+ --divider: color-mix(in srgb, var(--nord6) 80%, var(--nord0));
+ --opposite-background: var(--nord0);
+ --opposite-text: var(--nord6);
+
+ /* syntax highlighting */
+ --code-background: var(--nord0);
+ --code-default: var(--nord6);
+ --code-regex: var(--nord13);
+ --code-tag: var(--nord9);
+ --code-comment: var(--nord3);
+ --code-selector: var(--nord14);
+ --code-number: var(--nord15);
+ --code-function: var(--nord8);
+
+ /* typography */
+ --font-base: Bitter, Georgia, Times, 'Times New Roman', serif;
+ --font-site-title: Pacifico, Bitter, Georgia, Times, 'Times New Roman', serif;
+ --font-headings: Bitter, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica,
+ Arial, sans-serif;
+ --font-quote: var(--font-base);
+ --font-mono: 'Fira Code', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono',
+ monospace;
+ /* @link https://utopia.fyi/type/calculator?c=320,18,1.2,1500,22,1.333,6,1,800&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
+ --step--1: clamp(0.94rem, calc(0.91rem + 0.13vw), 1.03rem);
+ --step-0: clamp(1.13rem, calc(1.06rem + 0.34vw), 1.38rem);
+ --step-1: clamp(1.35rem, calc(1.22rem + 0.66vw), 1.83rem);
+ --step-2: clamp(1.62rem, calc(1.4rem + 1.12vw), 2.44rem);
+ --step-3: clamp(1.94rem, calc(1.59rem + 1.78vw), 3.26rem);
+ --step-4: clamp(2.33rem, calc(1.79rem + 2.72vw), 4.34rem);
+ --step-5: clamp(2.8rem, calc(1.99rem + 4.05vw), 5.79rem);
+ --step-6: clamp(3.36rem, calc(2.18rem + 5.91vw), 7.71rem);
+
+ /* spacing / layout */
+ --tracking: -0.02ch;
+ --tracking-s: -0.055ch;
+ --gutter: var(--space-s-m);
+ --border-radius: var(--step-0);
+ /* @link https://utopia.fyi/space/calculator?c=320,18,1.2,1500,22,1.333,6,1,800&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l|m-3xl|s-2xl&g=s,l,xl,12 */
+ --space-3xs: clamp(0.31rem, calc(0.3rem + 0.08vw), 0.38rem);
+ --space-2xs: clamp(0.56rem, calc(0.53rem + 0.17vw), 0.69rem);
+ --space-xs: clamp(0.88rem, calc(0.82rem + 0.25vw), 1.06rem);
+ --space-s: clamp(1.13rem, calc(1.06rem + 0.34vw), 1.38rem);
+ --space-m: clamp(1.69rem, calc(1.59rem + 0.51vw), 2.06rem);
+ --space-l: clamp(2.25rem, calc(2.11rem + 0.68vw), 2.75rem);
+ --space-xl: clamp(3.38rem, calc(3.17rem + 1.02vw), 4.13rem);
+ --space-2xl: clamp(4.5rem, calc(4.23rem + 1.36vw), 5.5rem);
+ --space-3xl: clamp(6.75rem, calc(6.34rem + 2.03vw), 8.25rem);
+ /* one-up pairs */
+ --space-3xs-2xs: clamp(0.31rem, calc(0.21rem + 0.51vw), 0.69rem);
+ --space-2xs-xs: clamp(0.56rem, calc(0.43rem + 0.68vw), 1.06rem);
+ --space-xs-s: clamp(0.88rem, calc(0.74rem + 0.68vw), 1.38rem);
+ --space-s-m: clamp(1.13rem, calc(0.87rem + 1.27vw), 2.06rem);
+ --space-m-l: clamp(1.69rem, calc(1.4rem + 1.44vw), 2.75rem);
+ --space-l-xl: clamp(2.25rem, calc(1.74rem + 2.54vw), 4.13rem);
+ --space-xl-2xl: clamp(3.38rem, calc(2.8rem + 2.88vw), 5.5rem);
+ --space-2xl-3xl: clamp(4.5rem, calc(3.48rem + 5.08vw), 8.25rem);
+ /* custom pairs */
+ --space-s-l: clamp(1.13rem, calc(0.68rem + 2.2vw), 2.75rem);
+ --space-m-3xl: clamp(1.69rem, calc(-0.09rem + 8.9vw), 8.25rem);
+ --space-s-2xl: clamp(1.13rem, calc(-0.06rem + 5.93vw), 5.5rem);
+
+ /* animation */
+ --transition-base: 250ms ease;
+ --transition-movement: 200ms linear;
+ --transition-fade: 200ms ease;
+ --transition-bounce: 500ms cubic-bezier(0.5, 0.05, 0.2, 1.5);
+
+ /* focus */
+ --focus-outline: 0.3ch solid var(--nord13);
+
+ --home-width: 550px;
+ --page-width: 950px;
+}
+
+/* dark mode */
+:root[data-theme='dark'] {
+ /* colours */
+ --background: var(--nord0);
+ --opposite-background: var(--nord6);
+ --opposite-text: var(--nord0);
+ --background-soft: var(--nord2);
+ --foreground: var(--nord6);
+ --foreground-soft: color-mix(in srgb, var(--nord6) 70%, var(--nord0));
+ --link: var(--nord8);
+ --link-hover: var(--nord6);
+ --divider: var(--nord3);
+
+ /* syntax highlighting */
+ --code-background: var(--nord1);
+}
diff --git a/src/assets/fonts/Bitter-Italic.woff2 b/src/assets/fonts/Bitter-Italic.woff2
new file mode 100644
index 0000000..26ab5a2
Binary files /dev/null and b/src/assets/fonts/Bitter-Italic.woff2 differ
diff --git a/src/assets/fonts/Bitter.woff2 b/src/assets/fonts/Bitter.woff2
new file mode 100644
index 0000000..707d9bd
Binary files /dev/null and b/src/assets/fonts/Bitter.woff2 differ
diff --git a/src/assets/fonts/Pacifico.woff2 b/src/assets/fonts/Pacifico.woff2
new file mode 100644
index 0000000..0b0db46
Binary files /dev/null and b/src/assets/fonts/Pacifico.woff2 differ
diff --git a/static/img/android-chrome-192x192.png b/src/assets/img/android-chrome-192x192.png
similarity index 100%
rename from static/img/android-chrome-192x192.png
rename to src/assets/img/android-chrome-192x192.png
diff --git a/static/img/android-chrome-512x512.png b/src/assets/img/android-chrome-512x512.png
similarity index 100%
rename from static/img/android-chrome-512x512.png
rename to src/assets/img/android-chrome-512x512.png
diff --git a/static/img/apple-touch-icon.png b/src/assets/img/apple-touch-icon.png
similarity index 100%
rename from static/img/apple-touch-icon.png
rename to src/assets/img/apple-touch-icon.png
diff --git a/src/assets/img/en.jpg b/src/assets/img/en.jpg
new file mode 100644
index 0000000..fb0eef0
Binary files /dev/null and b/src/assets/img/en.jpg differ
diff --git a/src/assets/img/favicon-16x16.png b/src/assets/img/favicon-16x16.png
new file mode 100644
index 0000000..de0fb88
Binary files /dev/null and b/src/assets/img/favicon-16x16.png differ
diff --git a/src/assets/img/favicon-32x32.png b/src/assets/img/favicon-32x32.png
new file mode 100644
index 0000000..9a6bbdc
Binary files /dev/null and b/src/assets/img/favicon-32x32.png differ
diff --git a/src/assets/img/favicon.ico b/src/assets/img/favicon.ico
new file mode 100644
index 0000000..c1ff2e3
Binary files /dev/null and b/src/assets/img/favicon.ico differ
diff --git a/src/assets/img/opengrah-default.png b/src/assets/img/opengrah-default.png
new file mode 100644
index 0000000..1999690
Binary files /dev/null and b/src/assets/img/opengrah-default.png differ
diff --git a/src/assets/img/opengraph-og.png b/src/assets/img/opengraph-og.png
new file mode 100644
index 0000000..3dcee67
Binary files /dev/null and b/src/assets/img/opengraph-og.png differ
diff --git a/src/assets/img/screenshots.png b/src/assets/img/screenshots.png
new file mode 100644
index 0000000..fc7f2e0
Binary files /dev/null and b/src/assets/img/screenshots.png differ
diff --git a/src/assets/img/sv.jpg b/src/assets/img/sv.jpg
new file mode 100644
index 0000000..472dd18
Binary files /dev/null and b/src/assets/img/sv.jpg differ
diff --git a/src/assets/js/backlinks.js b/src/assets/js/backlinks.js
new file mode 100644
index 0000000..d0f23b2
--- /dev/null
+++ b/src/assets/js/backlinks.js
@@ -0,0 +1,93 @@
+// Remove the no JS class so that the button will show
+document.documentElement.classList.remove('no-js');
+
+const STORAGE_KEY = 'user-color-scheme';
+const COLOR_MODE_KEY = '--color-mode';
+
+const modeToggleButton = document.querySelector('.js-mode-toggle');
+const modeToggleText = document.querySelector('.js-mode-toggle-text');
+const modeStatusElement = document.querySelector('.js-mode-status');
+
+/**
+ * Pass in a custom prop key and this function will return its
+ * computed value.
+ * A reduced version of this: https://andy-bell.design/wrote/get-css-custom-property-value-with-javascript/
+ */
+const getCSSCustomProp = (propKey) => {
+ let response = getComputedStyle(document.documentElement).getPropertyValue(
+ propKey,
+ );
+
+ // Tidy up the string if there’s something to work with
+ if (response.length) {
+ response = response.replace(/\'|"/g, '').trim();
+ }
+
+ // Return the string response by default
+ return response;
+};
+
+/**
+ * Takes either a passed settings ('light'|'dark') or grabs that from localStorage.
+ * If it can’t find the setting in either, it tries to load the CSS color mode,
+ * controlled by the media query
+ */
+const applySetting = (passedSetting) => {
+ let currentSetting = passedSetting || localStorage.getItem(STORAGE_KEY);
+
+ if (currentSetting) {
+ document.documentElement.setAttribute(
+ 'data-user-color-scheme',
+ currentSetting,
+ );
+ // setButtonLabelAndStatus(currentSetting);
+ } else {
+ setButtonLabelAndStatus(getCSSCustomProp(COLOR_MODE_KEY));
+ }
+};
+
+/**
+ * Get’s the current setting > reverses it > stores it
+ */
+const toggleSetting = () => {
+ let currentSetting = localStorage.getItem(STORAGE_KEY);
+
+ switch (currentSetting) {
+ case null:
+ currentSetting =
+ getCSSCustomProp(COLOR_MODE_KEY) === 'dark' ? 'light' : 'dark';
+ break;
+ case 'light':
+ currentSetting = 'dark';
+ break;
+ case 'dark':
+ currentSetting = 'light';
+ break;
+ }
+
+ localStorage.setItem(STORAGE_KEY, currentSetting);
+
+ return currentSetting;
+};
+
+/**
+ * A shared method for setting the button text label and visually hidden status element
+ */
+// const setButtonLabelAndStatus = (currentSetting) => {
+// modeToggleText.innerText = `Enable ${
+// currentSetting === "dark" ? "light" : "dark"
+// } mode`;
+// modeStatusElement.innerText = `Color mode is now "${currentSetting}"`;
+// };
+
+/**
+ * Clicking the button runs the apply setting method which grabs its parameter
+ * from the toggle setting method.
+ */
+// modeToggleButton.addEventListener('click', (evt) => {
+// evt.preventDefault();
+
+// applySetting(toggleSetting());
+// });
+
+// applySetting();
diff --git a/src/assets/js/bundle.njk b/src/assets/js/bundle.njk
new file mode 100644
index 0000000..f9fe90e
--- /dev/null
+++ b/src/assets/js/bundle.njk
@@ -0,0 +1,9 @@
+---
+permalink: /assets/js/bundle.js
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
+{% include "../../../node_modules/alpinejs/dist/cdn.js" %}
+{% include "../../../node_modules/@alpinejs/intersect/dist/cdn.js" %}
+{% include "./scripts.js" %}
\ No newline at end of file
diff --git a/src/assets/js/scripts.js b/src/assets/js/scripts.js
new file mode 100644
index 0000000..594591e
--- /dev/null
+++ b/src/assets/js/scripts.js
@@ -0,0 +1,29 @@
+document.addEventListener('alpine:init', () => {
+ Alpine.store('elva', {
+ init() {
+ this.theme =
+ localStorage.getItem('theme') === null
+ ? window.matchMedia('(prefers-color-scheme: dark)').matches
+ ? 'dark'
+ : 'light'
+ : localStorage.getItem('theme');
+ this.scrollPosition = window.scrollY;
+ },
+ theme: null,
+ scrollPosition: 0,
+ scrollPercent: 0,
+ themeToggle() {
+ this.theme === 'light' ? (this.theme = 'dark') : (this.theme = 'light');
+ localStorage.setItem('theme', this.theme);
+ },
+ scrollPositionUpdate() {
+ this.scrollPosition = window.scrollY;
+ this.scrollPercent = Math.round(
+ ((document.body.scrollTop || document.documentElement.scrollTop) /
+ (document.documentElement.scrollHeight -
+ document.documentElement.clientHeight)) *
+ 100,
+ );
+ },
+ });
+});
diff --git a/src/en/en.json b/src/en/en.json
new file mode 100644
index 0000000..e791844
--- /dev/null
+++ b/src/en/en.json
@@ -0,0 +1,3 @@
+{
+ "lang": "en"
+}
diff --git a/src/en/feed/feed.njk b/src/en/feed/feed.njk
new file mode 100644
index 0000000..bfac775
--- /dev/null
+++ b/src/en/feed/feed.njk
@@ -0,0 +1,7 @@
+---
+permalink: /{{ lang }}/feed.xml
+layout: rss
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
diff --git a/src/en/feed/feed.xsl.njk b/src/en/feed/feed.xsl.njk
new file mode 100644
index 0000000..888eed7
--- /dev/null
+++ b/src/en/feed/feed.xsl.njk
@@ -0,0 +1,7 @@
+---
+permalink: /{{ lang }}/feed.xsl
+layout: rssxsl
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
\ No newline at end of file
diff --git a/src/en/feed/json.njk b/src/en/feed/json.njk
new file mode 100644
index 0000000..4c3a0e7
--- /dev/null
+++ b/src/en/feed/json.njk
@@ -0,0 +1,7 @@
+---
+permalink: /{{ lang }}/feed/feed.json
+layout: json
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
\ No newline at end of file
diff --git a/src/en/index.njk b/src/en/index.njk
new file mode 100644
index 0000000..b3e64e1
--- /dev/null
+++ b/src/en/index.njk
@@ -0,0 +1,4 @@
+---
+title: Blog
+layout: blog
+---
diff --git a/src/en/manifest.njk b/src/en/manifest.njk
new file mode 100644
index 0000000..f86b3d9
--- /dev/null
+++ b/src/en/manifest.njk
@@ -0,0 +1,7 @@
+---
+permalink: /{{ lang }}/site.webmanifest
+layout: manifest
+eleventyExcludeFromCollections: true
+seo:
+ excludeFromSitemap: true
+---
diff --git a/src/en/notes/arpeggio.md b/src/en/notes/arpeggio.md
new file mode 100644
index 0000000..2975ae4
--- /dev/null
+++ b/src/en/notes/arpeggio.md
@@ -0,0 +1,11 @@
+---
+title: Arpeggio
+tags:
+ - music
+compartir: true
+description: 'Type of broken chord in which the notes that compose a chord are individually sounded in a progressive rising or descending order.'
+---
+
+An arpeggio is a type of [[chords|broken chord]] in which the notes that compose a chord are individually sounded in a progressive rising or descending order. Arpeggios on keyboard instruments may be called rolled chords.
+
+Arpeggios indicate a chord in which the notes are sounded individually. The word "arpeggio" comes from the Italian word "arpeggiare," which means to play on a harp.
diff --git a/src/en/notes/atomic-notes.md b/src/en/notes/atomic-notes.md
new file mode 100644
index 0000000..ebf5557
--- /dev/null
+++ b/src/en/notes/atomic-notes.md
@@ -0,0 +1,28 @@
+---
+title: Atomic Notes
+tags:
+ - digital-gardening
+compartir: true
+
+description: 'Single, self-contained notes that capture a single idea or piece of information.'
+---
+
+Atomic notes are single, self-contained notes that capture a single idea or piece of information. They are meant to be read and understood without needing to refer to anything more.
+
+They can be connected to another atomic note or idea in some way. By breaking down complex ideas into smaller, atomic notes, one can make their notes more organized and easier to review later.
+
+## Example Atomic Note
+
+Title: Atomic Note: Importance of Exercise
+Tags: #exercise #health #wellness
+
+Regular exercise confers numerous health benefits, including:
+
+- Improved cardiovascular health
+- Increased strength and flexibility
+- Weight management
+- Reduced risk of chronic diseases
+
+It is recommended to engage in at least 150 minutes of moderate-intensity exercise or 75 minutes of vigorous exercise per week. Exercise should be a combination of aerobic activity, strength training, and flexibility exercises.
+
+Exercise not only improves physical health but also enhances mental well-being. It helps relieve stress, improve mood, and boost cognitive function.
diff --git a/src/en/notes/books-collection.md b/src/en/notes/books-collection.md
new file mode 100644
index 0000000..a32005a
--- /dev/null
+++ b/src/en/notes/books-collection.md
@@ -0,0 +1,60 @@
+---
+title: Books Collection
+compartir: true
+
+description: "Non-inclusive list of books I've read."
+---
+
+Non-inclusive list of books I've read.
+
+## John Green
+
+- [An Abundance of Katherines](https://www.librarything.com/work/2569212)
+- [Looking for Alaska](https://www.librarything.com/work/30329846)
+- [Paper Towns](https://www.librarything.com/work/5105584)
+- [The Fault in Our Stars](https://www.librarything.com/work/11456497)
+- [Will Grayson, Will Grayson](https://www.librarything.com/work/8463786)
+
+## Janet Evanovich
+
+### Stephanie Plum Series
+
+1. _[One for the Money](https://en.wikipedia.org/wiki/One_for_the_Money_(novel) "One for the Money (novel)")\_ (1994)
+2. _[Two for the Dough](https://en.wikipedia.org/wiki/Two_for_the_Dough 'Two for the Dough')_ (1996)
+3. _[Three to Get Deadly](https://en.wikipedia.org/wiki/Three_to_Get_Deadly 'Three to Get Deadly')_ (1997)
+4. _[Four to Score](https://en.wikipedia.org/wiki/Four_to_Score_(novel) "Four to Score (novel)")\_ (1998)
+5. _[High Five](https://en.wikipedia.org/wiki/High_Five_(novel))\_ (1999)
+6. _[Hot Six](https://en.wikipedia.org/wiki/Hot_Six 'Hot Six')_ (2000)
+7. _[Seven Up](https://en.wikipedia.org/wiki/Seven_Up_(novel) "Seven Up (novel)")\_ (2001)
+8. _[Hard Eight](https://en.wikipedia.org/wiki/Hard_Eight_(novel) "Hard Eight (novel)")\_ (2002)
+9. _[To the Nines](https://en.wikipedia.org/wiki/To_the_Nines_(novel) "To the Nines (novel)")\_ (2003)
+10. _[Ten Big Ones](https://en.wikipedia.org/wiki/Ten_Big_Ones_(novel) "Ten Big Ones (novel)")\_ (2004)
+11. _[Eleven on Top](https://en.wikipedia.org/wiki/Eleven_on_Top_(novel) "Eleven on Top (novel)")\_ (2005)
+12. _[Twelve Sharp](https://en.wikipedia.org/wiki/Twelve_Sharp_(novel) "Twelve Sharp (novel)")\_ (2006)
+13. _[Lean Mean Thirteen](https://en.wikipedia.org/wiki/Lean_Mean_Thirteen 'Lean Mean Thirteen')_ (2007)
+14. _[Fearless Fourteen](https://en.wikipedia.org/wiki/Fearless_Fourteen 'Fearless Fourteen')_ (2008)
+15. _[Finger Lickin' Fifteen](https://en.wikipedia.org/wiki/Finger_Lickin%27_Fifteen "Finger Lickin' Fifteen")_ (2009)
+16. _[Sizzling Sixteen](https://en.wikipedia.org/wiki/Sizzling_Sixteen 'Sizzling Sixteen')_ (2010)
+17. _Smokin' Seventeen_ (2011)
+18. _Explosive Eighteen_ (2011)
+19. _Notorious Nineteen_ (2012)
+20. _Takedown Twenty_ (2013)
+21. _Top Secret Twenty-One_ (2014)
+22. _Tricky Twenty-Two_ (2015)
+23. _Turbo Twenty-Three_ (2016)
+24. _Hardcore Twenty-Four_ (2017)
+25. _Look Alive Twenty-Five_ (2018)
+26. _Twisted Twenty-Six_ (2019)
+27. _Fortune & Glory Tantalizing Twenty-Seven_ (2020)
+28. _Game On: Tempting Twenty-Eight_ (2021)
+29. _Going Rogue: Rise and Shine Twenty-Nine_ (2022)
+30. _Dirty Thirty_ (2023)
+
+## Jerry Spinelli
+
+1. [Stargirl]()
+2. [Love, Stargirl](https://en.wikipedia.org/wiki/Love,_Stargirl)
+
+## Robert Pinsky
+
+- [The Sounds of Poetry: A Brief Guide](https://www.librarything.com/work/121193)
diff --git a/src/en/notes/bulma.md b/src/en/notes/bulma.md
new file mode 100644
index 0000000..884959d
--- /dev/null
+++ b/src/en/notes/bulma.md
@@ -0,0 +1,12 @@
+---
+title: Bulma
+compartir: true
+
+description: 'Free, open source CSS framework that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces.'
+---
+
+Free, open source [[CSS#CSS Frameworks|CSS framework]] that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces. It provides a collection of pre-designed CSS classes to help build responsive and modern websites. Very versatile because it does no require any JavaScript.
+
+With Bulma, developers can easily create responsive layouts by leveraging the grid system and making use of the various predefined classes. It offers a wide range of components and elements like buttons, forms, navbar, cards, and more, which can be customized and combined to create a visually appealing website.
+
+Bulma relies on CSS flexbox to handle the alignment and positioning of elements, making it easy to create responsive designs that adjust well across different screen sizes. Additionally, it provides a comprehensive documentation with examples and code snippets, making it user-friendly for developers of all skill levels.
diff --git a/src/en/notes/chords.md b/src/en/notes/chords.md
new file mode 100644
index 0000000..eb58775
--- /dev/null
+++ b/src/en/notes/chords.md
@@ -0,0 +1,10 @@
+---
+title: Chords (music)
+tags:
+ - music
+compartir: true
+
+description: 'In music, a chord is any harmonic set of pitches/frequencies consisting of multiple notes (also called "pitches") that are heard as if sounding simultaneously.'
+---
+
+A chord, in music, is any harmonic set of pitches/frequencies consisting of multiple notes (also called "pitches") that are heard as if sounding simultaneously. For many practical and theoretical purposes, arpeggios and other types of broken chords (in which the chord tones are not sounded simultaneously) may also be considered as _chords_ in the right musical context.
diff --git a/src/en/notes/consistency.md b/src/en/notes/consistency.md
new file mode 100644
index 0000000..1bc8c15
--- /dev/null
+++ b/src/en/notes/consistency.md
@@ -0,0 +1,12 @@
+---
+title: Consistency is Key
+compartir: true
+
+tags:
+ - stub
+description: "Show up. Do the work. Be consistent. Things I'm not good at."
+---
+
+Show up. Do the work. Be consistent. Things I'm not good at.
+
+Consistency is key. By consistently showing up and putting in the effort, you build discipline and resilience. It helps establish reliable habits, maintain focus, and overcome setbacks. Being consistent builds trust, both in personal and professional relationships.
diff --git a/src/en/notes/continuous-care.md b/src/en/notes/continuous-care.md
new file mode 100644
index 0000000..ad9af49
--- /dev/null
+++ b/src/en/notes/continuous-care.md
@@ -0,0 +1,12 @@
+---
+title: Continuous Care
+tags:
+ - digital-gardening
+compartir: true
+
+description: 'Be the watchful caretaker of your ever growing plants and flowers. Grow your knowledge by forming new branches and connecting the dots.'
+---
+
+Be the watchful caretaker of your ever growing plants and flowers. Grow your knowledge by forming new branches and connecting the dots. Write short structured notes articulating specific ideas and share them. Avoid creating or nourishing orphan notes. Anything not connected eventually needs to go. We must: refine our ideas, thread our thoughts, and keep notes [[Atomic Notes|atomic]].
+
+Taking raw notes is _useless_. Seed your garden with quality content and cultivate your curiosity. Plant seeds in your mind garden by taking smart personal notes. These don't need to be written in a publishable form.
diff --git a/src/en/notes/css.md b/src/en/notes/css.md
new file mode 100644
index 0000000..27bcec3
--- /dev/null
+++ b/src/en/notes/css.md
@@ -0,0 +1,18 @@
+---
+title: CSS
+compartir: true
+aliases:
+ - Cascading Style Sheets
+
+description: 'Cascading Style Sheets is a language used to describe the visual appearance and formatting of HTML documents.'
+---
+
+CSS (Cascading Style Sheets) is a language used to describe the visual appearance and formatting of HTML documents. It defines how elements are presented on web pages, including layout, color, typography, and more. It enhances the aesthetics and overall user experience of websites.
+
+## CSS Frameworks
+
+CSS frameworks are pre-prepared collections of CSS stylesheets that help developers create visually appealing and responsive websites. These frameworks provide a set of standardized and reusable CSS components, layout systems, and pre-designed templates, making it easier to build attractive and consistent web pages.
+
+One popular CSS framework that deserves special mention is [[Bulma|Bulma]]. Why does it deserve especial attention? Because I like it. 😅
+
+Known for its simplicity and flexibility, [[Bulma|Bulma]] has gained significant traction among web developers. Here's a closer look at why it has become a go-to choice for many.
diff --git a/src/en/notes/digital-garden.md b/src/en/notes/digital-garden.md
new file mode 100644
index 0000000..c849e98
--- /dev/null
+++ b/src/en/notes/digital-garden.md
@@ -0,0 +1,22 @@
+---
+title: Digital Garden
+tags:
+ - digital-gardening
+compartir: true
+---
+
+## What is a Digital Garden
+
+A digital garden is a combination of an **online notebook** and a **personal wiki**, where digital gardeners write in small, unfinished pieces, also known as [[atomic-notes|atomic notes]], and share these seeds of thought to be cultivated in public. Digital gardens are curated and evolve over time, sometimes growing wildly and sometimes getting pruned.
+
+The phrase _"digital garden"_ comes up often while browsing these notes. Surely I overuse it. That said, I still like it. It more closely describes what I envision this website to be: a carefully curated garden of digital notes. Having a reliable system on which to dump raw information is extremely useful. The idea of [[sweep-your-mind|sweeping]] one's mind is helpful to rid yourself of distractions from incorrectly prioritized tasks.
+
+## How is Content Curated
+
+Digital Gardens are explorable rather than structured as a strictly linear stream of posts. They grow slowly over time, rather than created as _"finished"_ work that is to never be touched again. A place where little changes accumulate and transform thoughts and ideas. As you [[continuous-care|continuously care]] for your garden, you **revise**, **update**, and **change** your ideas as they develop.
+
+## Kinds of Notes
+
+- 🌱 *Seedlings* for very rough and early ideas.
+- 🌿 *Budding* for work I've cleaned up and clarified.
+- 🌳 *Evergreen* for work that is reasonably complete (though I still tend these over time).
diff --git a/src/en/notes/dominican-republic.md b/src/en/notes/dominican-republic.md
new file mode 100644
index 0000000..2a6a4a7
--- /dev/null
+++ b/src/en/notes/dominican-republic.md
@@ -0,0 +1,38 @@
+---
+title: Dominican Republic
+compartir: true
+---
+
+_República Dominicana_ is a country located on the island of Hispaniola in the Caribbean. It occupies approximately 60% of the island, which it shares with Haiti.
+
+[More on this](https://progressive.org/40-years-later-u.s.-invasion-still-haunts-dominican-republic/)
+
+## General Information
+
+### Area
+
+After Cuba, the Dominican Republic is the second-largest nation by area at 48,671 square kilometers (18,792 square miles).
+
+### Population
+
+After Haiti and Cuba, it is the third-largest by population, which was last estimated at 10,790,744 in 2023.
+
+### Language
+
+It's official language is Spanish.
+
+## Endemic Species
+
+- [Rhinoceros iguana](https://en.wikipedia.org/wiki/Rhinoceros_iguana)
+- [Hispaniolan solenodon](https://en.wikipedia.org/wiki/Hispaniolan_solenodon)
+- [Mabuya hispaniolae](https://en.wikipedia.org/wiki/Mabuya_hispaniolae)
+
+## History
+
+### Lots of Firsts
+
+- First permanent European settlement in the Americas.
+- First seat of Spanish colonial rule in the "New World".
+- First Cathedral in all of the Americas.
+- First Castle in all of the Americas.
+- First Monastery in all of the Americas.
diff --git a/src/en/notes/emmet-cheat-sheet.md b/src/en/notes/emmet-cheat-sheet.md
new file mode 100644
index 0000000..81bcb59
--- /dev/null
+++ b/src/en/notes/emmet-cheat-sheet.md
@@ -0,0 +1,283 @@
+---
+title: Emmet Cheat Sheet
+
+tags:
+ - archived
+compartir: true
+---
+
+- [Documentation](https://docs.emmet.io/)
+- [Documentation](https://code.visualstudio.com/docs/editor/emmet) for Emmet in VS Code
+
+## Notes on Abbreviation Formatting
+
+When you get familiar with Emmet's abbreviations syntax, you may want to use some formatting to make your abbreviations more readable. But it won't work, because space is a *stop symbol,* where Emmet stops abbreviation parsing. Many users mistakenly think that each abbreviation should be written in a new line, but they are wrong: you can type and expand the abbreviation anywhere in the text.
+
+This is why Emmet needs some indicators (like spaces) where it should stop parsing to not expand anything that you don't need. If you're still thinking that such formatting is required for complex abbreviations to make them more readable:
+
+- Abbreviations are not a template language, they don't have to be "readable", they have to be "quickly expandable and removable".
+- You don't really need to write complex abbreviations. Stop thinking that "typing" is the slowest process in web-development. You'll quickly find out that constructing a single complex abbreviation is much slower and error-prone than constructing and typing a few short ones.
+
+## HTML + CSS Emmet Short Guide
+
+Emmet abbreviation and snippet expansions are enabled by default in `html`, `haml`, `pug`, `slim`, `jsx`, `xml`, `xsl`, `css`, `scss`, `sass`, `less` and `stylus` files, as well as any language that inherits from any of the above like `handlebars` and `php`.
+
+## Children
+
+```css
+div>ul>li
+```
+
+```html
+
+```
+
+## Siblings
+
+```css
+div + p + bq
+```
+
+```html
+
+
+
+```
+
+## Climb-up
+
+```css
+div+div>p>span+em
+```
+
+```html
+
+```
+
+```css
+div+div>p>span+em^bq
+```
+
+```html
+
+```
+
+```css
+div+div>p>span+em^^^bq
+```
+
+```html
+
+
+
+```
+
+## Multiplication
+
+```css
+ul>li*5
+```
+
+```html
+
+```
+
+## Grouping
+
+```css
+div>(header>ul>li*2>a)+footer>p
+```
+
+```html
+
+```
+
+```css
+(div>dl>(dt+dd)*3)+footer>p
+```
+
+```html
+
+
+```
+
+## ID and Classes
+
+```css
+div#header+div.page+div#footer.class1.class2.class3
+```
+
+```html
+
+
+
+```
+
+## Custom Attributes
+
+```css
+td[title="Hello world!" colspan=3]
+```
+
+```html
+
+```
+
+## Item Numbering
+
+```css
+ul>li.item$*5
+```
+
+```html
+
+```
+
+```css
+ul>li.item$$$*5
+```
+
+```html
+
+```
+
+## Changing Numbering Base and Direction
+
+```css
+ul>li.item$@-*5
+```
+
+```html
+```
+
+```css
+ul>li.item$@3*5
+```
+
+```html
+```
+
+```css
+ul>li.item$@-3*5
+```
+
+```html
+
+```
+
+## Text
+
+```css
+a{Click me}
+```
+
+```html
+Click me
+```
+
+```css
+a{click}+b{here}
+```
+
+```html
+click here
+```
+
+```css
+a>{click}+b{here}
+```
+
+```html
+clickhere
+```
+
+```css
+p>{Click }+a{here}+{ to continue}
+```
+
+```html
+Click here to continue
+```
+
+```css
+p{Click }+a{here}+{ to continue}
+```
+
+```html
+Click
+here to continue
+```
diff --git a/src/en/notes/free-facts.md b/src/en/notes/free-facts.md
new file mode 100644
index 0000000..c84a90d
--- /dev/null
+++ b/src/en/notes/free-facts.md
@@ -0,0 +1,55 @@
+---
+title: Free Facts
+tags:
+ - collection
+compartir: true
+
+description: 'Compilation of "Free" Facts. They are not fun, but they are free.'
+---
+
+Compilation of "Free" Facts. They are not fun, but they are free.
+
+## Disney Aladdin
+
+There is a [Willhelm scream](https://en.wikipedia.org/wiki/Wilhelm_scream) in the movie Aladdin.
+
+## Dumping Chemical Weapons Directly into the Ocean
+
+After World War II, it is claimed that scientist did not know how to destroy the massive arsenals of chemical weapons. Russia, the UK, and the US opted for what seemed the safest and cheapest method of disposal at the time: dumping chemical weapons directly into the ocean.
+
+Experts estimate that 1 million metric tons of chemical weapons lie on the ocean floor—from Italy's Bari harbor, where 230 sulfur mustard exposure cases have been reported since 1946, to the US East Coast, where sulfur mustard bombs have shown up three time in the past 12 years in Delaware, likely brought in with loads of shellfish.
+[Source](https://www.smithsonianmag.com/science-nature/decaying-weapons-world-war-II-threaten-waters-worldwide-180961046/)
+
+## Lighting
+
+Lightning is a significant force contributing to mountain erosion.
+[Source](https://www.livescience.com/40701-lightning-strikes-erode-mountains.html)
+
+## MV Derbyshire
+
+The MV Derbyshire was a British ore-bulk-oil combination carrier built in 1976. It was lost on September 9, 1980 during Typhoon Orchid, south of Japan. At 91,655 gross register tons, she is the largest British ship ever to have been lost at sea.
+[Source](https://en.wikipedia.org/wiki/MV_Derbyshire)
+
+## Rogue Waves
+
+Rogue waves are unusually large, unpredictable, and suddenly appearing surface waves that can be extremely dangerous to ships, even to large ones.
+In oceanography, rogue waves are more precisely defined as waves whose height is more than twice the significant wave height (Hs or SWH), which is itself defined as the mean of the largest third of waves in a wave record. Therefore, rogue waves are not necessarily the biggest waves found on the water; they are, rather, unusually large waves for a given sea state.
+[Source](https://en.wikipedia.org/wiki/Rogue_wave)
+
+## Sea Sickness
+
+Ginger is proven to help those who suffer from sea sickness.
+
+## Transcranial Magnetic Stimulation
+
+TMS is a noninvasive form of brain stimulation in which a changing magnetic field is used to induce an electric current at a specific area of the brain through electromagnetic induction. An electric pulse generator, or stimulator, is connected to a magnetic coil connected to the scalp.
+
+## Weasel Words
+
+A weasel word, or anonymous authority, is slang for words and phrases aimed at creating an impression that something specific and meaningful has been said, when in fact only a vague or ambiguous claim has been communicated. Examples include the phrases "some people say", "it is thought", and "researchers believe".
+
+Using weasel words may allow one to later deny any specific meaning if the statement is challenged, because the statement was never specific in the first place. Weasel words can be a form of _tergiversation_, and may be used in advertising, (popular) science, opinion pieces and political statements to mislead or disguise a biased view or unsubstantiated claim.
+
+## Yak Shaving
+
+Yak Shaving is programming lingo for the seemingly endless series of small tasks that have to be completed before the next step in a project can move forward.
diff --git a/src/en/notes/guitar.md b/src/en/notes/guitar.md
new file mode 100644
index 0000000..142c516
--- /dev/null
+++ b/src/en/notes/guitar.md
@@ -0,0 +1,46 @@
+---
+title: Learning Guitar
+tags:
+ - learning
+ - music
+compartir: true
+
+enableToc: true
+---
+
+When you are looking at a tab, you will see six horizontal lines. These lines represent the strings of the guitar. The bottom line is the 6th string (the thickest string on your guitar, low e) and the top line is the thinnest string (the first string, high e).
+
+### Arpeggio
+
+An [[arpeggio|arpeggio]] is a type of [[chords|broken chord]] in which the notes that compose a chord are individually sounded in a progressive rising or descending order. Arpeggios on keyboard instruments may be called _rolled chords_.
+
+```md
+e|--------2-----------------|
+B|------3---3---------------|
+G|----2-------2-------------|
+D|--0-----------------------|
+A|--------------------------|
+E|--------------------------|
+```
+
+### Metallica – Enter the Sandman (Intro)
+
+```md
+e|---------------------|------------------|---------------|--------------------|
+B|---------------------|------------------|---------------|--------------------|
+G|---------------------|------------------|---------------|--------------------|
+D|-------5-------------|----5-------------|----5----------|--------------------|
+A|----7-----------7----|-7-----------7----|-7-----------7-|--------------------|
+E|-0--------6--5-----0-|-------6--5-----0-|-------6--5----|--------------------|
+```
+
+### Pasted
+
+The next note is marked as a 7 on the 5th string, so place a finger on the 5th string 7th fret. The third note is the 5th fret 4th string. By now you are probably realizing that in order to play this riff, you need to use your 3rd finger on the 7th fret and your first finger on the 5th fret.
+
+You can then finish out the riff by grabbing the 6th fret on the 6th string with your second finger, then the 5th fret with your 1st finger, and finally the 7th fret 5th string (a string) with your 3rd finger.
+
+## Sources
+
+- [ultimate-guitar.com](https://tabs.ultimate-guitar.com/tab/metallica/enter-sandman-tabs-8595)
+- [guitarlessons.org](https://www.guitarlessons.org/lessons/read-guitar-tabs/)
diff --git a/src/en/notes/inspirations.md b/src/en/notes/inspirations.md
new file mode 100644
index 0000000..57fa498
--- /dev/null
+++ b/src/en/notes/inspirations.md
@@ -0,0 +1,30 @@
+---
+title: What Inspires Me
+compartir: true
+
+tags:
+ - list
+descriptive: 'These are people and projects have resonated with me. Inspiring me to do things I would otherwise not do.'
+---
+
+_These are people and projects have resonated with me. Inspiring me to do things I would otherwise not do._
+
+## People Who Inspire Me
+
+- [Andy Bell](https://andy-bell.co.uk/)
+- [Anjana Vakil](https://anjana.dev/)
+- [Derek Sivers](https://sive.rs/)
+- [Drew DeVault](https://drewdevault.com/)
+- [Eric Bower](https://erock.prose.sh/)
+- [Herman Martinus](https://herman.bearblog.dev/)
+- [Jacky Zha](https://github.com/jackyzha0?tab=repositories)
+
+## Projects That Inspire Me
+
+- [Anemone](https://github.com/Speyll/anemone) – Clean Zola theme. Integrates public journals.
+- [Bearblog](https://github.com/HermanMartinus/bearblog) – Blogging Platform.
+- [Duotone Theme](https://github.com/Hussseinkizz/duotone-theme-v2-official) – VS Code Theme (Supports Ligaments).
+- [Fira Code iScript](https://github.com/kencrocken/FiraCodeiScript) – Font Family (incl. ligations and cursive italics).
+- [mataroa](https://github.com/mataroa-blog/mataroa) – Minimal Blogging Platform.
+- [SorryTennesee](https://github.com/vpicone/SorryTennesee) – Remove Tennesee from drop-down menus.
+- [wttr.in](https://github.com/chubin/wttr.in) – Plain Text Weather.
diff --git a/src/en/notes/javascript.md b/src/en/notes/javascript.md
new file mode 100644
index 0000000..644084d
--- /dev/null
+++ b/src/en/notes/javascript.md
@@ -0,0 +1,15 @@
+---
+title: JavaScript
+aliases:
+ - Javascript
+ - JS
+compartir: true
+
+description: 'Versatile and powerful programming language used for building interactive and dynamic web applications.'
+---
+
+[JavaScript](https://en.wikipedia.org/wiki/JavaScript) is a versatile and powerful programming language used for building interactive and dynamic web applications. It runs on the client-side, enabling interactivity on web pages. JavaScript can manipulate HTML elements, handle events, perform calculations, and communicate with servers, making it a key technology in modern web development.
+
+## JavaScript Frameworks
+
+JavaScript frameworks are pre-written and reusable code libraries that simplify and speed up web development. They provide tools, functions, and structure to build dynamic and interactive websites or applications. Frameworks like React, Vue, [[svelte|Svelte]], and Angular make it easier to handle complex logic and create engaging user interfaces.
diff --git a/src/en/notes/markdown-showcase.md b/src/en/notes/markdown-showcase.md
new file mode 100644
index 0000000..e8f5371
--- /dev/null
+++ b/src/en/notes/markdown-showcase.md
@@ -0,0 +1,191 @@
+---
+title: Markdown Showcase
+tags: [markdown, reference]
+compartir: true
+
+description: "This is intended as a quick reference and showcase of Markdown's synthax."
+---
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
+
+## Heading Level 2
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
+
+### Heading Level 3
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit.
+
+#### Heading Level 4
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
+
+##### Heading Level 5
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt.
+
+###### Heading Level 6
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+
+## Text Formatting
+
+Text can be **bold**, _italic_, or ~~strikethrough~~.
+**Bold**, _Italic_, _**Both**_.
+**Bold**, _Italic_, ~~Strikethrough~~, ~~_**ALL OF THEM**_~~.
+
+## Links
+
+You can [link](https://example.dom/) to external pages. and other internal [[markdown|links]].
+
+## Blockquotes
+
+### Simple Example
+
+> This is a blockquote
+> with several lines
+
+### Formatted Example
+
+> **Blockquote Embedded List**
+>
+> 1. This is the first list item.
+> 2. This is the second list item.
+>
+> Here's some example code:
+> `Markdown.generate();`
+
+## Lists
+
+### Ordered List
+
+In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris.
+
+1. First item
+2. Second item
+3. Third item
+
+### Unordered List
+
+In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris.
+
+- List item
+- Another item
+- And another item
+
+### Nested List
+
+In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris.
+
+- Item
+
+1. First Sub-item
+2. Second Sub-item
+
+3. Numbered Item
+4. Another one
+5. Sub-item
+
+- Unordered again
+
+## Code
+
+### Inline Code
+
+Let us use some `inline code` and check out how it `looks`. Here's some `more`.
+
+### Code Blocks
+
+```html
+
+
+
+
+
+```
+
+```css
+.niceClass {
+ color: blue;
+ background-color: #fff;
+}
+```
+
+```js
+// Javascript code with syntax highlighting.
+var fun = function lang(l) {
+ dateformat.i18n = require('./lang/' + l);
+ return true;
+};
+```
+
+## Tables
+
+In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris.
+
+| head one | head two | head three |
+| ------------ | :---------------: | ---------: |
+| ok | good swedish fish | nice |
+| out of stock | good and plenty | nice |
+| ok | good `oreos` | hmm |
+| ok | good `zoute` drop | yumm |
+
+### Simple Example
+
+| Title 1 | Title 2 | Title 3 | Title 4 |
+| --------------------- | --------------------- | --------------------- | --------------------- |
+| lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit |
+| lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
+| lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
+| lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit |
+
+### Longer Example
+
+| Title 1 | Title 2 | Title 3 | Title 4 |
+| -------------------------- | -------------------------------------- | -------------------------- | -------------------------------------- |
+| lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit |
+| lorem ipsum dolor sit amet | lorem ipsum dolor sit amet consectetur | lorem ipsum dolor sit amet | lorem ipsum dolor sit |
+| lorem ipsum dolor | lorem ipsum | lorem | lorem ipsum |
+| lorem ipsum dolor | lorem ipsum dolor sit | lorem ipsum dolor sit amet | lorem ipsum dolor sit amet consectetur |
+
+### Inline Markdown Within Tables
+
+| Inline | Markdown | In | Table |
+| ------------------------ | -------------------------- | ----------------------------------- | ------ |
+| _italics_ | **bold** | ~~strikethrough~~ | `code` |
+
+## Horizontal Rule
+
+---
+
+## Images
+
+![image](https://just-the-docs.com/assets/images/small-image.jpg)
+
+## Other Elements — Abbr, Sub, Sup, Kbd, Mark
+
+### Description
+
+GIF is a bitmap image format.
+
+### Subscript
+
+H2 O
+
+### Superscript
+
+Xn + Yn = Zn
+
+### Keys Representation
+
+Press CTRL +ALT +Delete to end the session.
+
+### Highlighting
+
+Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures.
+
+## Links
+
+[[inspirations]]
diff --git a/src/en/notes/markup-language.md b/src/en/notes/markup-language.md
new file mode 100644
index 0000000..9f1e9a1
--- /dev/null
+++ b/src/en/notes/markup-language.md
@@ -0,0 +1,15 @@
+---
+title: Markup Language
+compartir: true
+
+description: 'A markup language is a system for annotating text to define the structure, formatting, and presentation of documents on the internet.'
+---
+
+A markup language is a system for annotating text to define the structure, formatting, and presentation of documents on the internet. It uses tags or codes to indicate the purpose or function of different elements within the document, such as headings, paragraphs, links, and images. Markup languages, like HTML (Hypertext Markup Language), provide a standardized way to structure and display content across various platforms and web browsers.
+
+Examples of markup languages include:
+
+1. HTML (Hypertext Markup Language): The most widely used markup language for creating web pages and applications. It specifies the structure and presentation of content on the internet.
+2. XML (eXtensible Markup Language): A flexible markup language that allows users to define their own tags and structure data. It is commonly used for storing and transporting data between different systems.
+3. Markdown: Although not a traditional markup language, Markdown is a lightweight markup language that is widely used for formatting and styling plain text, particularly for creating content for the web.
+4. LaTeX: A markup language commonly used in academia and scientific publishing for typesetting documents. It provides extensive control over the layout and formatting of mathematical equations and complex technical documents.
diff --git a/src/en/notes/micropolitan-statistical-area.md b/src/en/notes/micropolitan-statistical-area.md
new file mode 100644
index 0000000..31cc0b7
--- /dev/null
+++ b/src/en/notes/micropolitan-statistical-area.md
@@ -0,0 +1,12 @@
+---
+title: Micropolitan Statistical Area
+compartir: true
+
+tags:
+ - statistics
+description: 'Labor market and statistical areas in the United States centered on an urban cluster with a population of at least 10,000 but fewer than 50,000 people.'
+---
+
+Micropolitan Statistical Areas are labor market and statistical areas in the United States centered on an urban cluster with a population of at least 10,000 but fewer than 50,000 people.
+
+The designation was created in 2003 by the Office of Management and Budget (OMB). Micropolitan areas include the county where the urban cluster is and adjacent counties linked by commuting ties. The OMB has identified 543 micropolitan areas in the United States.
diff --git a/src/en/notes/move-your-body.md b/src/en/notes/move-your-body.md
new file mode 100644
index 0000000..aab6d8e
--- /dev/null
+++ b/src/en/notes/move-your-body.md
@@ -0,0 +1,17 @@
+---
+title: Move Your Body
+compartir: true
+
+tags:
+ - stub
+description: 'Move your body every day.'
+---
+
+Move your body every day. Benefits include:
+
+- Improved sleep quality.
+- Less risk of chronic disease.
+- Increased productivity.
+- Reduced anxiety.
+
+The "every day" part is important, because [[consistency|Consistency]] is key to most things worth doing.
diff --git a/src/en/notes/neovim.md b/src/en/notes/neovim.md
new file mode 100644
index 0000000..42e8c72
--- /dev/null
+++ b/src/en/notes/neovim.md
@@ -0,0 +1,104 @@
+---
+title: NeoVim
+compartir: true
+
+tags:
+ - reference
+aliases:
+ - Nvim
+ - Vim
+description: 'NeoVim is a fork of Vim focused on extensibility and usability.'
+---
+
+NeoVim is a fork of Vim focused on extensibility and usability. This is my short reference guide as I learn to use it.
+
+## Links
+
+[Dotfiles](https://github.com/semanticdata/dotfiles) – [Website](https://neovim.io/) – [Documentation](https://neovim.io/doc/)
+
+## Useful Commands
+
+**Sync from CLI** → `nvim --headless "+Lazy! sync" +qa`
+
+## Keybindings
+
+| Key Combination | Command |
+| -------------------------- | ---------------------------------------------- |
+| `` | `` |
+| **Unsorted** |
+| `h` | `^` |
+| `l` | `g_` |
+| `a` | `:keepjumps normal! ggVG` |
+| `gy` | `"+y` |
+| `gp` | `"+p` |
+| `x` | `"_x` |
+| `e` | `NvimTreeToggle` |
+| **Commands** |
+| `w` | `write` |
+| `bq` | `bdelete` |
+| `bl` | `buffer #` |
+| `` | `Lexplore` |
+| `` | `` |
+| **Telescope** |
+| `` | `Telescope buffers` |
+| `?` | `Telescope oldfiles` |
+| `ff` | `Telescope find_files` |
+| `fg` | `Telescope live_grep` |
+| `fd` | `Telescope diagnostics` |
+| `fs` | `Telescope current_buffer_fuzzy_find` |
+| **Telescope (builtin)** |
+| `ff` | `builtin.find_files, {}` |
+| `fg` | `builtin.live_grep, {}` |
+| `fb` | `builtin.buffers, {}` |
+| `fh` | `builtin.help_tags, {}` |
+| **Normal Mode** |
+| `` | `:q!` |
+| `` | `:bd` |
+| **Moving Vertically** |
+| `` | `zz` |
+| `` | `zz` |
+| `n` | `nzzzv` |
+| `N` | `Nzzzv` |
+| **Tab Navigation** |
+| `` | `gT` |
+| `` | `gt` |
+| `` | `:tabnew` |
+| **Pane/Window Navigation** |
+| `` | `h` |
+| `` | `j` |
+| `` | `k` |
+| `` | `l` |
+| `` | `h` |
+| `` | `j` |
+| `` | `k` |
+| `` | `l` |
+| **Terminal** |
+| `` | `:sp term://pwshi` |
+| `tv` | `:lcd %:p:h:vsp term://pwshi` |
+| `th` | `:lcd %:p:h:sp term://pwshi` |
+| `` | `` |
+| `:q!` | `:q!` |
+
+## Plugins
+
+| Author/Plugin | Description |
+| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| [akinsho/bufferline.nvim](https://github.com/akinsho/bufferline.nvim) | A snazzy bufferline for Neovim. |
+| [akinsho/toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) | A neovim lua plugin to help easily manage multiple terminal windows. |
+| [ap/vim-css-color](https://github.com/ap/vim-css-color) | Preview colours in source code while editing. |
+| [editorconfig/editorconfig-vim](https://github.com/editorconfig/editorconfig-vim) | EditorConfig plugin for Vim. |
+| [folke/tokyonight.nvim](https://github.com/folke/tokyonight.nvim) | Theme |
+| [kyazdani42/nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua) | A file explorer tree for neovim written in lua. |
+| [kyazdani42/nvim-web-devicons](https://github.com/kyazdani42/nvim-web-devicons) | Lua "fork" of vim-web-devicons for neovim. |
+| [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) | Git integration for buffers. |
+| [lukas-reineke/indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) | Indent guides for Neovim. |
+| [numToStr/Comment.nvim](https://github.com/numToStr/Comment.nvim) | Smart and powerful comment plugin for neovim. |
+| [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim) | All the lua functions I [they] don't want to write twice. |
+| [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) | neovim statusline plugin written in pure lua. |
+| [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) | Find, Filter, Preview, Pick. All lua, all the time. |
+| [nvim-treesitter/nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects) | Syntax aware text-objects, select, move, swap, and peek support. |
+| [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) | Nvim Treesitter configurations and abstraction layer. |
+| [ThePrimeagen/vim-be-good](https://github.com/ThePrimeagen/vim-be-good) | Nvim plugin designed to make you better at Vim Movements. |
+| [tpope/vim-fugitive](https://github.com/tpope/vim-fugitive) | A Git wrapper so awesome, it should be illegal. |
+| [vim-telescope/telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) | Find, Filter, Preview, Pick. All lua, all the time. |
+| [wellle/targets.vim](https://github.com/wellle/targets.vim) | Vim plugin that provides additional text objects. |
diff --git a/src/en/notes/notes.11tydata.js b/src/en/notes/notes.11tydata.js
new file mode 100644
index 0000000..7764b67
--- /dev/null
+++ b/src/en/notes/notes.11tydata.js
@@ -0,0 +1,62 @@
+const {titleCase} = require('title-case');
+
+// This regex finds all wikilinks in a string
+const wikilinkRegExp = /\[\[\s?([^\[\]\|\n\r]+)(\|[^\[\]\|\n\r]+)?\s?\]\]/g;
+
+function caselessCompare(a, b) {
+ return a.normalize().toLowerCase() === b.normalize().toLowerCase();
+}
+
+module.exports = {
+ layout: 'note',
+ tags: 'notes',
+ // permalink: function (data) {
+ // // slug override for localized URL slugs
+ // if (data.seo?.slug) {
+ // return `/${data.lang}/notes/${this.slugify(data.seo.slug)}/`;
+ // } else {
+ // return `/${data.lang}/notes/${this.slugify(data.page.fileSlug)}/`;
+ // }
+ // },
+ eleventyComputed: {
+ title: (data) => titleCase(data.title || data.page.fileSlug),
+ backlinks: (data) => {
+ const notes = data.collections.notes;
+ const currentFileSlug = data.page.filePathStem.replace('/en/notes/', '');
+
+ let backlinks = [];
+
+ // Search the other notes for backlinks
+ for (const otherNote of notes) {
+ const noteContent = otherNote.template.frontMatter.content;
+
+ // Get all links from otherNote
+ const outboundLinks = (noteContent.match(wikilinkRegExp) || []).map(
+ (link) =>
+ // Extract link location
+ link
+ .slice(2, -2)
+ .split('|')[0]
+ .replace(/.(md|markdown)\s?$/i, '')
+ .trim(),
+ );
+
+ // If the other note links here, return related info
+ if (
+ outboundLinks.some((link) => caselessCompare(link, currentFileSlug))
+ ) {
+ // Construct preview for hovercards
+ let preview = noteContent.slice(0, 240);
+
+ backlinks.push({
+ url: otherNote.url,
+ title: otherNote.data.title,
+ preview,
+ });
+ }
+ }
+
+ return backlinks;
+ },
+ },
+};
diff --git a/src/en/notes/poetry.md b/src/en/notes/poetry.md
new file mode 100644
index 0000000..c53e631
--- /dev/null
+++ b/src/en/notes/poetry.md
@@ -0,0 +1,86 @@
+---
+title: Poetry
+source: https://www.fromwhisperstoroars.com/blog-1/2019/4/3/writing-poetry-for-beginners
+tags:
+ - learning
+ - writing
+compartir: true
+
+enableToc: true
+description: 'Broad literary category that covers everything from bawdy limericks to unforgettable song lyrics to the sentimental couplets inside greeting cards.'
+---
+
+Poetry is a broad literary category that covers everything from bawdy limericks to unforgettable song lyrics to the sentimental couplets inside greeting cards. A **poem** is a singular piece of poetry.
+
+- Show, don't tell. The goal is to provoke an emotion in the reader.
+- Less can be more. While it's perfectly acceptable to write long, flowery verse, using simple, concise language is also powerful. Word choice and poem length are up to you.
+- It's OK to break grammatical rules when doing so helps you express yourself.
+
+The key elements that distinguish poetry from other kinds of literature include sound, rhythm, rhyme, and format. One thing poetry has in common with other kinds of literature is its use of literary devices. Poems, like other kinds of creative writing, often make use of allegories and other kinds of figurative language to communicate themes.
+
+## Chasing the Sounds
+
+Sometimes poetry is most impactful when it's listened to rather than read. Take the next example:
+
+> [!quote] The Cold Wind Blows by Kelly Roper
+>
+> Who knows why the cold wind blows
+> Or where it goes, or what it knows.
+> It only flows in passionate throes
+> Until it finally slows and settles in repose.
+
+Poets create _sound_ in a variety of ways, like alliteration, assonance, and consonance.
+
+## Units of Poetry
+
+Syllables are grouped together to form **feet**, units that make up a line of poetry. A _foot_ is generally two or three syllables, and each combination of two or three stressed and unstressed syllables has a unique name.
+
+One of the many kinds of rhythm is _Iambic Pentameter_ which was used frequently by Shakespeare. An **iamb** is a two-syllable foot where the second syllable is stressed: duh-DUH. A **pentameter** means that each line in the poem has five feet or ten total syllables.
+
+## Not Everything is Stressed
+
+Stressed and unstressed syllables aren't the only way you can create rhythm in your poetry. Another technique poets frequently embrace is repetition. Repetition underscores the words being repeated, which could be a phrase or a single word.
+
+> [!quote] Still I Rise by Maya Angelou
+>
+> Leaving behind nights of terror and fear
+> I rise
+> Into a daybreak that's wondrously clear
+> I rise
+> Bringing the gifts that my ancestors gave,
+> I am the dream and the hope of the slave.
+> I rise
+> I rise
+> I rise.
+
+## Time to Rhyme
+
+With poetry, rhythm and rhyme go hand in hand. Both create musicality in the poem, making it pleasurable to recite and listen to. Rhymes can appear anywhere in a poem, not just at the ends of alternating lines.
+
+> [!quote] Jabberwocky by Lewis Carrol
+>
+> One, two! One, two! And through and through
+> The vorpal blade went snicker-snack!
+> He left it dead, and with its head
+> He went galumphing back.
+
+## Formatting
+
+Poems are not formatted the same way as **prose**. Sentences end in weird places, there are blank lines between the different sections, one word might have a line all to itself, or the words might be arranged in a shape that makes a picture on the page.
+
+A **stanza** is the poetic equivalent of a paragraph. It's a group of lines that (usually) adheres to a specific rhyme or rhythm pattern.
+
+## Literary Devices
+
+- Figurative language
+- Juxtaposition
+- Onomatopoeia
+- Simile
+- Metaphor
+- Puns
+- Chiasmus
+- Imagery
+- Hyperbole
+- Mood
+- Motif
+- Personification
diff --git a/src/en/notes/quotes-collection.md b/src/en/notes/quotes-collection.md
new file mode 100644
index 0000000..4d3b7f5
--- /dev/null
+++ b/src/en/notes/quotes-collection.md
@@ -0,0 +1,141 @@
+---
+title: Quotes Collection
+tags:
+ - collection
+compartir: true
+
+description: 'Collection of quotes I like.'
+---
+
+## Random
+
+> "Always demand a deadline. A deadline weeds out the extraneous and the ordinary. It prevents you from trying to make it perfect, so you have to make it different. Different is better."
+
+> "Better done than perfect." Perfectionism is nothing but _fear_. Conquer it.
+
+> "Clarity requires thinking. Thinking requires writing."
+
+> "Action is not just the _effect_ of motivation, but also the _cause_ of motivation."
+
+## Ajahn Chah
+
+> "Dhamma is in your mind, not in the forest. You don't have to go and look anywhere else." — Ajahn Chah
+
+## Alexander Solzhenitsyn
+
+> "Man has set for himself the goal of conquering the world, but in the process he loses his soul." — Alexander Solzhenitsyn
+
+## Aristotle (unconfirmed)
+
+> "The purpose of knowledge is action, not knowledge." — Aristotle
+
+## Ashtavakra Gita
+
+> "The wise man knows the Self,
+> And he plays the game of life.
+> But the fool lives in the world
+> Like a beast of burden."
+
+## Big Mouth
+
+> "I only wrote that poem to test my printer!"
+
+## Donny Osmond
+
+> "I never smile unless I mean it."
+
+## Dwight D. Eisenhower
+
+> "I have two kinds of problems: the urgent and the important. The urgent are not important, and the important are never urgent."
+
+## G. K. Chesterton
+
+> It is really not so repulsive to see the poor asking for money as to see the rich asking for more money. And advertisement is the rich asking for more money. A man would be annoyed if he found himself in a mob of millionaires, all holding out their silk hats for a penny; or all shouting with one voice, "Give me money." Yet advertisement does really assault the eye very much as such a shout would assault the ear. "Budge's Boots are the Best" simply means "Give me money"; "Use Seraphic Soap" simply means "Give me money." It is a complete mistake to suppose that common people make our towns commonplace, with unsightly things like advertisements. Most of those whose wares are thus placarded everywhere are very wealthy gentlemen with coronets and country seats, men who are probably very particular about the artistic adornment of their own homes. They disfigure their towns in order to decorate their houses.
+
+## Dean Bokhari (unconfirmed)
+
+> "Be regular and orderly in your life, so that you may be violent and original in your work."
+
+## Duke Ellington
+
+> "I felt the music wash over me. It had me, right then and there." — **Ghost of Duke Ellington**
+
+## Gustave Flaubert (unconfirmed)
+
+> "Be regular and orderly in your life, so that you may be violent and original in your work."
+
+## Jereld Hanson
+
+> "Their level is always half a bubble off."
+
+## John Siracusa
+
+> "Don't chase your dreams! Humans are persistence predators. Follow your dreams at a sustainable pace until they get tired and lay down."
+
+## u/kaidomac On ADHD
+
+> "I wish I had the ability to instantly internalize this comic for neuro-typical people. "Just try harder" doesn't fully illuminate the ridiculous, daily, momentary inner struggle we fight ALL the time. And it also helps SO MUCH to explain it to ourselves this way!
+>
+> I was visiting an elderly family member the other day and they were like, "Well I definitely don't have ADHD, when I decide to focus on something, I can just do it!" I definitely had a momentary inner twinge that that's not the norm for me…simply deciding to do it & not having the "Mentos & Coke" effect of mental diffusion kick in to over-think the task & then feel all of the other things I have to do start swirling around, and then feel the emotional barriers of the weight of the task & the mental energy loss from the pre-requisite requirements like having to clean up or find stuff kick in…things that aren't on anybody's normal radar at all!
+>
+> It's a silly, nonsensical situation to deal with in life…I'm very grateful towards this artist for illustration the reality of the situation!"
+
+## Pascal
+
+> "All of humanity's problems stem from man's inability to sit quietly in a room alone."
+
+## Richard Feynman
+
+> "Knowledge isn't free. You have to pay attention."
+
+## Rumi
+
+> "If I were the plaything of every thought, I would be a fool, not a wise man."
+
+## Shield Anvil Itkovian, Memories of Ice, Malazan Series Book 3
+
+> "We humans do not understand compassion. In each moment of our lives, we betray it. Aye, we know of its worth, yet in knowing we then attach to it a value, we guard the giving of it, believing it must be earned. Compassion is priceless in the truest sense of the word. It must be given freely. In abundance."
+
+## Stephen Roberts
+
+> "I contend that we are both atheists. I just believe in one fewer god than you do. When you understand why you dismiss all the other possible gods, you will understand why I dismiss yours."
+
+## Taylor Swift
+
+> "Happiness and Confidence are the _prettiest_ things you can wear."
+
+## Thomas Merton
+
+> "We must be true inside, true to ourselves, before we can know a truth that is outside us."
+
+## Unknown
+
+> "Saying yes frequently is an additive strategy. Saying no is a subtractive strategy. Keep saying no to a lot of things - the negative and unimportant ones - and once in awhile, you will be left with an idea which is so compelling that it would be a screaming no-brainer 'yes'."
+
+> "I've been called worse, and I'm disappointed you couldn't think of something better."
+
+> "This is not regular stupid. This is advanced stupid."
+
+## Waymond Wang
+
+> "When I choose to see the good side of things, I'm not being naïve. It is strategic and necessary. It's how I've learned to survive through everything.
+>
+> I don't know. The only thing I do know… is that we have to be kind.
+>
+> Please. Be kind… especially when we don't know what's going on.
+> I know you see yourself as a fighter. Well, I see myself as one too. This is how I fight."
+
+## Yuval Noah Harari
+
+> "Information is not truth." — Yuval Noah Harari
+
+## XKCD Book
+
+> **Throwing is hard.**
+>
+> "In order to deliver a baseball to a batter, a pitcher has to release the ball at exactly the right point in the throw. A timing error of half a millisecond in either direction is enough to cause the ball to miss the strike zone.
+>
+> To put that in perspective, it takes about five milliseconds for the fastest nerve impulse to travel the length of the arm. That means that when your arm is still rotating toward the correct position, the signal to release the ball is already at your wrist.
+>
+> In terms of timing, this is like a drummer dropping a drumstick from the tenth story and hitting a drum on the ground on the correct beat."
+> From XKCD Book
diff --git a/src/en/notes/reverse-outlines.md b/src/en/notes/reverse-outlines.md
new file mode 100644
index 0000000..52a7b36
--- /dev/null
+++ b/src/en/notes/reverse-outlines.md
@@ -0,0 +1,11 @@
+---
+title: Reverse Outlines
+
+source: https://writing.wisc.edu/handbook/process/reverseoutlines/
+compartir: true
+description: 'Often used by writers to check their work.'
+---
+
+Reverse outlines are often used by writers to check their work. **Reverse Outlining** is a process whereby you take away all of the supporting writing and are left with a paper's main points or main ideas, sometimes represented by your paper's topic sentences.
+
+[Read more](https://writing.wisc.edu/handbook/process/reverseoutlines/).
diff --git a/src/en/notes/rhizomatic-learning.md b/src/en/notes/rhizomatic-learning.md
new file mode 100644
index 0000000..6a182bf
--- /dev/null
+++ b/src/en/notes/rhizomatic-learning.md
@@ -0,0 +1,16 @@
+---
+title: Rhizomatic Learning
+compartir: true
+
+tags:
+ - stub
+description: 'Rhizomatic learning is a variety of pedagogical practices informed by the work of Gilles Deleuze and Félix Guattari.'
+---
+
+Rhizomatic learning is a variety of pedagogical practices informed by the work of Gilles Deleuze and Félix Guattari. It takes it's name from the [[rhizome]].
+
+## Background
+
+Explored initially as an application of post-structural thought to education, it has more recently been identified as methodology for net-enabled education. In contrast to goal-directed and hierarchical theories of learning, it posits that learning is most effective when it allows participants to react to evolving circumstances, preserving lines of flight that allow a fluid and continually evolving redefinition of the task at hand. In such a structure, "the community is the curriculum", subverting traditional notions of instructional design where objectives pre-exist student involvement.
+
+> "The underground sprout of a rhizome does not have a traditional root. There is a stem there, the oldest part of which dies off while simultaneously rejuvenating itself at the tip. The rhizome's renewal of itself proceeds autopoietically: the new relations generated via rhizomatic connections are not copies, but each and every time a new map, a cartography. A rhizome does not consist of units, but of dimensions and directions." — Inna Semetsky
diff --git a/src/en/notes/rhizome.md b/src/en/notes/rhizome.md
new file mode 100644
index 0000000..5fc6538
--- /dev/null
+++ b/src/en/notes/rhizome.md
@@ -0,0 +1,9 @@
+---
+title: 'Rhizome'
+compartir: true
+
+tags: [stub]
+description: 'Underground stem in which various plants asexually reproduce via budding.'
+---
+
+Underground stem in which various plants asexually reproduce via budding.
diff --git a/src/en/notes/rhombic-dodecahedron.md b/src/en/notes/rhombic-dodecahedron.md
new file mode 100644
index 0000000..0bedb5b
--- /dev/null
+++ b/src/en/notes/rhombic-dodecahedron.md
@@ -0,0 +1,22 @@
+---
+title: Rhombic Dodecahedron
+compartir: true
+
+tags:
+ - stub
+description: 'Convex polyhedron with 12 congruent rhombic faces.'
+---
+
+In geometry, the rhombic dodecahedron is a convex polyhedron with 12 congruent rhombic faces. It has 24 edges, and 14 vertices of 2 types. It is a Catalan solid, and the dual polyhedron of the cuboctahedron.
+
+## Rhombic Dodecahedral Honeycomb
+
+The rhombic dodecahedral honeycomb (also _dodecahedrille_) is a space-filling tessellation (or honeycomb) in Euclidean 3-space. It is the Voronoi diagram of the face-centered cubic sphere-packing, which has the densest possible packing of equal spheres in ordinary space (see Kepler conjecture).
+
+## In Dungeons and Dragons
+
+> "I've never seen a rhombic dodecahedron d12 before. They do exist after a quick search, but the much more common d12 is just a dodecahedron, with pentagonal faces."
+
+The UCLA[^1] investigators developed a technique that prevents that corrosion and showed that, in its absence, lithium atoms assemble into a surprising shape—the rhombic dodecahedron, a 12-sided figure similar to the dice used in role-playing games like Dungeons and Dragons.
+
+[^1]: University of California, Los Angeles
diff --git a/src/en/notes/sans-serif.md b/src/en/notes/sans-serif.md
new file mode 100644
index 0000000..52d1cb3
--- /dev/null
+++ b/src/en/notes/sans-serif.md
@@ -0,0 +1,16 @@
+---
+title: Sans-serif
+tags:
+ - typography
+compartir: true
+---
+
+In typography and lettering, a "sans-serif", "sans serif", "gothic", or simply "sans" letterform is one that does not have extending features called "serifs" at the end of strokes. Sans-serif typefaces tend to have less stroke width variation than serif typefaces. They are often used to convey simplicity and modernity or minimalism.
+
+## Font Family in CSS
+
+```css
+font-family: -apple-system, BlinkMacSystemFont, 'Avenir Next', Avenir,
+ 'Nimbus Sans L', Roboto, Noto, 'Segoe UI', Arial, Helvetica, 'Helvetica Neue',
+ sans-serif;
+```
diff --git a/src/en/notes/scope-of-work.md b/src/en/notes/scope-of-work.md
new file mode 100644
index 0000000..444f7f7
--- /dev/null
+++ b/src/en/notes/scope-of-work.md
@@ -0,0 +1,20 @@
+---
+title: Scope of Work
+compartir: true
+
+description: 'Descriptive document or working agreement that contains all information regarding the size of a project, the goals a team should accomplish by the end of the project and steps required to complete the project.'
+---
+
+A scope of work or SOW, is a descriptive document or working agreement that contains all information regarding the size of a project, the goals a team should accomplish by the end of the project and steps required to complete the project.
+
+You might create an SOW when multiple parties are working together on the project and there are certain requirements to meet. This document usually includes of an introduction, objective overview, an outline of the expected work and tasks, schedule for deliverables, adoption plan and conclusion or sign off.
+
+Usually, a scope of work has these standard components:
+
+- Project goals: This includes all goals intended for the team to reach as the project progresses, as well as when it completes.
+- Timeline: This includes the exact timeframe for the project's beginning and end, including when specific tasks should start and complete.
+- Expected results: This includes specific outcomes intended to take place by the completion of the project.
+- Deliverables: This includes the exact product or products the project should deliver by its completion.
+- Conditions: This includes any stipulations the team should abide by or work under or requirements to meet.
+- Financial information: This includes accounting data, such as how much the project may cost to complete, how much each team member is going to earn and how and when they're going to be paid.
+- Management: This includes information regarding administrative details, such as who's responsible for approving financial decisions or who can agree to specific terms.
diff --git a/src/en/notes/scry-your-tasks.md b/src/en/notes/scry-your-tasks.md
new file mode 100644
index 0000000..8ddfc65
--- /dev/null
+++ b/src/en/notes/scry-your-tasks.md
@@ -0,0 +1,20 @@
+---
+title: Scry Your Tasks
+compartir: true
+
+tags:
+ - stub
+description: 'To scry is to see or predict the future by means of a crystal ball.'
+---
+
+To _scry_ is to see or predict the future by means of a crystal ball. It is also the ability to look at the top cards of your deck and rearrange them in Magic the Gathering. This note was inspired by [Cortex](https://www.relay.fm/cortex) [Episode 142](https://www.relay.fm/cortex/142) where Myke and Grey discuss scrying your task lists.
+
+In terms of organization, scrying your task list allows you to determine what is the order of 2 to 5 things that _need_ to happen.
+
+Your job is not to get through all the to-do items, but to arrange them in the _correct order_. Sometimes you need to put some things at the bottom of the list. I draw the line when I can't finish the work day until these tasks are _done_.
+
+Don't confuse mission-critical items and time saving tasks. Mission-critical Items **NEED** to be done today. Optionally, anything that will save time the next day **SHOULD** be done the day prior.
+
+You are _probably_ doing life wrong if you consistently get to the bottom of your to-do list. Let me elaborate, if your to-do list is empty, something about your life _is_ wrong. You are not being ambitious enough.
+
+This note was inspired by [Cortex](https://www.relay.fm/cortex) [Episode 142](https://www.relay.fm/cortex/142) on scrying your task lists.
diff --git a/src/en/notes/serif.md b/src/en/notes/serif.md
new file mode 100644
index 0000000..a10542d
--- /dev/null
+++ b/src/en/notes/serif.md
@@ -0,0 +1,15 @@
+---
+title: Serif
+tags:
+ - typography
+compartir: true
+---
+
+In typography, a serif (/ˈsɛrɪf/) is a small line or stroke regularly attached to the end of a larger stroke in a letter or symbol within a particular font or family of fonts.
+
+## Font Family in CSS
+
+```css
+font-family: Constantia, 'Lucida Bright', Lucidabright, 'Lucida Serif', Lucida,
+ 'DejaVu Serif', 'Bitstream Vera Serif', 'Liberation Serif', Georgia, serif;
+```
diff --git a/src/en/notes/static-site-generators.md b/src/en/notes/static-site-generators.md
new file mode 100644
index 0000000..114f130
--- /dev/null
+++ b/src/en/notes/static-site-generators.md
@@ -0,0 +1,15 @@
+---
+title: Static Site Generator
+tags:
+ - markdown
+
+compartir: true
+---
+
+Static site generators (SSGs) are engines that use text input files (such as [[markdown|Markdown]], [reStructuredText](https://docutils.sourceforge.io/rst.html), and [AsciiDoc](https://asciidoc.org/)) to generate static web pages. SSGs are typically for rarely-changing, informative content, such as product pages, news websites, (software) documentation, manuals, and blogs.
+
+Popular choices in SSGs include:
+
+- [Jekyll](https://jekyllrb.com/)
+- [Hugo](https://gohugo.io/)
+- [[zola|Zola]]
diff --git a/src/en/notes/svelte.md b/src/en/notes/svelte.md
new file mode 100644
index 0000000..3b7e3a7
--- /dev/null
+++ b/src/en/notes/svelte.md
@@ -0,0 +1,44 @@
+---
+title: Svelte
+compartir: true
+
+description: 'Modern JavaScript Framework for building web applications.'
+---
+
+[Svelte](https://svelte.dev/) is a modern [[javascript#JavaScript Frameworks|JavaScript Framework]] for building web applications. It compiles components into efficient, framework-free [[javaScript|JavaScript]] code, resulting in fast and lightweight applications. With its reactive approach and declarative syntax, Svelte simplifies development and delivers impressive performance.
+
+## Example
+
+```javascript
+
+
+
+ Welcome to Svelte
+ Click the button to greet:
+ Greet
+
+
+
+```
+
+In this example, we have a Svelte component that displays a heading, paragraph, and a button. When the button is clicked, the `handleClick` function is called, which displays an alert with the name variable interpolated. The component also includes some basic styling using CSS in the `
diff --git a/templates/_custom_font.html b/templates/_custom_font.html
deleted file mode 100644
index 4c97de5..0000000
--- a/templates/_custom_font.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/templates/_footer.html b/templates/_footer.html
deleted file mode 100644
index 7fffdbc..0000000
--- a/templates/_footer.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
\ No newline at end of file
diff --git a/templates/_giscus_script.html b/templates/_giscus_script.html
deleted file mode 100644
index e69de29..0000000
diff --git a/templates/_head_extend.html b/templates/_head_extend.html
deleted file mode 100644
index e69de29..0000000
diff --git a/templates/_header-journal.html b/templates/_header-journal.html
deleted file mode 100644
index 91d196f..0000000
--- a/templates/_header-journal.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
\ No newline at end of file
diff --git a/templates/_header.html b/templates/_header.html
deleted file mode 100644
index e64e615..0000000
--- a/templates/_header.html
+++ /dev/null
@@ -1,66 +0,0 @@
-
\ No newline at end of file
diff --git a/templates/anchor-link.html b/templates/anchor-link.html
deleted file mode 100644
index 41f6bb1..0000000
--- a/templates/anchor-link.html
+++ /dev/null
@@ -1 +0,0 @@
-#
\ No newline at end of file
diff --git a/templates/blog.html b/templates/blog.html
deleted file mode 100644
index 385951f..0000000
--- a/templates/blog.html
+++ /dev/null
@@ -1,40 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}blog{% endblock page%}
-{% block lang %}{% if section.extra.lang %}{{ section.extra.lang }}{% else %}{{ section.lang }}{% endif %}{% endblock lang %}
-{% block title %}{{ config.title }} :: {{ section.title }}{% endblock title %}
-{% block desc %}
-
-{% endblock desc %}
-
-{% block content %}
-{% include "_header.html" %}
-
-
- {% if config.extra.blog_categorized %}
- {% for category,posts in section.pages | group_by(attribute="taxonomies.categories.0") -%}
- {{ category }}
-
- {% endfor %}
- {% else %}
-
- {% for post in section.pages %}
-
- {{ post.title }}
-
- {{ post.date | date}}
-
- {% endfor %}
-
- {% endif %}
-
- {% include "_footer.html" %}
-
-{% endblock content %}
\ No newline at end of file
diff --git a/templates/categories/list.html b/templates/categories/list.html
deleted file mode 100644
index e69de29..0000000
diff --git a/templates/categories/single.html b/templates/categories/single.html
deleted file mode 100644
index e69de29..0000000
diff --git a/templates/feed.xml b/templates/feed.xml
deleted file mode 100644
index fe1f139..0000000
--- a/templates/feed.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
- {% if section.title %}{{ section.title }}{% else %}{{ config.title }}{% endif %}
- {%- if section.description %}
- {{ section.description }}
- {%- elif config.description %}
- {{ config.description }}
- {%- endif %}
-
-
- {{ last_updated | date(format="%+") }}
- {{ feed_url | safe }}
- {%- for page in pages %}
-
- {{ page.title }}
- {{ page.date | date(format="%+") }}
- {{ page.updated | default(value=page.date) | date(format="%+") }}
- {%- if page.summary %}
- {{ page.summary }}
- {%- endif %}
-
- {{ page.permalink | safe }}
- {{ page.content }}
-
- {%- endfor %}
-
\ No newline at end of file
diff --git a/templates/home.html b/templates/home.html
deleted file mode 100644
index 9e0fd3a..0000000
--- a/templates/home.html
+++ /dev/null
@@ -1,116 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}homepage{% endblock page%}
-{% block lang %}{% if section.extra.lang %}{{ section.extra.lang }}{% else %}{{ section.lang }}{% endif %}{% endblock lang %}
-{% block title %}{{ config.title }}{% endblock title %}
-{% block desc %}
-
-{% endblock desc %}
-
-{% block head %}
-{% if config.markdown.highlight_theme == "css" %}
-
-{% endif %}
-{% if section.extra.math %}
-
-
-
-
-{% endif %}
-{% endblock head %}
-
-{% block content %}
-
-
-
-
-
-
-
{{ config.extra.bio }}
-
-
-
- {% if config.extra.homepage_layout == 'about' %}
-
- {{ section.content | trim | safe }}
-
- {% elif config.extra.homepage_layout == 'list' %}
- {% set blog_section_path = config.extra.blog_section_path | trim_start_matches(pat="/") %}
- {% set section_md_path = blog_section_path ~ "/_index.md" %}
- {% set blog_section = get_section(path=section_md_path) %}
-
- {% if config.extra.blog_categorized %}
- {% for category,posts in blog_section.pages | group_by(attribute="taxonomies.categories.0") -%}
- {{ category }}
-
- {% endfor %}
- {% else %}
-
- {% for post in blog_section.pages %}
-
- {{ post.title }}
-
- {{ post.date | date}}
-
- {% endfor %}
-
- {% endif %}
-
- {% endif %}
-
-
-{% endblock content %}
-
-{% block script %}
-
-{% if section.extra.mermaid %}
-
-{% endif %}
-{% endblock script %}
\ No newline at end of file
diff --git a/templates/page.html b/templates/page.html
deleted file mode 100644
index a15b0f8..0000000
--- a/templates/page.html
+++ /dev/null
@@ -1,122 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}post{% endblock page %}
-{% block lang -%}
-{%- if section.extra.lang %}{{section.extra.lang}}{% else %}{{page.lang}}{% endif -%}
-{%- endblock lang %}
-{% block title %}{{ config.title }} :: {{ page.title }}{% endblock title %}
-{% block desc %}
- {% if page.summary %}
- {% set desc = page.summary %}
- {% elif page.description %}
- {% set desc = page.description %}
- {% endif %}
- {% if desc %}
-
- {% endif %}
-{% endblock desc %}
-
-{% block head %}
-{% if config.markdown.highlight_theme == "css" %}
-
-{% endif %}
-{% if section.extra.math %}
-
-
-
-
-{% endif %}
-{% endblock head %}
-
-{% block content %}
-{% include "_header-journal.html" %}
-{# {% include "_header.html" %} #}
-
-
-
-
- {% if page.extra.toc is defined %}
- {% set show_toc = page.extra.toc %}
- {% else %}
- {% set show_toc = config.extra.toc %}
- {% endif %}
- {% if show_toc and page.toc %}
-
-
- {% for h2 in page.toc %}
-
- {{ h2.title }}
- {% if h2.children %}
-
- {% endif %}
-
- {% endfor %}
-
-
- {% endif %}
- {% if config.extra.back_to_top %}
-
- {% set icon = load_data(path="static/icon/arrow-up.svg") %}
- {{ icon | safe }}
-
- {% endif %}
-
-
-
-
- {% if section.extra.copy is defined %}{% set allow_copy = section.extra.copy %}{% else %}{% set allow_copy =
- config.extra.copy %}{% endif %}
- {% if allow_copy %}
- {% set copy_icon = load_data(path="static/icon/copy.svg") %}
- {% set check_icon = load_data(path="static/icon/check.svg") %}
-
-
- {% endif %}
- {% set backlink_icon = load_data(path="static/icon/backlink.svg") %}
-
- {{ page.content | safe }}
-
-
- {% if section.extra.comment is defined %}{% set show_comment = section.extra.comment %}{% else %}{% set
- show_comment = config.extra.comment %}{% endif %}
- {% if show_comment %}
-
- {% include "_giscus_script.html" %}
- {% endif %}
-
-
- {% include "_footer.html" %}
-
-
-{% endblock content %}
-
-{% block script %}
-
-{% if section.extra.mermaid %}
-
-{% endif %}
-{% endblock script %}
\ No newline at end of file
diff --git a/templates/post.html b/templates/post.html
deleted file mode 100644
index 560865a..0000000
--- a/templates/post.html
+++ /dev/null
@@ -1,154 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}post{% endblock page %}
-{% block lang -%}
-{%- set blog_section_path = config.extra.blog_section_path | trim_start_matches(pat="/") -%}
-{%- set section_md_path = blog_section_path ~ "/_index.md" -%}
-{%- set section = get_section(path=section_md_path, metadata_only=true) -%}
-{%- if page.extra.lang %}{{page.extra.lang}}{% elif section.extra.lang %}{{section.extra.lang}}{% else %}{{page.lang}}{% endif -%}
-{%- endblock lang %}
-{% block title %}{{ page.title }}{% endblock title %}
-{% block desc %}
- {% if page.summary %}
- {% set desc = page.summary %}
- {% elif page.description %}
- {% set desc = page.description %}
- {% endif %}
- {% if desc %}
-
- {% endif %}
-{% endblock desc %}
-
-{% block head %}
-{% if config.markdown.highlight_theme == "css" %}
-
-{% endif %}
-{% if page.extra.math %}
-
-
-
-
-{% endif %}
-{% endblock head %}
-
-{% block content %}
-{% include "_header.html" %}
-
-
-
- {% if page.extra.toc is defined %}{% set show_toc = page.extra.toc %}{% else %}{% set show_toc = config.extra.toc %}{% endif %}
- {% if show_toc and page.toc %}
-
-
- {% for h2 in page.toc %}
-
- {{ h2.title }}
- {% if h2.children %}
-
- {% endif %}
-
- {% endfor %}
-
-
- {% endif %}
- {% if config.extra.back_to_top %}
-
- {% set icon = load_data(path="static/icon/arrow-up.svg") %}
- {{ icon | safe }}
-
- {% endif %}
-
-
-
- {% if page.extra.copy is defined %}{% set allow_copy = page.extra.copy %}{% else %}{% set allow_copy = config.extra.copy %}{% endif %}
- {% if allow_copy %}
- {% set copy_icon = load_data(path="static/icon/copy.svg") %}
- {% set check_icon = load_data(path="static/icon/check.svg") %}
-
- {% endif %}
- {% set backlink_icon = load_data(path="static/icon/backlink.svg") %}
-
- {{ page.title }}
-
-
- {{ page.date | date }}
- {% if page.updated and page.updated != page.date -%}
- Updated on {{ page.updated | date }}
- {% endif -%}
-
-
- {% if page.extra.display_tags is defined %}{% set display_tags = page.extra.display_tags %}{% elif config.extra.display_tags is defined %}{% set display_tags = config.extra.display_tags %}{% else %}{% set display_tags = true %}{% endif %}
-
- {% if page.taxonomies.tags is defined and display_tags == true %}
-
- {% endif %}
-
-
- {% if page.extra.outdate_alert is defined %}{% set show_outdate_alert = page.extra.outdate_alert %}{% else %}{% set show_outdate_alert = config.extra.outdate_alert %}{% endif %}
- {% if page.extra.outdate_alert_days is defined %}{% set outdate_alert_days = page.extra.outdate_alert_days %}{% else %}{% set outdate_alert_days = config.extra.outdate_alert_days %}{% endif %}
-
- {% if show_outdate_alert -%}
-
- {% set icon = load_data(path="static/icon/alert.svg") %}
-
- {{ icon | safe }}
-
-
-
- {% endif %}
-
- {% if page.extra.truncate_summary is defined %}{% set truncate_summary = page.extra.truncate_summary %}{% elif config.extra.truncate_summary is defined %}{% set truncate_summary = config.extra.truncate_summary %}{% else %}{% set truncate_summary = false %}{% endif %}
-
- {% if truncate_summary == true and page.summary %}
- {{ page.content | trim_start_matches(pat=page.summary) | safe }}
- {% else %}
- {{ page.content | safe }}
- {% endif %}
-
-
- {% if page.extra.comment is defined %}{% set show_comment = page.extra.comment %}{% else %}{% set show_comment = config.extra.comment %}{% endif %}
- {% if show_comment %}
-
- {% include "_giscus_script.html" %}
- {% endif %}
-
-
- {% include "_footer.html" %}
-
-
-{% endblock content %}
-
-{% block script %}
-
-{% if page.extra.mermaid %}
-
-{% endif %}
-{% endblock script %}
\ No newline at end of file
diff --git a/templates/projects.html b/templates/projects.html
deleted file mode 100644
index d51c413..0000000
--- a/templates/projects.html
+++ /dev/null
@@ -1,36 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}projects{% endblock page%}
-{% block lang %}{% if section.extra.lang %}{{ section.extra.lang }}{% else %}{{ section.lang }}{% endif %}{% endblock lang %}
-{% block title %}{{ config.title }} :: {{ section.title }}{% endblock title %}
-{% block desc %}
-
-{% endblock desc %}
-
-{% block content %}
-{% include "_header.html" %}
-
-
- {% set data = load_data(path="content/projects/data.toml", format="toml") %}
- {% for proj in data.project %}
-
-
{{ proj.name }}
-
{{ proj.desc | trim | markdown | safe }}
-
-
- {% endfor %}
-
- {% include "_footer.html" -%}
-
-{% endblock content %}
\ No newline at end of file
diff --git a/templates/prose.html b/templates/prose.html
deleted file mode 100644
index 1da556e..0000000
--- a/templates/prose.html
+++ /dev/null
@@ -1,72 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}prose-page{% endblock page %}
-{% block lang -%}
-{%- if section.extra.lang %}{{section.extra.lang}}{% else %}{{page.lang}}{% endif -%}
-{%- endblock lang %}
-{% block title %}{{ config.title }} :: {{ section.title }}{% endblock title %}
-{% block desc %}
-
-{% endblock desc %}
-
-{% block head %}
-{% if config.markdown.highlight_theme == "css" %}
-
-{% endif %}
-{% if section.extra.math %}
-
-
-
-
-{% endif %}
-{% endblock head %}
-
-{% block content %}
-{% include "_header.html" %}
-
-
-
- {% if section.extra.copy is defined %}{% set allow_copy = section.extra.copy %}{% else %}{% set allow_copy = config.extra.copy %}{% endif %}
- {% if allow_copy %}
- {% set copy_icon = load_data(path="static/icon/copy.svg") %}
- {% set check_icon = load_data(path="static/icon/check.svg") %}
-
- {% endif %}
- {% set backlink_icon = load_data(path="static/icon/backlink.svg") %}
-
- {{ section.content | safe }}
-
-
- {% if section.extra.comment is defined %}{% set show_comment = section.extra.comment %}{% else %}{% set show_comment = config.extra.comment %}{% endif %}
- {% if show_comment %}
-
- {% include "_giscus_script.html" %}
- {% endif %}
-
-
- {% include "_footer.html" %}
-
-
-{% endblock content %}
-
-{% block script %}
-
-{% if section.extra.mermaid %}
-
-{% endif %}
-{% endblock script %}
\ No newline at end of file
diff --git a/templates/shortcodes/alert.html b/templates/shortcodes/alert.html
deleted file mode 100644
index 9302dca..0000000
--- a/templates/shortcodes/alert.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {% set icon = load_data(path="static/icon/alert.svg") %}
-
- {{ icon | safe }}
-
-
- {% if header %}
-
{{ header }}
- {% endif %}
- {{ body | markdown | safe }}
-
-
\ No newline at end of file
diff --git a/templates/shortcodes/codeblock.html b/templates/shortcodes/codeblock.html
deleted file mode 100644
index 1052b49..0000000
--- a/templates/shortcodes/codeblock.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
{{ name }}
- {{ body | markdown | safe }}
-
\ No newline at end of file
diff --git a/templates/shortcodes/figure.html b/templates/shortcodes/figure.html
deleted file mode 100644
index 8a4123f..0000000
--- a/templates/shortcodes/figure.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- {% if via %}
- via
- {% else %}
- {{ caption }}
- {% endif %}
-
\ No newline at end of file
diff --git a/templates/shortcodes/important.html b/templates/shortcodes/important.html
deleted file mode 100644
index 1b6a2e2..0000000
--- a/templates/shortcodes/important.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {% set icon = load_data(path="static/icon/important.svg") %}
-
- {{ icon | safe }}
-
-
- {% if header %}
-
{{ header }}
- {% endif %}
- {{ body | markdown | safe }}
-
-
\ No newline at end of file
diff --git a/templates/shortcodes/mermaid.html b/templates/shortcodes/mermaid.html
deleted file mode 100644
index 3d3725d..0000000
--- a/templates/shortcodes/mermaid.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{ body }}
-
\ No newline at end of file
diff --git a/templates/shortcodes/note.html b/templates/shortcodes/note.html
deleted file mode 100644
index b6109a0..0000000
--- a/templates/shortcodes/note.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {% set icon = load_data(path="static/icon/note.svg") %}
-
- {{ icon | safe }}
-
-
- {% if header %}
-
{{ header }}
- {% endif %}
- {{ body | markdown | safe }}
-
-
\ No newline at end of file
diff --git a/templates/shortcodes/question.html b/templates/shortcodes/question.html
deleted file mode 100644
index e91eba5..0000000
--- a/templates/shortcodes/question.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {% set icon = load_data(path="static/icon/question.svg") %}
-
- {{ icon | safe }}
-
-
- {% if header %}
-
{{ header }}
- {% endif %}
- {{ body | markdown | safe }}
-
-
\ No newline at end of file
diff --git a/templates/shortcodes/tip.html b/templates/shortcodes/tip.html
deleted file mode 100644
index 8fdca97..0000000
--- a/templates/shortcodes/tip.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {% set icon = load_data(path="static/icon/tip.svg") %}
-
- {{ icon | safe }}
-
-
- {% if header %}
-
{{ header }}
- {% endif %}
- {{ body | markdown | safe }}
-
-
\ No newline at end of file
diff --git a/templates/shortcodes/warning.html b/templates/shortcodes/warning.html
deleted file mode 100644
index c140839..0000000
--- a/templates/shortcodes/warning.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {% set icon = load_data(path="static/icon/warning.svg") %}
-
- {{ icon | safe }}
-
-
- {% if header %}
-
{{ header }}
- {% endif %}
- {{ body | markdown | safe }}
-
-
\ No newline at end of file
diff --git a/templates/tags/list.html b/templates/tags/list.html
deleted file mode 100644
index 407d4bc..0000000
--- a/templates/tags/list.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}tag-list{% endblock page%}
-{% block lang -%}
-{% set blog_section_path = config.extra.blog_section_path | trim_start_matches(pat="/") %}
-{% set section_md_path = blog_section_path ~ "/_index.md"%}
-{% set section = get_section(path=section_md_path, metadata_only=true) %}
-{%- if section.extra.lang %}{{ section.extra.lang }}{% else %}{{ lang }}{% endif -%}
-{%- endblock lang %}
-{% block title %}Tags{% endblock title %}
-
-{% block content %}
-{% include "_header.html" %}
-
-
- Tags
-
-
- {% include "_footer.html" %}
-
-{% endblock content %}
\ No newline at end of file
diff --git a/templates/tags/single.html b/templates/tags/single.html
deleted file mode 100644
index 798074d..0000000
--- a/templates/tags/single.html
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "_base.html" %}
-
-{% block page %}tag-single{% endblock page %}
-{% block lang -%}
-{% set blog_section_path = config.extra.blog_section_path | trim_start_matches(pat="/") %}
-{% set section_md_path = blog_section_path ~ "/_index.md"%}
-{% set section = get_section(path=section_md_path, metadata_only=true) %}
-{%- if section.extra.lang %}{{ section.extra.lang }}{% else %}{{ lang }}{% endif -%}
-{%- endblock lang %}
-{% block title %}{{section.title}}{% endblock title %}
-
-{% block content %}
-{% include "_header.html" %}
-
-{% endblock content %}
\ No newline at end of file