From 081b74d8990f3d70678d8c95f81f6570868f7eef Mon Sep 17 00:00:00 2001 From: "J. Scott Smith" Date: Fri, 3 Nov 2023 01:32:34 -0700 Subject: [PATCH] added Prettier, Tailwind, styling, branding, sitemap, tracking --- .editorconfig | 13 + .env.sample | 4 + .eslintrc.cjs | 37 + .gitignore | 296 ++- .nvmrc | 1 + astro.config.mjs | 165 +- package-lock.json | 1851 ++++++++++++++++- package.json | 30 +- prettier.config.cjs | 16 + public/android-chrome-192x192.png | Bin 0 -> 9572 bytes public/android-chrome-512x512.png | Bin 0 -> 26057 bytes public/apple-touch-icon.png | Bin 0 -> 6804 bytes public/browserconfig.xml | 9 + public/favicon-16x16.png | Bin 0 -> 759 bytes public/favicon-32x32.png | Bin 0 -> 1443 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/mstile-150x150.png | Bin 0 -> 1306 bytes public/robots.txt | 4 + public/safari-pinned-tab.svg | 70 + public/site.webmanifest | 19 + ...tomic-logotype-color-black-h-1200x302.webp | 3 + ...tomic-logotype-color-white-h-1200x302.webp | 3 + src/components/AdatomicFooter.astro | 35 + src/components/Transitions.astro | 5 +- src/content/config.ts | 10 +- src/content/docs/ingredients/service.md | 114 +- src/tailwind.css | 3 + tailwind.config.mjs | 37 + 28 files changed, 2627 insertions(+), 98 deletions(-) create mode 100644 .editorconfig create mode 100644 .env.sample create mode 100644 .eslintrc.cjs create mode 100644 .nvmrc create mode 100644 prettier.config.cjs create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/browserconfig.xml create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/mstile-150x150.png create mode 100644 public/robots.txt create mode 100644 public/safari-pinned-tab.svg create mode 100644 public/site.webmanifest create mode 100644 src/assets/adatomic-logotype-color-black-h-1200x302.webp create mode 100644 src/assets/adatomic-logotype-color-white-h-1200x302.webp create mode 100644 src/components/AdatomicFooter.astro create mode 100644 src/tailwind.css create mode 100644 tailwind.config.mjs diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5d12634 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..5e9b0fe --- /dev/null +++ b/.env.sample @@ -0,0 +1,4 @@ +# External APIs +GA_TRACKING_ID= +PLAUSIBLE_DOMAIN= +PLAUSIBLE_SRC= diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..b1c7c75 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,37 @@ +module.exports = { + // ... + extends: [ + // ... + 'plugin:astro/recommended', + ], + parserOptions: { + ecmaVersion: 'latest', + }, + // ... + overrides: [ + { + files: ['astro.config.mjs', 'tailwind.config.mjs'], + parserOptions: { + ecmaVersion: 13, + sourceType: 'module', + }, + }, + { + // Define the configuration for `.astro` file. + files: ['*.astro'], + // Allows Astro components to be parsed. + parser: 'astro-eslint-parser', + // Parse the script in `.astro` as TypeScript by adding the following configuration. + // It's the setting you need when using TypeScript. + parserOptions: { + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.astro'], + }, + rules: { + // override/add rules settings here, such as: + // "astro/no-set-html-directive": "error" + }, + }, + // ... + ], +} diff --git a/.gitignore b/.gitignore index 6240da8..095b406 100755 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,293 @@ -# build output -dist/ -# generated types -.astro/ +## +# FROM: https://github.com/github/gitignore/blob/main/Global/Diff.gitignore +## -# dependencies -node_modules/ +*.patch +*.diff -# logs + +## +# FROM: https://github.com/github/gitignore/blob/main/Global/SublimeText.gitignore +## + +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json +sftp-config-alt*.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + + +## +# FROM: https://github.com/github/gitignore/blob/main/Global/Vim.gitignore +## + +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + + +## +# FROM: https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore +## + +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + + +## +# FROM: https://github.com/github/gitignore/blob/main/Global/Windows.gitignore +## + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +## +# FROM: https://github.com/github/gitignore/blob/main/Global/macOS.gitignore +## + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +## +# FROM: https://github.com/github/gitignore/blob/main/Node.gitignore +## + +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* +lerna-debug.log* +.pnpm-debug.log* +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json -# environment variables +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files .env -.env.production +.env.development.local +.env.test.local +.env.production.local +.env.local -# macOS-specific files -.DS_Store +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + + +## +# Extras +## +.astro/ +.cert +compost diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..07c7cf3 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v18.14.2 diff --git a/astro.config.mjs b/astro.config.mjs index 59514b7..7af1f36 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,24 +1,147 @@ -import { defineConfig } from 'astro/config'; -import starlight from '@astrojs/starlight'; +import 'dotenv/config' +import { defineConfig } from 'astro/config' +import starlight from '@astrojs/starlight' +import tailwind from '@astrojs/tailwind' + +// SEE: https://developers.google.com/analytics/devguides/collection/gtagjs +const gaTrackingID = process.env.GA_TRACKING_ID +const gaSrc = `https://www.googletagmanager.com/gtag/js?id=${gaTrackingID}` + +// SEE: https://plausible.io/docs/plausible-script +const plausibleDomain = process.env.PLAUSIBLE_DOMAIN +const plausibleSrc = + process.env.PLAUSIBLE_SRC || 'https://plausible.io/js/script.js' + +const head = [] + +if (gaTrackingID) { + head.push( + { + tag: 'script', + attrs: { + src: gaSrc, + async: true, + }, + }, + { + tag: 'script', + content: ` +window.dataLayer = window.dataLayer || []; +function gtag(){window.dataLayer.push(arguments);} +gtag('js', new Date()); +gtag('config', '${gaTrackingID}'); +`, + }, + ) +} + +if (plausibleDomain && plausibleSrc) { + head.push({ + tag: 'script', + attrs: { + src: plausibleSrc, + 'data-domain': plausibleDomain, + defer: true, + }, + }) +} + +head.push( + { + tag: 'link', + attrs: { + rel: 'apple-touch-icon', + href: '/apple-touch-icon.png', + sizes: '180x180', + }, + }, + { + tag: 'link', + attrs: { + rel: 'icon', + type: 'image/png', + href: '/favicon-32x32.png', + sizes: '32x32', + }, + }, + { + tag: 'link', + attrs: { + rel: 'icon', + type: 'image/png', + href: '/favicon-16x16.png', + sizes: '16x16', + }, + }, + { + tag: 'link', + attrs: { + rel: 'manifest', + href: '/site.webmanifest', + }, + }, + { + tag: 'link', + attrs: { + rel: 'mask-icon', + href: '/safari-pinned-tab.svg', + color: '#7cc6fe', + }, + }, + { + tag: 'meta', + attrs: { + name: 'msapplication-TileColor', + content: '#7cc6fe', + }, + }, + { + tag: 'meta', + attrs: { + name: 'theme-color', + content: '#bee1ff', + }, + }, +) // https://astro.build/config export default defineConfig({ - integrations: [ - starlight({ - title: 'grlx.dev', - components: { Head: './src/components/Transitions.astro'}, - logo: { src: './src/assets/grlx.webp' }, - social: { - github: 'https://gihthub.com/gogrlx/grlx', - 'x.com': 'https://x.com/gogrlx', - }, - sidebar: [ - {label: 'Getting Started', link: '/getting-started'}, - { - label: 'Ingredients', - autogenerate: { directory: 'ingredients' }, - }, - ], - }), - ], -}); + integrations: [ + starlight({ + title: 'grlx Docs', + description: + 'Documentation for grlx. Fleet configuration management that is low overhead, dependency free, and easy to install.', + components: { + Head: './src/components/Transitions.astro', + Footer: './src/components/AdatomicFooter.astro', + }, + customCss: ['./src/tailwind.css'], + defaultLocale: 'root', + locales: { + root: { + label: 'English', + lang: 'en', // lang is required for root locales + }, + }, + favicon: '/favicon.ico', + head, + logo: { src: './src/assets/grlx.webp' }, + social: { + github: 'https://gihthub.com/gogrlx/grlx', + 'x.com': 'https://x.com/gogrlx', + }, + sidebar: [ + { label: 'Getting Started', link: '/getting-started' }, + { + label: 'Ingredients', + autogenerate: { directory: 'ingredients' }, + }, + ], + }), + tailwind({ + // Disable the default base styles: + applyBaseStyles: false, + }), + ], + site: 'https://doc.grlx.dev', +}) diff --git a/package-lock.json b/package-lock.json index bd0cbf1..3c2fa15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,50 @@ { - "name": "grlx-starlight", + "name": "docs.grlx.dev", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "grlx-starlight", + "name": "docs.grlx.dev", "version": "0.0.1", "dependencies": { "@astrojs/starlight": "^0.11.1", + "@astrojs/starlight-tailwind": "^2.0.1", + "@astrojs/tailwind": "^5.0.2", + "@fontsource/ibm-plex-mono": "^5.0.8", + "@fontsource/ibm-plex-sans": "^5.0.17", + "@fontsource/ibm-plex-serif": "^5.0.8", "astro": "^3.2.3", - "sharp": "^0.32.5" + "dotenv": "^16.3.1", + "sharp": "^0.32.5", + "tailwindcss": "^3.3.5" + }, + "devDependencies": { + "eslint": "^8.52.0", + "eslint-plugin-astro": "^0.29.1", + "prettier": "^3.0.3", + "prettier-plugin-astro": "^0.12.1", + "prettier-plugin-tailwindcss": "^0.5.6" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@ampproject/remapping": { @@ -99,12 +133,12 @@ } }, "node_modules/@astrojs/sitemap": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.0.2.tgz", - "integrity": "sha512-ldxCDc0+QHcq2jH4WJFcz5iBc5/SqotEqpT91dhvoLqoRUT5U21rQ6u6qA4FyRVjpd/0Nt1kFjEsRbwoB8IKiQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.0.3.tgz", + "integrity": "sha512-+GRKp1yho9dpHBcMcU6JpbL41k0yYZghOkNsMRb8QIRflbGHvd787tdv9oIZ5NJj0SqAuOlqp2UpqLkJXuAe2A==", "dependencies": { "sitemap": "^7.1.1", - "zod": "3.21.1" + "zod": "^3.22.4" } }, "node_modules/@astrojs/starlight": { @@ -132,6 +166,30 @@ "astro": "^3.2.0" } }, + "node_modules/@astrojs/starlight-tailwind": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@astrojs/starlight-tailwind/-/starlight-tailwind-2.0.1.tgz", + "integrity": "sha512-niMgFcR7NHcsBVy8UAN3F2gqhmoN5v83st5Hu4YzvUL+6SNwjQmIipXppXdN9+iVneRjPr6PLGzDfI+wnjSBWQ==", + "peerDependencies": { + "@astrojs/starlight": ">=0.9.0", + "@astrojs/tailwind": "^5.0.0", + "tailwindcss": "^3.3.3" + } + }, + "node_modules/@astrojs/tailwind": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.0.2.tgz", + "integrity": "sha512-oXqeqmBlkQmsltrsU9nEWeXOtrZIAHW8dcmX7BCdrjzPnU6dPwWzAwhddNQ9ihKiWwsLnlbwQZIo2CDigcZlIA==", + "dependencies": { + "autoprefixer": "^10.4.15", + "postcss": "^8.4.28", + "postcss-load-config": "^4.0.1" + }, + "peerDependencies": { + "astro": "^3.2.4", + "tailwindcss": "^3.0.24" + } + }, "node_modules/@astrojs/telemetry": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.0.4.tgz", @@ -813,6 +871,149 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fontsource/ibm-plex-mono": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.0.8.tgz", + "integrity": "sha512-AoR7K2YtlGKy3LApyLYjqjyz0o8XtkRvbB/juMsGSGNayBBAly140ykZls+VxcXjZSLQpp2RyxKo6lYOuHPmUw==" + }, + "node_modules/@fontsource/ibm-plex-sans": { + "version": "5.0.17", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-sans/-/ibm-plex-sans-5.0.17.tgz", + "integrity": "sha512-VakeugSZf9MA/bGyMH27Cgwvc0v5lxBlmFKz7xE5ESFprXwMYfttkzRIkPw+B8st90GfsLYrkHOfGcjgdweuRQ==" + }, + "node_modules/@fontsource/ibm-plex-serif": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-serif/-/ibm-plex-serif-5.0.8.tgz", + "integrity": "sha512-KUp1E9Wzf2Umhr2SbpcF9HwgFJmuxvKAARmpl7GDDkIG30R1PMFJWxfSfQ7oX/oVBtomGq5RUTaMMUeE0ngEgw==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -981,6 +1182,26 @@ "win32" ] }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@types/acorn": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", @@ -1104,6 +1325,53 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.9.tgz", "integrity": "sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==" }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -1128,6 +1396,22 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -1195,6 +1479,11 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1307,6 +1596,82 @@ "sharp": "^0.32.5" } }, + "node_modules/astro-eslint-parser": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/astro-eslint-parser/-/astro-eslint-parser-0.16.0.tgz", + "integrity": "sha512-k9ASvY8pa6qttM+fvNJCILxxjftfNg/ou5cjd25SVHsc7moplezGGM9fgMUyf24SRYt8ShO603oHRDn2KqwxMg==", + "dev": true, + "dependencies": { + "@astrojs/compiler": "^2.0.0", + "@typescript-eslint/scope-manager": "^5.0.0", + "@typescript-eslint/types": "^5.0.0", + "astrojs-compiler-sync": "^0.3.0", + "debug": "^4.3.4", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.8" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/astrojs-compiler-sync": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/astrojs-compiler-sync/-/astrojs-compiler-sync-0.3.3.tgz", + "integrity": "sha512-LbhchWgsvjvRBb5n5ez8/Q/f9ZKViuox27VxMDOdTUm8MRv9U7phzOiLue5KluqTmC0z1LId4gY2SekvoDrkuw==", + "dev": true, + "dependencies": { + "synckit": "^0.8.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "@astrojs/compiler": ">=0.27.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/b4a": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", @@ -1321,6 +1686,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "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==" + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1363,6 +1733,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1439,6 +1818,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "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==", + "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", @@ -1504,6 +1904,30 @@ "ieee754": "^1.2.1" } }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -1515,6 +1939,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001554", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz", @@ -1740,11 +2172,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, "node_modules/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -1776,6 +2221,17 @@ "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1826,6 +2282,108 @@ "node": ">=4.0.0" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1864,6 +2422,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -1889,6 +2452,29 @@ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, "node_modules/dset": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz", @@ -1988,6 +2574,271 @@ "node": ">=0.8.0" } }, + "node_modules/eslint": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-astro": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-astro/-/eslint-plugin-astro-0.29.1.tgz", + "integrity": "sha512-ffuUc7zFz8HavaAVaS5iRUzWqBf3/YbrFWUhx0GxXW3gVtnbri5UyvkN8EMOkZWkNXG1zqD2y9dlEsAezhbC0w==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "@typescript-eslint/types": "^5.25.0", + "astro-eslint-parser": "^0.16.0", + "postcss": "^8.4.14", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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/eslint/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/eslint/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/eslint/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/eslint/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/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/eslint/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/eslint/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/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2000,6 +2851,39 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/estree-util-attach-comments": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz", @@ -2070,6 +2954,15 @@ "@types/estree": "^1.0.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/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -2116,6 +3009,12 @@ "node": ">=0.10.0" } }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", @@ -2136,6 +3035,18 @@ "node": ">=8.6.0" } }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -2144,6 +3055,18 @@ "reusify": "^1.0.4" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2179,11 +3102,48 @@ "pkg-dir": "^4.2.0" } }, + "node_modules/flat-cache": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, + "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==" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2234,6 +3194,26 @@ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, + "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", @@ -2258,6 +3238,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -2557,6 +3543,31 @@ } ] }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/import-meta-resolve": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz", @@ -2566,6 +3577,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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", @@ -2755,6 +3784,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -2815,6 +3853,14 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2842,6 +3888,24 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -2853,6 +3917,15 @@ "node": ">=6" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -2869,6 +3942,32 @@ "node": ">=6" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "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==" + }, "node_modules/load-yaml-file": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", @@ -4120,6 +5219,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "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", @@ -4146,6 +5256,16 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -4168,6 +5288,12 @@ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "node_modules/needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", @@ -4233,6 +5359,14 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/not": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz", @@ -4274,6 +5408,22 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4296,6 +5446,68 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", @@ -4405,6 +5617,18 @@ "@pagefind/windows-x64": "1.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-entities": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", @@ -4451,6 +5675,14 @@ "node": ">=8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "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", @@ -4503,6 +5735,14 @@ "node": ">=6" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -4589,6 +5829,103 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, "node_modules/prebuild-install": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", @@ -4699,6 +6036,122 @@ "node": ">=8.15" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-astro": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.12.1.tgz", + "integrity": "sha512-1mlNIU/cV+25oB4z5wXzOz2fSDcawG3MsVUwgw2i8VSy7voLSENMSpR1juu3U5MAVUo3owuyax11QuylbpuqOQ==", + "dev": true, + "dependencies": { + "@astrojs/compiler": "^1.5.5", + "prettier": "^3.0.0", + "sass-formatter": "^0.7.6" + }, + "engines": { + "node": "^14.15.0 || >=16.0.0" + } + }, + "node_modules/prettier-plugin-astro/node_modules/@astrojs/compiler": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-1.8.2.tgz", + "integrity": "sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==", + "dev": true + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.6.tgz", + "integrity": "sha512-2Xgb+GQlkPAUCFi3sV+NOYcSI5XgduvDBL2Zt/hwJudeKXkyvRS65c38SB0yb9UB40+1rL83I6m0RtlOQ8eHdg==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@shufo/prettier-plugin-blade": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@shufo/prettier-plugin-blade": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + }, + "prettier-plugin-twig-melody": { + "optional": true + } + } + }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -4755,6 +6208,15 @@ "once": "^1.3.1" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4793,6 +6255,22 @@ "rc": "cli.js" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -4976,6 +6454,15 @@ "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/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", @@ -5086,6 +6573,21 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -5101,6 +6603,128 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5123,6 +6747,12 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/s.color": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", + "dev": true + }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -5158,6 +6788,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sass-formatter": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.8.tgz", + "integrity": "sha512-7fI2a8THglflhhYis7k06eUf92VQuJoXzEs2KRP0r1bluFxKFvLx0Ns7c478oYGM0fPfrr846ZRWVi2MAgHt9Q==", + "dev": true, + "dependencies": { + "suf-log": "^2.5.3" + } + }, "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", @@ -5883,6 +7522,55 @@ "inline-style-parser": "0.1.1" } }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/suf-log": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", + "dev": true, + "dependencies": { + "s.color": "0.0.15" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5905,6 +7593,69 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/tar-fs": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", @@ -5925,6 +7676,43 @@ "streamx": "^2.15.0" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -5962,6 +7750,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "node_modules/tsconfck": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.0.tgz", @@ -5981,6 +7774,12 @@ } } }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -5992,6 +7791,18 @@ "node": "*" } }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", @@ -6166,6 +7977,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -6195,6 +8015,15 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6827,6 +8656,14 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", diff --git a/package.json b/package.json index a847959..0b3a574 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "grlx-starlight", + "name": "docs.grlx.dev", "type": "module", "version": "0.0.1", "scripts": { @@ -11,15 +11,29 @@ }, "dependencies": { "@astrojs/starlight": "^0.11.1", + "@astrojs/starlight-tailwind": "^2.0.1", + "@astrojs/tailwind": "^5.0.2", + "@fontsource/ibm-plex-mono": "^5.0.8", + "@fontsource/ibm-plex-sans": "^5.0.17", + "@fontsource/ibm-plex-serif": "^5.0.8", "astro": "^3.2.3", - "sharp": "^0.32.5" + "dotenv": "^16.3.1", + "sharp": "^0.32.5", + "tailwindcss": "^3.3.5" }, "overrides": { - "astro": { - "zod": "^3.22.3" - }, - "@astrojs/starlight": { - "zod": "^3.22.3" - } + "astro": { + "zod": "^3.22.3" + }, + "@astrojs/starlight": { + "zod": "^3.22.3" + } + }, + "devDependencies": { + "eslint": "^8.52.0", + "eslint-plugin-astro": "^0.29.1", + "prettier": "^3.0.3", + "prettier-plugin-astro": "^0.12.1", + "prettier-plugin-tailwindcss": "^0.5.6" } } diff --git a/prettier.config.cjs b/prettier.config.cjs new file mode 100644 index 0000000..facaa49 --- /dev/null +++ b/prettier.config.cjs @@ -0,0 +1,16 @@ +/** @type {import("prettier").Config} */ +module.exports = { + arrowParens: 'avoid', + semi: false, + singleQuote: true, + plugins: ['prettier-plugin-astro', 'prettier-plugin-tailwindcss'], + overrides: [ + { + files: '*.astro', + options: { + parser: 'astro', + }, + }, + ], + tailwindFunctions: ['tw'], +} diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ea71602a377b4fa8e988b4ebcf0eb5ecb1080c82 GIT binary patch literal 9572 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 literal 0 HcmV?d00001 diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..07a870307e4820d9bf5ce42c96af648dd52858b1 GIT binary patch literal 26057 zcmb4pg;!Kx)b^cV7<%Z2A*54j5r#%YN*aYBq(P)XVrWo)fPezhAl-@zQbR}y($X?? zmvqkSyT0}Q0pDI{-Lvn#=j{7Dd);&IIs5E5Jsk})VkTk$0LUI{su}};E;b+ zXEAs0zY6N0^jHZ1>Jmw=tqJ~}gS-qhl!5ABESvvyB|U9JHEpMt_WwUZLPGrinm@O< zw|oBl-|=7hC;zKFwBY6BJfdR+W&JQ&Ls8cxI`qZ^+Eb zu5Vz-FDUfy`q|O%f2i~a?+}y><)b-g67z`f5RzsmsIGoVT#E^;-K~GQ1 z%EH9Y$E~7#Ut3Gr&_Iiell{J&#Qyfs-~G{rg#}R&{+*41KQq`DZnh_f6aT#qoEmSE zyeG1;(iau(m6;Yj`s-_OpqsCk!!qtiYEpP}eZI59(`Od?ZOz5qofQLpb+*=~`Ppy2 z)?}3wB-K`=R~DxpA0J;`UG47fuC1;0G?Wew4rXU(cXf45OiXI@97w$J)L5Lj(4Y*J=!ZP-$lK*?EW~0{SWW1 z4**Eup{kOh|IE&_-6u0M)UDxPglj0>_DT0UqOO?J#Xdy-tQfstuSHo-TWORkdX2|- ziaJOW5m7}&-tUZS%H1K%&e`$u&2{h_k`299QvW|Wh3!80OcC9#xLMK6e-^R45XQ)m zCwlb0nW7b6`hgs*jI}sa47BpO$+5?P!?6~gie9&Sdwb;Rmz`|N7{r17+)&p35dk(x zfffpbZrlr)#cza6T!o>yjWzMXsgLNDL6HClcKNnvH*qhqYjoP~sWqMGnynH$2hPnk zlF#v`GY-ftIHzQBA_$`EtVxdH!Kjir6tD8-`FU@EJPIhIe z9@W8D{KQ7?f6V!9vraz0#2C891i%awNWgyzUwiXq!)iAnrZ7V$Gi!2jq0f=K_VXhS zY~iLA34Sr_>&?4cH1|)=dyOU$9!aMfVnhf)ehZJ@Ko&m7uT8*PD5RqElE^-Dqd2gy zZYMiKOOsN?&K49h=0sl?D)5DMrhkC)LH%WJO6qqPsD*FoS3xAC6La#=;k2W4e8%NZ z+e?#~Cly!!A@t@FDM=10@jjQl@eV`RqWvaReC-~Z^x)$|`BXgP4GFvT<~MOfTKe@k zdLqx&kQUtZ3JUB)flj>Hai|yHn@77eS|GwY#0X0CQnCD^4ez)d+Gz5F1xH~(ez0__ zaj_8i>9CDY=a(sYuRi$!9mwu_C>C$<%4R!MnD9E$6SIEJK75fo&ennp4ZxO%#f9fU z;J}{)ybh8^<>u@YUM-;CTv?gT6L<^kpD&c+n|DI>vwTqSy(h9$)Bu_QS#_IF(g8;T3>P0T@xu6^jqi_*#=pMwZ~%d2AO;qlY0q3(+sAo1L6({T z54be`#{_Vo7vT#Sft!_qvp1$ddKCG z2hF3zTzWjm+wzzC=Oq$Q0u4rh5Qqf~Dz%Ig%#=sbG2Ef+Z31JU04-*0nh8MBooARL z&p?>$+ZgEZ(`-PDt``Q0YV(jv2e4kifrb(Y-r{qe_yzTjz<@t?8vyPB48ZS)K)0b@ zG=O~t#5#iV4jYUC#Hz~%oSlkfd`L0mD=l<(VOL?kheZF_*Wb2T+0mEPvj}3?(Z1 zEoMMTMpY=ufjE{CEmT8+ap8ldkmBSZ=bd>VXB9$#A(<3s2`Oa+W`OyVdq5xX!VX}8 zHqx>(^Z~y>0An6DAzTwO4FXUwO>W3}5g-J?z$ENRUrF=gFx>g zR@MjNUji)N#DBhv^nu7Lft0P~$$WSDAiar_$sl?>2!Txf&)!3YqAq_LdZ<1MMo9A_?&(29iO|Z-5PG z)??L?DAK&oAbBu~8Wh@O5XJ}jxB}_}+>P>OXJYPRIs?SyI0ssY z$NPa_Mo2P(!)kD1`s?kXrvT;`?4SayQci3)i2J(Hfpf(q7d|Qs5Q3=IF$Re=DWNj$ zfF1z^k8;f%fMVk!`S|aqVVDeM;4(4L1rDGA?dw4sjKg3g1Jood`cP~cQd%IX4l9xX z9WEM~dx>&G*530X0GNnyX^@U~v;%J^y>l4VJavZ=AeKww!wWXmFilrvRp!R<5@Q&# zj|F?Lz2QEQjr~A87$sOcmmVup^_UxTpAt?3+{0Lqm$Fh6oOSyD1ZGxIB5UpOKRaTf z9vPs6Y)9#3)LKZA>X61^28ij&B!I05PmVbbqDf@LN)ikw#*Q*4H$Mmbxv|eh8FtG+ z6F9zRHdPKx1*smhI{=uH6|-QCU|4~qlt&#_{UD`&P}XzIArBa!gA}>aybhxQf4vWE zFrsEOS*I!?2B{F4exPsgIUq#`O-xu>|APGYQ|Si^WVSjVjT(|H@jzJeVg6GHpq3q> zyL|%`gw1Ay>Pc**^$A9KA}6kY>?~Cq{)GHxd#k@S=}lr z(D`8#S?UmesK;B-%+ea^0+lWsf^3BsV)!caCr}VngrOp3o07F~zoeMS2={6@T0fl8Abge;SYynSq?UFWMri86 zr|f|pWtgU$BZJ3uc9I}x(C_GxQm+A2CYupeX0wrO)UyMka7Tm1jfw?vT~$; zxle{;gl4T+9{uCVk8ENh7bU2br<1o{W*OaN`s5)M%+U9eMXf-Wmt;pVOJ&0H!dh z{b#|7HMc=Xp1=v6v=Im?C`N+e(+@RFc_SGH(z05l+apB(%7eVr^=K|jzO=)23Z{&G zRnd~a`+f6W=4;@GLkhAX_uZYesNTX&Z=Ts^dY4(<4lZz?ib({=zT3{A3_il0+3b>& zK*9ypyk+G0ph?;?C;sY7ApSDrPmjclOvp;uT?&wneJ5Qjrmr~xG#eG_5d(?bvJlUSuMaFr6Jx4n8UFscB%8YQ zTaUJaC`O(kF^?wcTV3iN*lzA;DWMNFYl}i6=v#h=hB`2Rzx{aS1=A6kgleCBb`a2G zB6l5n&qzox$qyTBsR@l>wO5chg+!$+Lt8`d&A_Bk0W_|eSQAvMaX?<(NkM*gMjkR zeQmm*K*#)0@eO)$w^^{+fZTKnw8N~byr?V}nkpRr+-p-=rXYj}gZUPY`Reb{_WDw@ zA!&#%rA(Fctya0

GS+;6aTwdKV${0;)KPxqLj7$ZKWJ<5zH34|Zn)*Ynq3U;1}w zs=FJr=8S9lL!#=nkU7x6#nt9haawvBb>2I*&hqabYjE+v{h^>}e8yG8t+y1d$=Y>= z5Wg~KMqk;%q&Nm)Dhp5NL)L>T36&2&Om-*s|0vsB^A}q84PmPQ8eE0>G%6w4!S@^M zULdVsI;q`pB*zR~)hSn}BL>)&q&YHF;QnwB$)0F;(H#;|ljVmnd|m{?u^wb2L*oBE zvgS+cdlC2bFX+l+Lv{fnupy7+Hk^O7dv7SE=|hH;5I?NSS4;B>Ji`m8_3S&pyYBL( z$L>!}xYkV}dy5iO`<6nTIKzMX4^$F*DS2Jf3L0Rly?olZY}{h-?ea$c0nXK7{S)+b zze*C?t8(ghnbxCdov@)5vN=<0vY+@BhSlT9)aw`hkn|uHDh~GtKt~gVoVP(8k;mnF z6+{zJ9tcq;gsCK%kWRSJhLne)PoRMu8}ld25W9z#-^-AIfS(Tu3D$2(&gxN7-7`u5 z5T6wn2}Gx&Yp6$C03qKO`|acJ(uP%jfA+S>;QSfn1dthN91HLP&v?!?Qkhp(`@5|z zApQD#6Z7MkmMfhnNdpKz?3OsRTDhi5qk~>bNbYFo>SdXyo1UEOnRFX_T0H`2U)+T@~O z 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 literal 0 HcmV?d00001 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b02912492baa9ca081c55db276b0aa1364135f18 GIT binary patch literal 6804 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 + + + + + #7cc6fe + + + diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..57d75aaccc0b0ae3e3eef15cedc9e040adac19cb GIT binary patch literal 759 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 literal 0 HcmV?d00001 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..f3409df --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https:/docs.grlx.dev/sitemap-index.xml diff --git a/public/safari-pinned-tab.svg b/public/safari-pinned-tab.svg new file mode 100644 index 0000000..4b74591 --- /dev/null +++ b/public/safari-pinned-tab.svg @@ -0,0 +1,70 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..f777860 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "grlx Docs", + "short_name": "grlx Docs", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#bee1ff", + "background_color": "#bee1ff", + "display": "standalone" +} diff --git a/src/assets/adatomic-logotype-color-black-h-1200x302.webp b/src/assets/adatomic-logotype-color-black-h-1200x302.webp new file mode 100644 index 0000000..48acca3 --- /dev/null +++ b/src/assets/adatomic-logotype-color-black-h-1200x302.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d76b99d37649a6864264c4a6e26c4f0dbc50b4bed6de57909ef9b0afab455f4 +size 12632 diff --git a/src/assets/adatomic-logotype-color-white-h-1200x302.webp b/src/assets/adatomic-logotype-color-white-h-1200x302.webp new file mode 100644 index 0000000..ed5b67e --- /dev/null +++ b/src/assets/adatomic-logotype-color-white-h-1200x302.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2602ad5e3d7f2fbe8d1ec3c376c867e0c9f41c1616a3d247b591ab729c8d9b7 +size 11238 diff --git a/src/components/AdatomicFooter.astro b/src/components/AdatomicFooter.astro new file mode 100644 index 0000000..046328c --- /dev/null +++ b/src/components/AdatomicFooter.astro @@ -0,0 +1,35 @@ +--- +import type { Props } from '@astrojs/starlight/props' +import Default from '@astrojs/starlight/components/Footer.astro' +import { Image } from 'astro:assets' +import adatomicLogoBlack from '../assets/adatomic-logotype-color-black-h-1200x302.webp' +import adatomicLogoWhite from '../assets/adatomic-logotype-color-white-h-1200x302.webp' + +const isHomepage = Astro.props.slug === '' +--- + +{ + isHomepage ? ( +

+ + ADAtomic logo + + +

© 2023 ADAtomic, Inc. All rights reserved.

+
+ ) : ( + + + + ) +} diff --git a/src/components/Transitions.astro b/src/components/Transitions.astro index acbe181..4386d67 100644 --- a/src/components/Transitions.astro +++ b/src/components/Transitions.astro @@ -1,7 +1,8 @@ --- -import type { Props } from '@astro/starlight/props'; +import type { Props } from '@astro/starlight/props' import Default from '@astrojs/starlight/components/Head.astro' -import { ViewTransitions } from 'astro:transitions'; +import { ViewTransitions } from 'astro:transitions' --- + < diff --git a/src/content/config.ts b/src/content/config.ts index 9df91b6..4624b9a 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,7 +1,7 @@ -import { defineCollection } from 'astro:content'; -import { docsSchema, i18nSchema } from '@astrojs/starlight/schema'; +import { defineCollection } from 'astro:content' +import { docsSchema, i18nSchema } from '@astrojs/starlight/schema' export const collections = { - docs: defineCollection({ schema: docsSchema() }), - i18n: defineCollection({ type: 'data', schema: i18nSchema() }), -}; + docs: defineCollection({ schema: docsSchema() }), + i18n: defineCollection({ type: 'data', schema: i18nSchema() }), +} diff --git a/src/content/docs/ingredients/service.md b/src/content/docs/ingredients/service.md index 00851de..33e702c 100644 --- a/src/content/docs/ingredients/service.md +++ b/src/content/docs/ingredients/service.md @@ -2,96 +2,124 @@ title: grlx.ingredients.service description: service --- + The `service` ingredient handles the management of system services. Currently, this only supports `systemd` services. ## **service.masked** + Checks if a service is masked and masks it if it is not + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.masked: - - name: ssd-backup - - userMode: true + - name: ssd-backup + - userMode: true ``` ## **service.unmasked** + Checks if a service is unmasked and unmasks it if it is not + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.unmasked: - - name: ssd-backup - - userMode: true + - name: ssd-backup + - userMode: true ``` ## **service.running** + Checks if a service is running and starts it if it is not + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.running: - - name: docker.service - - userMode: false + - name: docker.service + - userMode: false ``` ## **service.stopped** + Checks if a service is stopped and stops it if it is not + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.stopped: - - name: docker.service - - userMode: false + - name: docker.service + - userMode: false ``` ## **service.enabled** + Checks if a service is enabled and enables it if it is not + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.enabled: - - name: cronie.service - - userMode: false + - name: cronie.service + - userMode: false ``` ## **service.disabled** + Checks if a service is disabled and disables it if it is not + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.disabled: - - name: cronie.service - - userMode: false + - name: cronie.service + - userMode: false ``` ## **service.restarted** + Restarts a service + #### Parameters -| parameter | type | required | description | -|-----------|------|----------|-------------| -| _name_ | string | yes | the name of the `systemd` unit -| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false + +| parameter | type | required | description | +| ---------- | ------ | -------- | ------------------------------------------------ | +| _name_ | string | yes | the name of the `systemd` unit | +| _userMode_ | bool | no | to use `systemd` in user mode, defaults to false | + ```yaml service.restarted: - - name: cronie.service - - userMode: false + - name: cronie.service + - userMode: false ``` - diff --git a/src/tailwind.css b/src/tailwind.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/tailwind.config.mjs b/tailwind.config.mjs new file mode 100644 index 0000000..7a7154b --- /dev/null +++ b/tailwind.config.mjs @@ -0,0 +1,37 @@ +import starlightPlugin from '@astrojs/starlight-tailwind' +import defaultTheme from 'tailwindcss/defaultTheme' + +const accent = { + 200: '#bee1ff', + 600: '#2376ed', + 900: '#1d448b', + 950: '#162b55', +} +const gray = { + 100: '#f4f6fa', + 200: '#e9eef5', + 300: '#bcc3ca', + 400: '#818d9c', + 500: '#4e5967', + 700: '#2f3946', + 800: '#1e2834', + 900: '#14191e', +} + +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], + theme: { + fontFamily: { + sans: ['IBM Plex Sans', ...defaultTheme.fontFamily.sans], + mono: ['IBM Plex Mono', ...defaultTheme.fontFamily.mono], + }, + extend: { + colors: { + accent, + gray, + }, + }, + }, + plugins: [starlightPlugin()], +}