diff --git a/README.md b/README.md index 30eb2ef..a862d03 100644 --- a/README.md +++ b/README.md @@ -7,15 +7,16 @@ Personal website created with Astro. ### Features -- [x] HTML layout - [x] Adaptive & Responsive layout - [x] Search articles by title or description - [x] Dark/Light Theme - [x] Multilang web-site +- [x] Prefetch pages via [Quicklink](https://getquick.link/) - [x] Form handling via [Netlify Forms](https://www.netlify.com/products/forms/) - [x] Comment system via [utterances](https://utteranc.es/) - [x] RSS Feed for articles - [x] SEO optimized +- [x] Views counter ## License diff --git a/astro.config.ts b/astro.config.ts index f7c1af2..a57db99 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -100,14 +100,5 @@ export default defineConfig({ ssr: { external: ["svgo"], }, - build: { - rollupOptions: { - output: { - entryFileNames: `[name].[hash].js`, - chunkFileNames: `chunks/[name].[hash].js`, - assetFileNames: `assets/[hash].[ext]`, - }, - }, - }, }, }); diff --git a/netlify/functions/views.ts b/netlify/functions/views.ts index e4e8b20..506b427 100644 --- a/netlify/functions/views.ts +++ b/netlify/functions/views.ts @@ -1,16 +1,9 @@ import { Handler } from "@netlify/functions"; - -import Redis from "ioredis"; - -const redis = new Redis({ - host: process.env.REDIS_HOST, - port: Number.parseInt(process.env.REDIS_PORT || "6379", 10), - password: process.env.REDIS_PASSWORD, -}); +import { redisClient } from "../../redis"; const getViewsBySlug = async (slug: string): Promise => { let views = 1; - const data = await redis.get(`views:${slug}`); + const data = await redisClient.get(`views:${slug}`); if (data) views = Number.parseInt(data, 10); if (Number.isNaN(views)) views = 1; return views; @@ -27,7 +20,7 @@ const handler: Handler = async (event) => { } case "POST": { if (!slug) return { statusCode: 400, body: "Bad request." }; - const views = await redis.incr(`views:${slug}`); + const views = await redisClient.incr(`views:${slug}`); return { statusCode: 200, body: views.toString() }; } default: { diff --git a/package-lock.json b/package-lock.json index 51957be..fd72688 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,31 +1,32 @@ { "name": "yarkov.tech", - "version": "1.0.6", + "version": "1.1.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "yarkov.tech", - "version": "1.0.6", + "version": "1.1.7", "license": "MIT", "dependencies": { "@netlify/functions": "^1.3.0", "ioredis": "^5.2.4", + "quicklink": "^2.3.0", "sharp": "^0.31.2" }, "devDependencies": { - "@astrojs/image": "^0.11.1", - "@astrojs/mdx": "^0.11.5", + "@astrojs/image": "^0.11.6", + "@astrojs/mdx": "^0.11.6", "@astrojs/rss": "^1.0.3", "@astrojs/sitemap": "^1.0.0", - "@astrojs/solid-js": "^1.2.2", + "@astrojs/solid-js": "^1.2.3", "@types/html-escaper": "^3.0.0", "@types/mdx": "^2.0.3", - "@typescript-eslint/eslint-plugin": "^5.42.0", - "@typescript-eslint/parser": "^5.42.0", - "astro": "^1.6.3", + "@typescript-eslint/eslint-plugin": "^5.43.0", + "@typescript-eslint/parser": "^5.43.0", + "astro": "^1.6.10", "astro-icon": "^0.8.0", - "eslint": "^8.26.0", + "eslint": "^8.27.0", "eslint-plugin-solid": "^0.8.0", "hast-util-to-string": "^2.0.0", "hastscript": "^7.1.0", @@ -38,8 +39,8 @@ "rehype-slug": "^5.1.0", "remark-gfm": "^3.0.1", "remark-smartypants": "^2.0.0", - "sass": "^1.56.0", - "solid-js": "^1.6.1" + "sass": "^1.56.1", + "solid-js": "^1.6.2" } }, "node_modules/@altano/tiny-async-pool": { @@ -62,15 +63,15 @@ } }, "node_modules/@astrojs/compiler": { - "version": "0.29.9", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.29.9.tgz", - "integrity": "sha512-/oMQ0z3CJzGg6sv51tQTiHf/ETVsEu8ObN9OA7zs937dQx9Uo4SToYfdw3C4hf6olrLiADuDUsbkKSRe6fLSgA==", + "version": "0.29.17", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.29.17.tgz", + "integrity": "sha512-6ZbRGVunUMHxROD9Cleqkrfrj/kM9o43nLVwycdxCexCB5G372evy2ZM46LhaG/k5B5yC0PByNHTaGny0ll3iQ==", "dev": true }, "node_modules/@astrojs/image": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@astrojs/image/-/image-0.11.1.tgz", - "integrity": "sha512-LgmATS/LfDlHyUzhgPfIIJNC7XGZ9sr01ur1Q+IMDgkCCoplUbN1zBt2DY4M0XZ13QaVF1Ok/tCaMjIbh1pSVA==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@astrojs/image/-/image-0.11.6.tgz", + "integrity": "sha512-/awb4CWvOdoBv896XZcXw+oYEYLezWiaX5Oyk2g4PQ6rEHtZVROj56CFdUbS9ldmIqp3ni7rXNf1XK3dlP5d1A==", "dev": true, "dependencies": { "@altano/tiny-async-pool": "^1.0.2", @@ -92,15 +93,15 @@ } }, "node_modules/@astrojs/language-server": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.26.2.tgz", - "integrity": "sha512-9nkfdd6CMXLDIJojnwbYu5XrYfOI+g63JlktOlpFCwFjFNpm1u0e/+pXXmj6Zs+PkSTo0kV1UM77dRKRS5OC1Q==", + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.28.3.tgz", + "integrity": "sha512-fPovAX/X46eE2w03jNRMpQ7W9m2mAvNt4Ay65lD9wl1Z5vIQYxlg7Enp9qP225muTr4jSVB5QiLumFJmZMAaVA==", "dev": true, "dependencies": { "@vscode/emmet-helper": "^2.8.4", "events": "^3.3.0", "prettier": "^2.7.1", - "prettier-plugin-astro": "^0.5.3", + "prettier-plugin-astro": "^0.7.0", "source-map": "^0.7.3", "vscode-css-languageservice": "^6.0.1", "vscode-html-languageservice": "^5.0.0", @@ -114,44 +115,6 @@ "astro-ls": "bin/nodeServer.js" } }, - "node_modules/@astrojs/language-server/node_modules/@astrojs/compiler": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.23.5.tgz", - "integrity": "sha512-vBMPy9ok4iLapSyCCT1qsZ9dK7LkVFl9mObtLEmWiec9myGHS9h2kQY2xzPeFNJiWXUf9O6tSyQpQTy5As/p3g==", - "dev": true - }, - "node_modules/@astrojs/language-server/node_modules/prettier-plugin-astro": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.5.5.tgz", - "integrity": "sha512-tEJiPjTB1eVT5Czcbkj9GoRG/oMewOnG9x737p/hJUD5QXJmn7LiYFM2dKkX0i4A1fhhsGfXT+uqsAXcw2r8JQ==", - "dev": true, - "dependencies": { - "@astrojs/compiler": "^0.23.4", - "prettier": "^2.7.1", - "sass-formatter": "^0.7.5", - "synckit": "^0.7.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0", - "npm": ">=6.14.0" - } - }, - "node_modules/@astrojs/language-server/node_modules/synckit": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.7.3.tgz", - "integrity": "sha512-jNroMv7Juy+mJ/CHW5H6TzsLWpa1qck6sCHbkv8YTur+irSq2PjbvmGnm2gy14BUQ6jF33vyR4DPssHqmqsDQw==", - "dev": true, - "dependencies": { - "@pkgr/utils": "^2.3.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@astrojs/markdown-remark": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-1.1.3.tgz", @@ -185,12 +148,12 @@ } }, "node_modules/@astrojs/mdx": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-0.11.5.tgz", - "integrity": "sha512-zSlMX5unK4aIfg6NeYzlw0erLtvKpk71FWo11jYsMmmajYSU2JUk6maKWewERXGuVoY2YpC4W4Fl5dPn6jYGdQ==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-0.11.6.tgz", + "integrity": "sha512-MEi8CZuz4vXn74/jCb0CMOAKEqd6nsLrShYfE+ddb1//14CwuaVGbXN7V6/zGj8ZvBhFk/darBbNpJBmzfbI6A==", "dev": true, "dependencies": { - "@astrojs/prism": "^1.0.1", + "@astrojs/prism": "^1.0.2", "@mdx-js/mdx": "^2.1.2", "@mdx-js/rollup": "^2.1.1", "acorn": "^8.8.0", @@ -229,9 +192,9 @@ } }, "node_modules/@astrojs/prism": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.1.tgz", - "integrity": "sha512-HxEFslvbv+cfOs51q/C7aMVFuW3EAGg0d1xXU/0e/QeScDzfrp5Ra4SOb8mV082SgENVjtVvet4zR84t3at4VQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.2.tgz", + "integrity": "sha512-o3cUVoAuALDqdN5puNlsN2eO4Yi1kDh68YO8V7o6U4Ts+J/mMayzlJ7JsgYAmob0xrf/XnADVgu8khfMv/w3uA==", "dev": true, "dependencies": { "prismjs": "^1.28.0" @@ -260,13 +223,13 @@ } }, "node_modules/@astrojs/solid-js": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@astrojs/solid-js/-/solid-js-1.2.2.tgz", - "integrity": "sha512-kC16HKo4LVQfecfRHqRsqaVMQ7wrziege0YieZipuY3HvsX4l3i4O+QCnyHQsJ9W5MMdUvFAtf1IP1nJAdvisA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@astrojs/solid-js/-/solid-js-1.2.3.tgz", + "integrity": "sha512-YyWQVcIeUMGKTnK3myXmBrG6dfYL5qiQNn8fv50jV0nPgahLeSUTIVxtt5WtqmbFr5kGTwDyk63TZoUvCUWJXA==", "dev": true, "dependencies": { "babel-preset-solid": "^1.4.2", - "vitefu": "^0.1.0" + "vitefu": "^0.2.0" }, "engines": { "node": "^14.18.0 || >=16.12.0" @@ -275,6 +238,20 @@ "solid-js": "^1.4.3" } }, + "node_modules/@astrojs/solid-js/node_modules/vitefu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.1.tgz", + "integrity": "sha512-clkvXTAeUf+XQKm3bhWUhT4pye+3acm6YCTGaWhxxIvZZ/QjnA3JA8Zud+z/mO5y5XYvJJhevs5Sjkv/FI8nRw==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/@astrojs/telemetry": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-1.0.1.tgz", @@ -1298,14 +1275,14 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.0.tgz", - "integrity": "sha512-5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.42.0", - "@typescript-eslint/type-utils": "5.42.0", - "@typescript-eslint/utils": "5.42.0", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -1346,14 +1323,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.0.tgz", - "integrity": "sha512-Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3JA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.42.0", - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/typescript-estree": "5.42.0", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "debug": "^4.3.4" }, "engines": { @@ -1373,13 +1350,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.0.tgz", - "integrity": "sha512-l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/visitor-keys": "5.42.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1390,13 +1367,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.0.tgz", - "integrity": "sha512-HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.42.0", - "@typescript-eslint/utils": "5.42.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -1417,9 +1394,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.0.tgz", - "integrity": "sha512-t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1430,13 +1407,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.0.tgz", - "integrity": "sha512-2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTTg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/visitor-keys": "5.42.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1472,16 +1449,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.0.tgz", - "integrity": "sha512-JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnCQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.42.0", - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/typescript-estree": "5.42.0", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -1513,12 +1490,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.0.tgz", - "integrity": "sha512-QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.42.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1745,13 +1722,13 @@ } }, "node_modules/astro": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/astro/-/astro-1.6.3.tgz", - "integrity": "sha512-Om84PLuuF497q1LVMzcr0jI3r0kNoYgdX7W0IVUgVnrNd7ubK11h9zhg/2MHRSui+0vCH3+0hnCnCG6QEd2a2Q==", + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/astro/-/astro-1.6.10.tgz", + "integrity": "sha512-W/ZGROkCKsDicpiXB82n8EkY6I0/12wdXS80NGaBdIUR1jZZxdN+0YMmdz+C2kYbjlo45KUsXpC/Tej+5KQYSQ==", "dev": true, "dependencies": { - "@astrojs/compiler": "^0.29.5", - "@astrojs/language-server": "^0.26.2", + "@astrojs/compiler": "^0.29.15", + "@astrojs/language-server": "^0.28.3", "@astrojs/markdown-remark": "^1.1.3", "@astrojs/telemetry": "^1.0.1", "@astrojs/webapi": "^1.1.1", @@ -1773,7 +1750,6 @@ "debug": "^4.3.4", "deepmerge-ts": "^4.2.2", "diff": "^5.1.0", - "eol": "^0.9.1", "es-module-lexer": "^0.10.5", "esbuild": "^0.14.43", "execa": "^6.1.0", @@ -1808,8 +1784,8 @@ "typescript": "*", "unist-util-visit": "^4.1.0", "vfile": "^5.3.2", - "vite": "~3.2.1", - "vitefu": "^0.1.0", + "vite": "~3.2.4", + "vitefu": "^0.2.1", "yargs-parser": "^21.0.1", "zod": "^3.17.3" }, @@ -1832,12 +1808,6 @@ "svgo": "^2.8.0" } }, - "node_modules/astro/node_modules/@astrojs/compiler": { - "version": "0.29.9", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.29.9.tgz", - "integrity": "sha512-/oMQ0z3CJzGg6sv51tQTiHf/ETVsEu8ObN9OA7zs937dQx9Uo4SToYfdw3C4hf6olrLiADuDUsbkKSRe6fLSgA==", - "dev": true - }, "node_modules/astro/node_modules/semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -1853,6 +1823,20 @@ "node": ">=10" } }, + "node_modules/astro/node_modules/vitefu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.1.tgz", + "integrity": "sha512-clkvXTAeUf+XQKm3bhWUhT4pye+3acm6YCTGaWhxxIvZZ/QjnA3JA8Zud+z/mO5y5XYvJJhevs5Sjkv/FI8nRw==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/babel-plugin-jsx-dom-expressions": { "version": "0.33.14", "resolved": "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.33.14.tgz", @@ -2801,12 +2785,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", - "dev": true - }, "node_modules/es-abstract": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", @@ -3248,9 +3226,9 @@ } }, "node_modules/eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.3", @@ -5276,8 +5254,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -5519,6 +5496,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6978,6 +6967,15 @@ "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==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -7532,6 +7530,17 @@ "node": ">=6" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "peer": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/property-information": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", @@ -7589,6 +7598,19 @@ } ] }, + "node_modules/quicklink": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/quicklink/-/quicklink-2.3.0.tgz", + "integrity": "sha512-FyTanYArl5Gz2/C0ZjErvfFJtem/+d1RM4eK0jiXO6mL4Zjje+xsYtcK3ZtKX2Yb3HSfah5HekWrH2qhttYQjQ==", + "dependencies": { + "route-manifest": "^1.0.0", + "throttles": "^1.0.0" + }, + "peerDependencies": { + "react": "^16.8.0", + "react-dom": "^16.8.0" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -7611,6 +7633,41 @@ "node": ">=0.10.0" } }, + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "peer": true + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -7696,6 +7753,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexparam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz", + "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==", + "engines": { + "node": ">=6" + } + }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -8153,6 +8218,17 @@ "fsevents": "~2.3.2" } }, + "node_modules/route-manifest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/route-manifest/-/route-manifest-1.0.0.tgz", + "integrity": "sha512-qn0xJr4nnF4caj0erOLLAHYiNyzqhzpUbgDQcEHrmBoG4sWCDLnIXLH7VccNSxe9cWgbP2Kw/OjME+eH3CeRSA==", + "dependencies": { + "regexparam": "^1.3.0" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8200,9 +8276,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -8231,6 +8307,16 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -8483,9 +8569,9 @@ } }, "node_modules/solid-js": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.6.1.tgz", - "integrity": "sha512-i8OmR419Hr0918Or6sm1ET/cgmxTtAB7Bdz/UwhZ7G2THixrvVSO3jd+C7YqMKKfVwmf8PJ2gUSbKE8NKv28GA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.6.2.tgz", + "integrity": "sha512-AZBsj+Yn1xliniTTeuQKG9V7VQVkQ8lZmSKvBjpcVSoZeF7nvt/N5f7Kcsx6QSufioa2YgvBjkIiA0cM0qhotw==", "dev": true, "dependencies": { "csstype": "^3.1.0" @@ -8945,6 +9031,14 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/throttles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttles/-/throttles-1.0.1.tgz", + "integrity": "sha512-fab7Xg+zELr9KOv4fkaBoe/b3L0GMGLd0IBSCn16GoE/Qx6/OfCr1eGNyEcDU2pUA79qQfZ8kPQWlRuok4YwTw==", + "engines": { + "node": ">=6" + } + }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -9452,9 +9546,9 @@ } }, "node_modules/vite": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", - "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", + "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", "dev": true, "dependencies": { "esbuild": "^0.15.9", @@ -9472,6 +9566,7 @@ "fsevents": "~2.3.2" }, "peerDependencies": { + "@types/node": ">= 14", "less": "*", "sass": "*", "stylus": "*", @@ -9479,6 +9574,9 @@ "terser": "^5.4.0" }, "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, "less": { "optional": true }, @@ -9869,23 +9967,6 @@ "node": ">=12" } }, - "node_modules/vitefu": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.1.0.tgz", - "integrity": "sha512-5MQSHP9yr0HIve8q4XNb7QXfO1P4tzZDZP99qH0FM5ClcwYddeGXRDQ4TQYRUeXLjZ+vLecirHtGNpwFFUF7sw==", - "dev": true, - "dependencies": { - "import-meta-resolve": "^2.1.0" - }, - "peerDependencies": { - "vite": "^3.0.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, "node_modules/vscode-css-languageservice": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.1.1.tgz", @@ -10189,15 +10270,15 @@ } }, "@astrojs/compiler": { - "version": "0.29.9", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.29.9.tgz", - "integrity": "sha512-/oMQ0z3CJzGg6sv51tQTiHf/ETVsEu8ObN9OA7zs937dQx9Uo4SToYfdw3C4hf6olrLiADuDUsbkKSRe6fLSgA==", + "version": "0.29.17", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.29.17.tgz", + "integrity": "sha512-6ZbRGVunUMHxROD9Cleqkrfrj/kM9o43nLVwycdxCexCB5G372evy2ZM46LhaG/k5B5yC0PByNHTaGny0ll3iQ==", "dev": true }, "@astrojs/image": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@astrojs/image/-/image-0.11.1.tgz", - "integrity": "sha512-LgmATS/LfDlHyUzhgPfIIJNC7XGZ9sr01ur1Q+IMDgkCCoplUbN1zBt2DY4M0XZ13QaVF1Ok/tCaMjIbh1pSVA==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@astrojs/image/-/image-0.11.6.tgz", + "integrity": "sha512-/awb4CWvOdoBv896XZcXw+oYEYLezWiaX5Oyk2g4PQ6rEHtZVROj56CFdUbS9ldmIqp3ni7rXNf1XK3dlP5d1A==", "dev": true, "requires": { "@altano/tiny-async-pool": "^1.0.2", @@ -10211,15 +10292,15 @@ } }, "@astrojs/language-server": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.26.2.tgz", - "integrity": "sha512-9nkfdd6CMXLDIJojnwbYu5XrYfOI+g63JlktOlpFCwFjFNpm1u0e/+pXXmj6Zs+PkSTo0kV1UM77dRKRS5OC1Q==", + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.28.3.tgz", + "integrity": "sha512-fPovAX/X46eE2w03jNRMpQ7W9m2mAvNt4Ay65lD9wl1Z5vIQYxlg7Enp9qP225muTr4jSVB5QiLumFJmZMAaVA==", "dev": true, "requires": { "@vscode/emmet-helper": "^2.8.4", "events": "^3.3.0", "prettier": "^2.7.1", - "prettier-plugin-astro": "^0.5.3", + "prettier-plugin-astro": "^0.7.0", "source-map": "^0.7.3", "vscode-css-languageservice": "^6.0.1", "vscode-html-languageservice": "^5.0.0", @@ -10228,36 +10309,6 @@ "vscode-languageserver-textdocument": "^1.0.4", "vscode-languageserver-types": "^3.17.1", "vscode-uri": "^3.0.3" - }, - "dependencies": { - "@astrojs/compiler": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.23.5.tgz", - "integrity": "sha512-vBMPy9ok4iLapSyCCT1qsZ9dK7LkVFl9mObtLEmWiec9myGHS9h2kQY2xzPeFNJiWXUf9O6tSyQpQTy5As/p3g==", - "dev": true - }, - "prettier-plugin-astro": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.5.5.tgz", - "integrity": "sha512-tEJiPjTB1eVT5Czcbkj9GoRG/oMewOnG9x737p/hJUD5QXJmn7LiYFM2dKkX0i4A1fhhsGfXT+uqsAXcw2r8JQ==", - "dev": true, - "requires": { - "@astrojs/compiler": "^0.23.4", - "prettier": "^2.7.1", - "sass-formatter": "^0.7.5", - "synckit": "^0.7.0" - } - }, - "synckit": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.7.3.tgz", - "integrity": "sha512-jNroMv7Juy+mJ/CHW5H6TzsLWpa1qck6sCHbkv8YTur+irSq2PjbvmGnm2gy14BUQ6jF33vyR4DPssHqmqsDQw==", - "dev": true, - "requires": { - "@pkgr/utils": "^2.3.0", - "tslib": "^2.4.0" - } - } } }, "@astrojs/markdown-remark": { @@ -10293,12 +10344,12 @@ } }, "@astrojs/mdx": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-0.11.5.tgz", - "integrity": "sha512-zSlMX5unK4aIfg6NeYzlw0erLtvKpk71FWo11jYsMmmajYSU2JUk6maKWewERXGuVoY2YpC4W4Fl5dPn6jYGdQ==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-0.11.6.tgz", + "integrity": "sha512-MEi8CZuz4vXn74/jCb0CMOAKEqd6nsLrShYfE+ddb1//14CwuaVGbXN7V6/zGj8ZvBhFk/darBbNpJBmzfbI6A==", "dev": true, "requires": { - "@astrojs/prism": "^1.0.1", + "@astrojs/prism": "^1.0.2", "@mdx-js/mdx": "^2.1.2", "@mdx-js/rollup": "^2.1.1", "acorn": "^8.8.0", @@ -10334,9 +10385,9 @@ } }, "@astrojs/prism": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.1.tgz", - "integrity": "sha512-HxEFslvbv+cfOs51q/C7aMVFuW3EAGg0d1xXU/0e/QeScDzfrp5Ra4SOb8mV082SgENVjtVvet4zR84t3at4VQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.2.tgz", + "integrity": "sha512-o3cUVoAuALDqdN5puNlsN2eO4Yi1kDh68YO8V7o6U4Ts+J/mMayzlJ7JsgYAmob0xrf/XnADVgu8khfMv/w3uA==", "dev": true, "requires": { "prismjs": "^1.28.0" @@ -10362,13 +10413,22 @@ } }, "@astrojs/solid-js": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@astrojs/solid-js/-/solid-js-1.2.2.tgz", - "integrity": "sha512-kC16HKo4LVQfecfRHqRsqaVMQ7wrziege0YieZipuY3HvsX4l3i4O+QCnyHQsJ9W5MMdUvFAtf1IP1nJAdvisA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@astrojs/solid-js/-/solid-js-1.2.3.tgz", + "integrity": "sha512-YyWQVcIeUMGKTnK3myXmBrG6dfYL5qiQNn8fv50jV0nPgahLeSUTIVxtt5WtqmbFr5kGTwDyk63TZoUvCUWJXA==", "dev": true, "requires": { "babel-preset-solid": "^1.4.2", - "vitefu": "^0.1.0" + "vitefu": "^0.2.0" + }, + "dependencies": { + "vitefu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.1.tgz", + "integrity": "sha512-clkvXTAeUf+XQKm3bhWUhT4pye+3acm6YCTGaWhxxIvZZ/QjnA3JA8Zud+z/mO5y5XYvJJhevs5Sjkv/FI8nRw==", + "dev": true, + "requires": {} + } } }, "@astrojs/telemetry": { @@ -11196,14 +11256,14 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.0.tgz", - "integrity": "sha512-5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.42.0", - "@typescript-eslint/type-utils": "5.42.0", - "@typescript-eslint/utils": "5.42.0", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -11224,53 +11284,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.0.tgz", - "integrity": "sha512-Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3JA==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.42.0", - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/typescript-estree": "5.42.0", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.0.tgz", - "integrity": "sha512-l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/visitor-keys": "5.42.0" + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" } }, "@typescript-eslint/type-utils": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.0.tgz", - "integrity": "sha512-HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.42.0", - "@typescript-eslint/utils": "5.42.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.0.tgz", - "integrity": "sha512-t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.0.tgz", - "integrity": "sha512-2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTTg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/visitor-keys": "5.42.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -11290,16 +11350,16 @@ } }, "@typescript-eslint/utils": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.0.tgz", - "integrity": "sha512-JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnCQ==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.42.0", - "@typescript-eslint/types": "5.42.0", - "@typescript-eslint/typescript-estree": "5.42.0", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -11317,12 +11377,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.0.tgz", - "integrity": "sha512-QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.42.0", + "@typescript-eslint/types": "5.43.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -11494,13 +11554,13 @@ "dev": true }, "astro": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/astro/-/astro-1.6.3.tgz", - "integrity": "sha512-Om84PLuuF497q1LVMzcr0jI3r0kNoYgdX7W0IVUgVnrNd7ubK11h9zhg/2MHRSui+0vCH3+0hnCnCG6QEd2a2Q==", + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/astro/-/astro-1.6.10.tgz", + "integrity": "sha512-W/ZGROkCKsDicpiXB82n8EkY6I0/12wdXS80NGaBdIUR1jZZxdN+0YMmdz+C2kYbjlo45KUsXpC/Tej+5KQYSQ==", "dev": true, "requires": { - "@astrojs/compiler": "^0.29.5", - "@astrojs/language-server": "^0.26.2", + "@astrojs/compiler": "^0.29.15", + "@astrojs/language-server": "^0.28.3", "@astrojs/markdown-remark": "^1.1.3", "@astrojs/telemetry": "^1.0.1", "@astrojs/webapi": "^1.1.1", @@ -11522,7 +11582,6 @@ "debug": "^4.3.4", "deepmerge-ts": "^4.2.2", "diff": "^5.1.0", - "eol": "^0.9.1", "es-module-lexer": "^0.10.5", "esbuild": "^0.14.43", "execa": "^6.1.0", @@ -11557,18 +11616,12 @@ "typescript": "*", "unist-util-visit": "^4.1.0", "vfile": "^5.3.2", - "vite": "~3.2.1", - "vitefu": "^0.1.0", + "vite": "~3.2.4", + "vitefu": "^0.2.1", "yargs-parser": "^21.0.1", "zod": "^3.17.3" }, "dependencies": { - "@astrojs/compiler": { - "version": "0.29.9", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.29.9.tgz", - "integrity": "sha512-/oMQ0z3CJzGg6sv51tQTiHf/ETVsEu8ObN9OA7zs937dQx9Uo4SToYfdw3C4hf6olrLiADuDUsbkKSRe6fLSgA==", - "dev": true - }, "semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -11577,6 +11630,13 @@ "requires": { "lru-cache": "^6.0.0" } + }, + "vitefu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.1.tgz", + "integrity": "sha512-clkvXTAeUf+XQKm3bhWUhT4pye+3acm6YCTGaWhxxIvZZ/QjnA3JA8Zud+z/mO5y5XYvJJhevs5Sjkv/FI8nRw==", + "dev": true, + "requires": {} } } }, @@ -12268,12 +12328,6 @@ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, - "eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", - "dev": true - }, "es-abstract": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", @@ -12510,9 +12564,9 @@ "dev": true }, "eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.3", @@ -13979,8 +14033,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "4.1.0", @@ -14165,6 +14218,15 @@ "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==", "dev": true }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -15155,6 +15217,12 @@ "boolbase": "^1.0.0" } }, + "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==", + "peer": true + }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -15538,6 +15606,17 @@ } } }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "peer": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "property-information": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", @@ -15574,6 +15653,15 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quicklink": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/quicklink/-/quicklink-2.3.0.tgz", + "integrity": "sha512-FyTanYArl5Gz2/C0ZjErvfFJtem/+d1RM4eK0jiXO6mL4Zjje+xsYtcK3ZtKX2Yb3HSfah5HekWrH2qhttYQjQ==", + "requires": { + "route-manifest": "^1.0.0", + "throttles": "^1.0.0" + } + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -15592,6 +15680,35 @@ } } }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "peer": true + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -15655,6 +15772,11 @@ "functions-have-names": "^1.2.2" } }, + "regexparam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz", + "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==" + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -15995,6 +16117,14 @@ "fsevents": "~2.3.2" } }, + "route-manifest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/route-manifest/-/route-manifest-1.0.0.tgz", + "integrity": "sha512-qn0xJr4nnF4caj0erOLLAHYiNyzqhzpUbgDQcEHrmBoG4sWCDLnIXLH7VccNSxe9cWgbP2Kw/OjME+eH3CeRSA==", + "requires": { + "regexparam": "^1.3.0" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -16025,9 +16155,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -16050,6 +16180,16 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -16224,9 +16364,9 @@ "dev": true }, "solid-js": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.6.1.tgz", - "integrity": "sha512-i8OmR419Hr0918Or6sm1ET/cgmxTtAB7Bdz/UwhZ7G2THixrvVSO3jd+C7YqMKKfVwmf8PJ2gUSbKE8NKv28GA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.6.2.tgz", + "integrity": "sha512-AZBsj+Yn1xliniTTeuQKG9V7VQVkQ8lZmSKvBjpcVSoZeF7nvt/N5f7Kcsx6QSufioa2YgvBjkIiA0cM0qhotw==", "dev": true, "requires": { "csstype": "^3.1.0" @@ -16572,6 +16712,11 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "throttles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttles/-/throttles-1.0.1.tgz", + "integrity": "sha512-fab7Xg+zELr9KOv4fkaBoe/b3L0GMGLd0IBSCn16GoE/Qx6/OfCr1eGNyEcDU2pUA79qQfZ8kPQWlRuok4YwTw==" + }, "tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -16923,9 +17068,9 @@ } }, "vite": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.2.tgz", - "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", + "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", "dev": true, "requires": { "esbuild": "^0.15.9", @@ -17114,15 +17259,6 @@ } } }, - "vitefu": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.1.0.tgz", - "integrity": "sha512-5MQSHP9yr0HIve8q4XNb7QXfO1P4tzZDZP99qH0FM5ClcwYddeGXRDQ4TQYRUeXLjZ+vLecirHtGNpwFFUF7sw==", - "dev": true, - "requires": { - "import-meta-resolve": "^2.1.0" - } - }, "vscode-css-languageservice": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.1.1.tgz", diff --git a/package.json b/package.json index 68dee63..67fc6a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yarkov.tech", - "version": "1.1.7", + "version": "1.2.7", "private": true, "description": "Personal website created with Astro.", "author": { @@ -19,18 +19,18 @@ "lint": "eslint '**/*.{js,mjs,ts,tsx}'" }, "devDependencies": { - "@astrojs/image": "^0.11.1", - "@astrojs/mdx": "^0.11.5", + "@astrojs/image": "^0.11.6", + "@astrojs/mdx": "^0.11.6", "@astrojs/rss": "^1.0.3", "@astrojs/sitemap": "^1.0.0", - "@astrojs/solid-js": "^1.2.2", + "@astrojs/solid-js": "^1.2.3", "@types/html-escaper": "^3.0.0", "@types/mdx": "^2.0.3", - "@typescript-eslint/eslint-plugin": "^5.42.0", - "@typescript-eslint/parser": "^5.42.0", - "astro": "^1.6.3", + "@typescript-eslint/eslint-plugin": "^5.43.0", + "@typescript-eslint/parser": "^5.43.0", + "astro": "^1.6.10", "astro-icon": "^0.8.0", - "eslint": "^8.26.0", + "eslint": "^8.27.0", "eslint-plugin-solid": "^0.8.0", "hast-util-to-string": "^2.0.0", "hastscript": "^7.1.0", @@ -43,12 +43,13 @@ "rehype-slug": "^5.1.0", "remark-gfm": "^3.0.1", "remark-smartypants": "^2.0.0", - "sass": "^1.56.0", - "solid-js": "^1.6.1" + "sass": "^1.56.1", + "solid-js": "^1.6.2" }, "dependencies": { "@netlify/functions": "^1.3.0", "ioredis": "^5.2.4", + "quicklink": "^2.3.0", "sharp": "^0.31.2" } } diff --git a/redis.ts b/redis.ts new file mode 100644 index 0000000..52f4e9f --- /dev/null +++ b/redis.ts @@ -0,0 +1,9 @@ +import Redis from "ioredis"; + +const redisClient = new Redis({ + host: process.env.REDIS_HOST, + port: Number.parseInt(process.env.REDIS_PORT || "6379", 10), + password: process.env.REDIS_PASSWORD, +}); + +export { redisClient }; diff --git a/src/components/ArticleComments/ArticleComments.astro b/src/components/ArticleComments/ArticleComments.astro index 08dbf3b..05fee3d 100644 --- a/src/components/ArticleComments/ArticleComments.astro +++ b/src/components/ArticleComments/ArticleComments.astro @@ -20,7 +20,7 @@ import UIString from "../UIString"; $commentsScript.setAttribute("crossorigin", "anonymous"); if (window.theme) { - $commentsScript.setAttribute("theme", theme === "dark" ? "dark-blue" : "github-light"); + $commentsScript.setAttribute("theme", window.theme === "dark" ? "dark-blue" : "github-light"); } else { $commentsScript.setAttribute("theme", "github-light"); } diff --git a/src/components/ArticlePost/ArticlePost.astro b/src/components/ArticlePost/ArticlePost.astro index c1d951a..70eb567 100644 --- a/src/components/ArticlePost/ArticlePost.astro +++ b/src/components/ArticlePost/ArticlePost.astro @@ -84,6 +84,7 @@ const t = useTranslation(Astro); const views = await response.text(); const $views = document.getElementById("views"); + if (isNaN(parseInt(views, 10))) return; if ($views) $views.textContent = views; })(); diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro index 5db2629..616677a 100644 --- a/src/components/BaseHead.astro +++ b/src/components/BaseHead.astro @@ -51,4 +51,5 @@ const { title = SITE_METADATA.title, description, canonicalUrl } = Astro.props a + diff --git a/src/lib/api.ts b/src/lib/api.ts index 03ffedf..bbd2784 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -46,14 +46,16 @@ export function fetchTranslatedArticles(Astro: Readonly): MDXInstan return utils.getPublishedArticles(articles); } -export async function fetchAboutMe(Astro: Readonly): Promise> { +export async function fetchAboutMe(Astro: Readonly): Promise>> { const lang = getLanguageFromURL(Astro.url.pathname); - let markdown: MDXInstance<{}> | undefined; + let markdown: MDXInstance> | undefined; try { - markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance<{}>; + markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance>; } catch (error) { - markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance<{}>; + markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance< + Record + >; } return markdown; diff --git a/src/quicklink.js b/src/quicklink.js new file mode 100644 index 0000000..7294f2e --- /dev/null +++ b/src/quicklink.js @@ -0,0 +1,5 @@ +import { listen } from "quicklink/dist/quicklink.mjs"; +window.addEventListener("load", () => { + listen({ el: document.querySelector("body > header") }); + listen({ el: document.querySelector("body > main article header") }); +});