From 6e85644bab82583285d8627ce7dabe40ad7c141a Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Wed, 8 Nov 2023 12:28:18 -0800 Subject: [PATCH 1/7] Upgrading all packages, added meta tags for SEO, and refactored SEO to use the new package. --- package.json | 37 +- pnpm-lock.yaml | 885 +++++++++++++++------------ src/routes/+layout.svelte | 31 +- src/routes/+page.server.ts | 29 +- src/routes/about/+page.svelte | 2 +- src/routes/about/+page.ts | 19 + src/routes/portfolio/+page.server.ts | 19 + src/routes/portfolio/+page.svelte | 4 +- src/routes/privacy/+page.svelte | 4 +- src/routes/privacy/+page.ts | 19 + src/routes/uses/+page.ts | 19 + svelte.config.js | 7 +- 12 files changed, 635 insertions(+), 440 deletions(-) diff --git a/package.json b/package.json index 211c171..895dac0 100644 --- a/package.json +++ b/package.json @@ -15,51 +15,52 @@ "test:unit": "vitest" }, "devDependencies": { - "@iconify-icons/material-symbols": "^1.2.56", - "@iconify-icons/mdi": "^1.2.47", + "@iconify-icons/material-symbols": "^1.2.58", + "@iconify-icons/mdi": "^1.2.48", "@iconify-icons/radix-icons": "^1.2.9", - "@iconify-icons/simple-icons": "^1.2.70", + "@iconify-icons/simple-icons": "^1.2.74", "@melt-ui/pp": "^0.1.2", - "@playwright/test": "^1.28.1", + "@playwright/test": "^1.39.0", "@sveltejs/adapter-static": "^2.0.3", "@sveltejs/adapter-vercel": "^1.0.6", - "@sveltejs/kit": "^1.25.1", + "@sveltejs/kit": "^1.27.3", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@zerodevx/svelte-img": "^2.1.0", "autoprefixer": "^10.4.16", - "eslint": "^8.45.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-svelte": "^2.32.2", + "eslint": "^8.53.0", + "eslint-config-prettier": "^8.10.0", + "eslint-plugin-svelte": "^2.35.0", "iconify-icon": "^1.0.8", "just-intersect": "^4.3.0", "mdsvex": "^0.10.6", "mdsvex-relative-images": "^1.0.3", - "postcss": "^8.4.30", + "postcss": "^8.4.31", "postcss-import": "^15.1.0", "postcss-load-config": "^4.0.1", "postcss-preset-env": "^8.5.1", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.1", - "sass": "^1.65.1", - "scrape-it": "^6.0.1", + "sass": "^1.69.5", + "scrape-it": "^6.1.0", "sharp": "^0.32.6", - "svelte": "^4.2.1", - "svelte-check": "^3.4.6", + "svelte": "^4.2.2", + "svelte-check": "^3.5.2", "svelte-lazy-loader": "^1.0.0", + "svelte-meta-tags": "^3.0.4", "svelte-preprocess": "^5.0.4", "svelte-sequential-preprocessor": "^2.0.1", "tslib": "^2.6.2", "typescript": "^5.2.2", - "vanilla-lazyload": "^17.8.4", - "vite": "^4.4.9", - "vite-imagetools": "^5.0.8", + "vanilla-lazyload": "^17.8.5", + "vite": "^4.5.0", + "vite-imagetools": "^5.1.2", "vitest": "^0.32.2" }, "type": "module", "dependencies": { - "@melt-ui/svelte": "^0.50.0", - "@types/nprogress": "^0.2.1", + "@melt-ui/svelte": "^0.50.1", + "@types/nprogress": "^0.2.3", "ioredis": "^5.3.2", "nprogress": "^0.2.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 627b70a..e2fff21 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: dependencies: '@melt-ui/svelte': - specifier: ^0.50.0 - version: 0.50.0(svelte@4.2.1) + specifier: ^0.50.1 + version: 0.50.1(svelte@4.2.2) '@types/nprogress': - specifier: ^0.2.1 - version: 0.2.1 + specifier: ^0.2.3 + version: 0.2.3 ioredis: specifier: ^5.3.2 version: 5.3.2 @@ -20,53 +20,53 @@ dependencies: devDependencies: '@iconify-icons/material-symbols': - specifier: ^1.2.56 - version: 1.2.56 + specifier: ^1.2.58 + version: 1.2.58 '@iconify-icons/mdi': - specifier: ^1.2.47 - version: 1.2.47 + specifier: ^1.2.48 + version: 1.2.48 '@iconify-icons/radix-icons': specifier: ^1.2.9 version: 1.2.9 '@iconify-icons/simple-icons': - specifier: ^1.2.70 - version: 1.2.70 + specifier: ^1.2.74 + version: 1.2.74 '@melt-ui/pp': specifier: ^0.1.2 - version: 0.1.2(@melt-ui/svelte@0.50.0)(svelte@4.2.1) + version: 0.1.2(@melt-ui/svelte@0.50.1)(svelte@4.2.2) '@playwright/test': - specifier: ^1.28.1 - version: 1.36.2 + specifier: ^1.39.0 + version: 1.39.0 '@sveltejs/adapter-static': specifier: ^2.0.3 - version: 2.0.3(@sveltejs/kit@1.25.1) + version: 2.0.3(@sveltejs/kit@1.27.3) '@sveltejs/adapter-vercel': specifier: ^1.0.6 - version: 1.0.6(@sveltejs/kit@1.25.1) + version: 1.0.6(@sveltejs/kit@1.27.3) '@sveltejs/kit': - specifier: ^1.25.1 - version: 1.25.1(svelte@4.2.1)(vite@4.4.9) + specifier: ^1.27.3 + version: 1.27.3(svelte@4.2.2)(vite@4.5.0) '@typescript-eslint/eslint-plugin': specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.2.2) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/parser': specifier: ^5.62.0 - version: 5.62.0(eslint@8.45.0)(typescript@5.2.2) + version: 5.62.0(eslint@8.53.0)(typescript@5.2.2) '@zerodevx/svelte-img': specifier: ^2.1.0 - version: 2.1.0(svelte@4.2.1) + version: 2.1.0(svelte@4.2.2) autoprefixer: specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.30) + version: 10.4.16(postcss@8.4.31) eslint: - specifier: ^8.45.0 - version: 8.45.0 + specifier: ^8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: ^8.8.0 - version: 8.8.0(eslint@8.45.0) + specifier: ^8.10.0 + version: 8.10.0(eslint@8.53.0) eslint-plugin-svelte: - specifier: ^2.32.2 - version: 2.32.2(eslint@8.45.0)(svelte@4.2.1) + specifier: ^2.35.0 + version: 2.35.0(eslint@8.53.0)(svelte@4.2.2) iconify-icon: specifier: ^1.0.8 version: 1.0.8 @@ -75,49 +75,52 @@ devDependencies: version: 4.3.0 mdsvex: specifier: ^0.10.6 - version: 0.10.6(svelte@4.2.1) + version: 0.10.6(svelte@4.2.2) mdsvex-relative-images: specifier: ^1.0.3 version: 1.0.3 postcss: - specifier: ^8.4.30 - version: 8.4.30 + specifier: ^8.4.31 + version: 8.4.31 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.30) + version: 15.1.0(postcss@8.4.31) postcss-load-config: specifier: ^4.0.1 - version: 4.0.1(postcss@8.4.30) + version: 4.0.1(postcss@8.4.31) postcss-preset-env: specifier: ^8.5.1 - version: 8.5.1(postcss@8.4.30) + version: 8.5.1(postcss@8.4.31) prettier: specifier: ^2.8.8 version: 2.8.8 prettier-plugin-svelte: specifier: ^2.10.1 - version: 2.10.1(prettier@2.8.8)(svelte@4.2.1) + version: 2.10.1(prettier@2.8.8)(svelte@4.2.2) sass: - specifier: ^1.65.1 - version: 1.65.1 + specifier: ^1.69.5 + version: 1.69.5 scrape-it: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.1.0 + version: 6.1.0 sharp: specifier: ^0.32.6 version: 0.32.6 svelte: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^4.2.2 + version: 4.2.2 svelte-check: - specifier: ^3.4.6 - version: 3.4.6(postcss-load-config@4.0.1)(postcss@8.4.30)(sass@1.65.1)(svelte@4.2.1) + specifier: ^3.5.2 + version: 3.5.2(postcss-load-config@4.0.1)(postcss@8.4.31)(sass@1.69.5)(svelte@4.2.2) svelte-lazy-loader: specifier: ^1.0.0 version: 1.0.0 + svelte-meta-tags: + specifier: ^3.0.4 + version: 3.0.4(svelte@4.2.2)(typescript@5.2.2) svelte-preprocess: specifier: ^5.0.4 - version: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.30)(sass@1.65.1)(svelte@4.2.1)(typescript@5.2.2) + version: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.31)(sass@1.69.5)(svelte@4.2.2)(typescript@5.2.2) svelte-sequential-preprocessor: specifier: ^2.0.1 version: 2.0.1 @@ -128,17 +131,17 @@ devDependencies: specifier: ^5.2.2 version: 5.2.2 vanilla-lazyload: - specifier: ^17.8.4 - version: 17.8.4 + specifier: ^17.8.5 + version: 17.8.5 vite: - specifier: ^4.4.9 - version: 4.4.9(@types/node@20.7.0)(sass@1.65.1) + specifier: ^4.5.0 + version: 4.5.0(@types/node@20.7.0)(sass@1.69.5) vite-imagetools: - specifier: ^5.0.8 - version: 5.0.8 + specifier: ^5.1.2 + version: 5.1.2 vitest: specifier: ^0.32.2 - version: 0.32.4(sass@1.65.1) + version: 0.32.4(sass@1.69.5) packages: @@ -276,18 +279,18 @@ packages: '@csstools/css-tokenizer': 2.1.1 dev: true - /@csstools/postcss-cascade-layers@3.0.1(postcss@8.4.30): + /@csstools/postcss-cascade-layers@3.0.1(postcss@8.4.31): resolution: {integrity: sha512-dD8W98dOYNOH/yX4V4HXOhfCOnvVAg8TtsL+qCGNoKXuq5z2C/d026wGWgySgC8cajXXo/wNezS31Glj5GcqrA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 2.1.1(postcss-selector-parser@6.0.13)(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/selector-specificity': 2.1.1(postcss-selector-parser@6.0.13)(postcss@8.4.31) + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-color-function@2.2.3(postcss@8.4.30): + /@csstools/postcss-color-function@2.2.3(postcss@8.4.31): resolution: {integrity: sha512-b1ptNkr1UWP96EEHqKBWWaV5m/0hgYGctgA/RVZhONeP1L3T/8hwoqDm9bB23yVCfOgE9U93KI9j06+pEkJTvw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -296,11 +299,11 @@ packages: '@csstools/css-color-parser': 1.2.0(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /@csstools/postcss-color-mix-function@1.0.3(postcss@8.4.30): + /@csstools/postcss-color-mix-function@1.0.3(postcss@8.4.31): resolution: {integrity: sha512-QGXjGugTluqFZWzVf+S3wCiRiI0ukXlYqCi7OnpDotP/zaVTyl/aqZujLFzTOXy24BoWnu89frGMc79ohY5eog==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -309,21 +312,21 @@ packages: '@csstools/css-color-parser': 1.2.0(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /@csstools/postcss-font-format-keywords@2.0.2(postcss@8.4.30): + /@csstools/postcss-font-format-keywords@2.0.2(postcss@8.4.31): resolution: {integrity: sha512-iKYZlIs6JsNT7NKyRjyIyezTCHLh4L4BBB3F5Nx7Dc4Z/QmBgX+YJFuUSar8IM6KclGiAUFGomXFdYxAwJydlA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-gradients-interpolation-method@3.0.6(postcss@8.4.30): + /@csstools/postcss-gradients-interpolation-method@3.0.6(postcss@8.4.31): resolution: {integrity: sha512-rBOBTat/YMmB0G8VHwKqDEx+RZ4KCU9j42K8LwS0IpZnyThalZZF7BCSsZ6TFlZhcRZKlZy3LLFI2pLqjNVGGA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -332,11 +335,11 @@ packages: '@csstools/css-color-parser': 1.2.0(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /@csstools/postcss-hwb-function@2.2.2(postcss@8.4.30): + /@csstools/postcss-hwb-function@2.2.2(postcss@8.4.31): resolution: {integrity: sha512-W5Y5oaJ382HSlbdGfPf60d7dAK6Hqf10+Be1yZbd/TNNrQ/3dDdV1c07YwOXPQ3PZ6dvFMhxbIbn8EC3ki3nEg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -345,61 +348,61 @@ packages: '@csstools/css-color-parser': 1.2.0(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-ic-unit@2.0.4(postcss@8.4.30): + /@csstools/postcss-ic-unit@2.0.4(postcss@8.4.31): resolution: {integrity: sha512-9W2ZbV7whWnr1Gt4qYgxMWzbevZMOvclUczT5vk4yR6vS53W/njiiUhtm/jh/BKYwQ1W3PECZjgAd2dH4ebJig==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-is-pseudo-class@3.2.1(postcss@8.4.30): + /@csstools/postcss-is-pseudo-class@3.2.1(postcss@8.4.31): resolution: {integrity: sha512-AtANdV34kJl04Al62is3eQRk/BfOfyAvEmRJvbt+nx5REqImLC+2XhuE6skgkcPli1l8ONS67wS+l1sBzySc3Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.13) - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-logical-float-and-clear@1.0.1(postcss@8.4.30): + /@csstools/postcss-logical-float-and-clear@1.0.1(postcss@8.4.31): resolution: {integrity: sha512-eO9z2sMLddvlfFEW5Fxbjyd03zaO7cJafDurK4rCqyRt9P7aaWwha0LcSzoROlcZrw1NBV2JAp2vMKfPMQO1xw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-logical-resize@1.0.1(postcss@8.4.30): + /@csstools/postcss-logical-resize@1.0.1(postcss@8.4.31): resolution: {integrity: sha512-x1ge74eCSvpBkDDWppl+7FuD2dL68WP+wwP2qvdUcKY17vJksz+XoE1ZRV38uJgS6FNUwC0AxrPW5gy3MxsDHQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-logical-viewport-units@1.0.3(postcss@8.4.30): + /@csstools/postcss-logical-viewport-units@1.0.3(postcss@8.4.31): resolution: {integrity: sha512-6zqcyRg9HSqIHIPMYdt6THWhRmE5/tyHKJQLysn2TeDf/ftq7Em9qwMTx98t2C/7UxIsYS8lOiHHxAVjWn2WUg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-media-minmax@1.0.4(postcss@8.4.30): + /@csstools/postcss-media-minmax@1.0.4(postcss@8.4.31): resolution: {integrity: sha512-olnKTQk9+RMzpIpkjv55d44L4Ni02j8ZJoedJezQC5M03a56npcM1hx0apaTRG4Fz1wfPCQ0DBjQ8zsiJFelmA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -409,10 +412,10 @@ packages: '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 '@csstools/media-query-list-parser': 2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-media-queries-aspect-ratio-number-values@1.0.4(postcss@8.4.30): + /@csstools/postcss-media-queries-aspect-ratio-number-values@1.0.4(postcss@8.4.31): resolution: {integrity: sha512-IwyTbyR8E2y3kh6Fhrs251KjKBJeUPV5GlnUKnpU70PRFEN2DolWbf2V4+o/B9+Oj77P/DullLTulWEQ8uFtAA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -421,30 +424,30 @@ packages: '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 '@csstools/media-query-list-parser': 2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-nested-calc@2.0.2(postcss@8.4.30): + /@csstools/postcss-nested-calc@2.0.2(postcss@8.4.31): resolution: {integrity: sha512-jbwrP8rN4e7LNaRcpx3xpMUjhtt34I9OV+zgbcsYAAk6k1+3kODXJBf95/JMYWhu9g1oif7r06QVUgfWsKxCFw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-normalize-display-values@2.0.1(postcss@8.4.30): + /@csstools/postcss-normalize-display-values@2.0.1(postcss@8.4.31): resolution: {integrity: sha512-TQT5g3JQ5gPXC239YuRK8jFceXF9d25ZvBkyjzBGGoW5st5sPXFVQS8OjYb9IJ/K3CdfK4528y483cgS2DJR/w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function@2.2.3(postcss@8.4.30): + /@csstools/postcss-oklab-function@2.2.3(postcss@8.4.31): resolution: {integrity: sha512-AgJ2rWMnLCDcbSMTHSqBYn66DNLBym6JpBpCaqmwZ9huGdljjDRuH3DzOYzkgQ7Pm2K92IYIq54IvFHloUOdvA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -453,21 +456,21 @@ packages: '@csstools/css-color-parser': 1.2.0(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /@csstools/postcss-progressive-custom-properties@2.3.0(postcss@8.4.30): + /@csstools/postcss-progressive-custom-properties@2.3.0(postcss@8.4.31): resolution: {integrity: sha512-Zd8ojyMlsL919TBExQ1I0CTpBDdyCpH/yOdqatZpuC3sd22K4SwC7+Yez3Q/vmXMWSAl+shjNeFZ7JMyxMjK+Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-relative-color-syntax@1.0.2(postcss@8.4.30): + /@csstools/postcss-relative-color-syntax@1.0.2(postcss@8.4.31): resolution: {integrity: sha512-juCoVInkgH2TZPfOhyx6tIal7jW37L/0Tt+Vcl1LoxqQA9sxcg3JWYZ98pl1BonDnki6s/M7nXzFQHWsWMeHgw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -476,21 +479,21 @@ packages: '@csstools/css-color-parser': 1.2.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /@csstools/postcss-scope-pseudo-class@2.0.2(postcss@8.4.30): + /@csstools/postcss-scope-pseudo-class@2.0.2(postcss@8.4.31): resolution: {integrity: sha512-6Pvo4uexUCXt+Hz5iUtemQAcIuCYnL+ePs1khFR6/xPgC92aQLJ0zGHonWoewiBE+I++4gXK3pr+R1rlOFHe5w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-stepped-value-functions@2.1.1(postcss@8.4.30): + /@csstools/postcss-stepped-value-functions@2.1.1(postcss@8.4.31): resolution: {integrity: sha512-YCvdF0GCZK35nhLgs7ippcxDlRVe5QsSht3+EghqTjnYnyl3BbWIN6fYQ1dKWYTJ+7Bgi41TgqQFfJDcp9Xy/w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -499,21 +502,21 @@ packages: '@csstools/css-calc': 1.1.1(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-text-decoration-shorthand@2.2.4(postcss@8.4.30): + /@csstools/postcss-text-decoration-shorthand@2.2.4(postcss@8.4.31): resolution: {integrity: sha512-zPN56sQkS/7YTCVZhOBVCWf7AiNge8fXDl7JVaHLz2RyT4pnyK2gFjckWRLpO0A2xkm1lCgZ0bepYZTwAVd/5A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/color-helpers': 2.1.0 - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-trigonometric-functions@2.1.1(postcss@8.4.30): + /@csstools/postcss-trigonometric-functions@2.1.1(postcss@8.4.31): resolution: {integrity: sha512-XcXmHEFfHXhvYz40FtDlA4Fp4NQln2bWTsCwthd2c+MCnYArUYU3YaMqzR5CrKP3pMoGYTBnp5fMqf1HxItNyw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -522,26 +525,26 @@ packages: '@csstools/css-calc': 1.1.1(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/postcss-unset-value@2.0.1(postcss@8.4.30): + /@csstools/postcss-unset-value@2.0.1(postcss@8.4.31): resolution: {integrity: sha512-oJ9Xl29/yU8U7/pnMJRqAZd4YXNCfGEdcP4ywREuqm/xMqcgDNDppYRoCGDt40aaZQIEKBS79LytUDN/DHf0Ew==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /@csstools/selector-specificity@2.1.1(postcss-selector-parser@6.0.13)(postcss@8.4.30): + /@csstools/selector-specificity@2.1.1(postcss-selector-parser@6.0.13)(postcss@8.4.31): resolution: {integrity: sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 postcss-selector-parser: ^6.0.10 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true @@ -950,14 +953,19 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.53.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true /@eslint-community/regexpp@4.4.0: @@ -965,13 +973,13 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.0 + espree: 9.6.1 globals: 13.19.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -982,11 +990,16 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fastify/busboy@2.0.0: + resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} + engines: {node: '>=14'} + dev: true + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -1001,11 +1014,11 @@ packages: /@floating-ui/utils@0.1.4: resolution: {integrity: sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==} - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -1017,18 +1030,18 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true - /@iconify-icons/material-symbols@1.2.56: - resolution: {integrity: sha512-mtZss3mGZB1UKO8KZ8N8ouvLfej3ZuJ4xkJtCkgs8GeFownofYRyBL9k/TxDHWG6WBWI9tZPg8YTmHWb/kZiqA==} + /@iconify-icons/material-symbols@1.2.58: + resolution: {integrity: sha512-v0ZfPXlmDcDPCejxhg5h2eHCEHClrpn+i44Ev766vkzPIEFRdgT+YK942KzyqBpH0RhKJfel4OZdL1DY1oa5Qg==} dependencies: '@iconify/types': 2.0.0 dev: true - /@iconify-icons/mdi@1.2.47: - resolution: {integrity: sha512-XwrHxJb2GzToyyoI9gaVm6/yE3aRlxB2IolKXzTEf6qAtjv3S4xFAxYaOlm6iuylQv+WyquH9C4cBudNPRHApg==} + /@iconify-icons/mdi@1.2.48: + resolution: {integrity: sha512-51bfNoRLhYDfxSu0Nyi/uRVq6q/tP4TyEc0vvuNwImrXpxrRJUAWJF2A36CfBkXm3hO9IBlph/CD/XNDJKgG6w==} dependencies: '@iconify/types': 2.0.0 dev: true @@ -1039,8 +1052,8 @@ packages: '@iconify/types': 2.0.0 dev: true - /@iconify-icons/simple-icons@1.2.70: - resolution: {integrity: sha512-V4BVzz2MTc8EzUpkfQfxQJypPV+TKmWEOFy6YJZCHa+4RPBrj1p0VTjuHXp7GdurkoBPju0NNhST/+G/KrOuXA==} + /@iconify-icons/simple-icons@1.2.74: + resolution: {integrity: sha512-FWmuSbg+KDUreysuaE8DYu/jbv4+FtSY+ppAi8w8sgX9CKTP6watB+PLeMbklOL/G5PnBlHnvM/ihkZ+n96OZw==} dependencies: '@iconify/types': 2.0.0 dev: true @@ -1113,19 +1126,19 @@ packages: - supports-color dev: true - /@melt-ui/pp@0.1.2(@melt-ui/svelte@0.50.0)(svelte@4.2.1): + /@melt-ui/pp@0.1.2(@melt-ui/svelte@0.50.1)(svelte@4.2.2): resolution: {integrity: sha512-GZeqp7UWLNZUC2dJpREnZrWMR88vy27WO7C3cIBz4KW3/CFD19FjNkd3VbSRfcRryrMkdnEs9nu2VUa8/0u58w==} engines: {pnpm: '>=8.6.3'} peerDependencies: '@melt-ui/svelte': '>= 0.29.0' svelte: ^3.55.0 || ^4.0.0 dependencies: - '@melt-ui/svelte': 0.50.0(svelte@4.2.1) - svelte: 4.2.1 + '@melt-ui/svelte': 0.50.1(svelte@4.2.2) + svelte: 4.2.2 dev: true - /@melt-ui/svelte@0.50.0(svelte@4.2.1): - resolution: {integrity: sha512-NcWwxwStXq77/yOuBfnGkuJdUta3M4SwqZECdaRpAQ61BHI3qz7WW2ZM42JmDvGSs9W6ww2kZFNF8XNTO92CdA==} + /@melt-ui/svelte@0.50.1(svelte@4.2.2): + resolution: {integrity: sha512-MIenasd8a5jXgynNKmH5JNSrDBS0EKUK4BImgyD0R6Vbzrll6rQquBIxlh5PeqVhZ2azDIEh/yRkwaOFi2HEgw==} peerDependencies: svelte: '>=3 <5' dependencies: @@ -1134,7 +1147,7 @@ packages: dequal: 2.0.3 focus-trap: 7.5.3 nanoid: 4.0.2 - svelte: 4.2.1 + svelte: 4.2.2 /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1157,15 +1170,12 @@ packages: fastq: 1.15.0 dev: true - /@playwright/test@1.36.2: - resolution: {integrity: sha512-2rVZeyPRjxfPH6J0oGJqE8YxiM1IBRyM8hyrXYK7eSiAqmbNhxwcLa7dZ7fy9Kj26V7FYia5fh9XJRq4Dqme+g==} + /@playwright/test@1.39.0: + resolution: {integrity: sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==} engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 20.7.0 - playwright-core: 1.36.2 - optionalDependencies: - fsevents: 2.3.2 + playwright: 1.39.0 dev: true /@polka/url@1.0.0-next.21: @@ -1198,20 +1208,20 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sveltejs/adapter-static@2.0.3(@sveltejs/kit@1.25.1): + /@sveltejs/adapter-static@2.0.3(@sveltejs/kit@1.27.3): resolution: {integrity: sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==} peerDependencies: '@sveltejs/kit': ^1.5.0 dependencies: - '@sveltejs/kit': 1.25.1(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/kit': 1.27.3(svelte@4.2.2)(vite@4.5.0) dev: true - /@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.25.1): + /@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.27.3): resolution: {integrity: sha512-fo6aaEygPd/6B5Jms4Ff7R4jbADnppuLvKOWBNTGe5MGB7ZRUkl+gxHWMQx2av2knyEZkA6V8y5M6R3ML5yN4g==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.25.1(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/kit': 1.27.3(svelte@4.2.2)(vite@4.5.0) '@vercel/nft': 0.22.6 esbuild: 0.16.17 transitivePeerDependencies: @@ -1219,8 +1229,8 @@ packages: - supports-color dev: true - /@sveltejs/kit@1.25.1(svelte@4.2.1)(vite@4.4.9): - resolution: {integrity: sha512-pD8XsvNJNgTNkFngNlM60my/X8dXWPKVzN5RghEQr0NjGZmuCjy49AfFu2cGbZjNf5pBcqd2RCNMW912P5fkhA==} + /@sveltejs/kit@1.27.3(svelte@4.2.2)(vite@4.5.0): + resolution: {integrity: sha512-pd7qwX6ww5noA0/FLk45B0aKUeOXWR+pfZsGTrv3dRmj3lTmnki9UTmTdWzHJGrje+BBkGUZHfgGrsSOQQBQpQ==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true @@ -1228,26 +1238,26 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.2.2)(vite@4.5.0) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.1 esm-env: 1.0.0 kleur: 4.1.5 magic-string: 0.30.0 - mime: 3.0.0 + mrmime: 1.0.1 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.2 - svelte: 4.2.1 + svelte: 4.2.2 tiny-glob: 0.2.9 - undici: 5.25.2 - vite: 4.4.9(@types/node@20.7.0)(sass@1.65.1) + undici: 5.26.5 + vite: 4.5.0(@types/node@20.7.0)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.2.1)(vite@4.4.9): + /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.2.2)(vite@4.5.0): resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -1255,30 +1265,30 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@4.2.2)(vite@4.5.0) debug: 4.3.4 - svelte: 4.2.1 - vite: 4.4.9(@types/node@20.7.0)(sass@1.65.1) + svelte: 4.2.2 + vite: 4.5.0(@types/node@20.7.0)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.4.1(svelte@4.2.1)(vite@4.4.9): + /@sveltejs/vite-plugin-svelte@2.4.1(svelte@4.2.2)(vite@4.5.0): resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.2.1)(vite@4.4.9) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@4.2.2)(vite@4.5.0) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.0 - svelte: 4.2.1 - svelte-hmr: 0.15.2(svelte@4.2.1) - vite: 4.4.9(@types/node@20.7.0)(sass@1.65.1) - vitefu: 0.2.4(vite@4.4.9) + svelte: 4.2.2 + svelte-hmr: 0.15.2(svelte@4.2.2) + vite: 4.5.0(@types/node@20.7.0)(sass@1.69.5) + vitefu: 0.2.4(vite@4.5.0) transitivePeerDependencies: - supports-color dev: true @@ -1314,8 +1324,8 @@ packages: resolution: {integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==} dev: true - /@types/nprogress@0.2.1: - resolution: {integrity: sha512-TYuyVnp+nOnimgdOydDIDYIxv2kSeuJZw4tF0p/KG7hpzcMF1WkHaREwM8O4blqfT1F7rq0nht6Ko2KVUfWzBA==} + /@types/nprogress@0.2.3: + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} dev: false /@types/pug@2.0.6: @@ -1330,7 +1340,7 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1342,12 +1352,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.4.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.45.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.53.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -1358,7 +1368,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1372,7 +1382,7 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -1386,7 +1396,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.45.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1397,9 +1407,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.45.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.53.0 tsutils: 3.21.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -1432,19 +1442,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.45.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.45.0 + eslint: 8.53.0 eslint-scope: 5.1.1 semver: 7.3.8 transitivePeerDependencies: @@ -1460,6 +1470,10 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@vercel/nft@0.22.6: resolution: {integrity: sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==} engines: {node: '>=14'} @@ -1519,12 +1533,12 @@ packages: pretty-format: 29.7.0 dev: true - /@zerodevx/svelte-img@2.1.0(svelte@4.2.1): + /@zerodevx/svelte-img@2.1.0(svelte@4.2.2): resolution: {integrity: sha512-ktOcv5svIm8qQQ7sBnSST1zaA5mJpTp+MbzaMeDNBEw4hulwzSD0VRPtq/pvYsjacA1OAw+JIN/qmBl7doh7HA==} peerDependencies: svelte: ^3.55.1 || ^4.0.0 dependencies: - svelte: 4.2.1 + svelte: 4.2.2 vite-imagetools: 5.0.8 transitivePeerDependencies: - rollup @@ -1534,12 +1548,12 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true /acorn-walk@8.2.0: @@ -1553,6 +1567,12 @@ packages: hasBin: true dev: true + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.9.0: resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==} engines: {node: '>=0.4.0'} @@ -1647,7 +1667,7 @@ packages: requiresBuild: true dev: true - /autoprefixer@10.4.16(postcss@8.4.30): + /autoprefixer@10.4.16(postcss@8.4.31): resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -1659,7 +1679,7 @@ packages: fraction.js: 4.3.6 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true @@ -1768,13 +1788,6 @@ packages: ieee754: 1.2.1 dev: true - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - dependencies: - streamsearch: 1.1.0 - dev: true - /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1950,35 +1963,35 @@ packages: which: 2.0.2 dev: true - /css-blank-pseudo@5.0.2(postcss@8.4.30): + /css-blank-pseudo@5.0.2(postcss@8.4.31): resolution: {integrity: sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /css-has-pseudo@5.0.2(postcss@8.4.30): + /css-has-pseudo@5.0.2(postcss@8.4.31): resolution: {integrity: sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.13) - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /css-prefers-color-scheme@8.0.2(postcss@8.4.30): + /css-prefers-color-scheme@8.0.2(postcss@8.4.31): resolution: {integrity: sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true /css-select@5.1.0: @@ -2242,17 +2255,26 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@8.8.0(eslint@8.45.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-compat-utils@0.1.2(eslint@8.53.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.53.0 + dev: true + + /eslint-config-prettier@8.10.0(eslint@8.53.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.53.0 dev: true - /eslint-plugin-svelte@2.32.2(eslint@8.45.0)(svelte@4.2.1): - resolution: {integrity: sha512-Jgbop2fNZsoxxkklZAIbDNhwAPynvnCtUXLsEC6O2qax7N/pfe2cNqT0ZoBbubXKJitQQDEyVDQ1rZs4ZWcrTA==} + /eslint-plugin-svelte@2.35.0(eslint@8.53.0)(svelte@4.2.2): + resolution: {integrity: sha512-3WDFxNrkXaMlpqoNo3M1ZOQuoFLMO9+bdnN6oVVXaydXC7nzCJuGy9a0zqoNDHMSRPYt0Rqo6hIdHMEaI5sQnw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 @@ -2261,19 +2283,20 @@ packages: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.45.0 + eslint: 8.53.0 + eslint-compat-utils: 0.1.2(eslint@8.53.0) esutils: 2.0.3 - known-css-properties: 0.27.0 - postcss: 8.4.30 - postcss-load-config: 3.1.4(postcss@8.4.30) - postcss-safe-parser: 6.0.0(postcss@8.4.30) + known-css-properties: 0.29.0 + postcss: 8.4.31 + postcss-load-config: 3.1.4(postcss@8.4.31) + postcss-safe-parser: 6.0.0(postcss@8.4.31) postcss-selector-parser: 6.0.13 semver: 7.5.3 - svelte: 4.2.1 - svelte-eslint-parser: 0.32.1(svelte@4.2.1) + svelte: 4.2.2 + svelte-eslint-parser: 0.33.1(svelte@4.2.2) transitivePeerDependencies: - supports-color - ts-node @@ -2287,8 +2310,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -2300,27 +2323,33 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.4.0 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.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.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.4.2 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -2350,13 +2379,13 @@ packages: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} dev: true - /espree@9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 dev: true /esquery@1.4.2: @@ -2682,6 +2711,13 @@ packages: sharp: 0.32.6 dev: true + /imagetools-core@4.1.0: + resolution: {integrity: sha512-GDMgj3zhQ3g6Ga3yWBSmdJC7mM8UePgHiZsVQZ8sUWgAk2UzRyGlFV5qdv0topv63vE86KaK6MmAbjVUVibOzA==} + engines: {node: '>=12.0.0'} + dependencies: + sharp: 0.32.6 + dev: true + /immutable@4.2.2: resolution: {integrity: sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==} dev: true @@ -2824,8 +2860,8 @@ packages: engines: {node: '>=6'} dev: true - /known-css-properties@0.27.0: - resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==} + /known-css-properties@0.29.0: + resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} dev: true /levn@0.4.1: @@ -2893,6 +2929,13 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -2911,7 +2954,7 @@ packages: unist-util-visit: 3.1.0 dev: true - /mdsvex@0.10.6(svelte@4.2.1): + /mdsvex@0.10.6(svelte@4.2.2): resolution: {integrity: sha512-aGRDY0r5jx9+OOgFdyB9Xm3EBr9OUmcrTDPWLB7a7g8VPRxzPy4MOBmcVYgz7ErhAJ7bZ/coUoj6aHio3x/2mA==} peerDependencies: svelte: 3.x @@ -2919,7 +2962,7 @@ packages: '@types/unist': 2.0.6 prism-svelte: 0.4.7 prismjs: 1.29.0 - svelte: 4.2.1 + svelte: 4.2.2 vfile-message: 2.0.4 dev: true @@ -2950,12 +2993,6 @@ packages: mime-db: 1.52.0 dev: true - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - dev: true - /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -3268,64 +3305,74 @@ packages: pathe: 1.1.1 dev: true - /playwright-core@1.36.2: - resolution: {integrity: sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==} + /playwright-core@1.39.0: + resolution: {integrity: sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==} engines: {node: '>=16'} hasBin: true dev: true - /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.30): + /playwright@1.39.0: + resolution: {integrity: sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==} + engines: {node: '>=16'} + hasBin: true + dependencies: + playwright-core: 1.39.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.31): resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-clamp@4.1.0(postcss@8.4.30): + /postcss-clamp@4.1.0(postcss@8.4.31): resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@5.1.0(postcss@8.4.30): + /postcss-color-functional-notation@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-w2R4py6zrVE1U7FwNaAc76tNQlG9GLkrBbcFw+VhUjyDDiV28vfZG+l4LyPmpoQpeSJVtu8VgNjE8Jv5SpC7dQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-color-hex-alpha@9.0.2(postcss@8.4.30): + /postcss-color-hex-alpha@9.0.2(postcss@8.4.31): resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple@8.0.2(postcss@8.4.30): + /postcss-color-rebeccapurple@8.0.2(postcss@8.4.31): resolution: {integrity: sha512-xWf/JmAxVoB5bltHpXk+uGRoGFwu4WDAR7210el+iyvTdqiKpDhtcT8N3edXMoVJY0WHFMrKMUieql/wRNiXkw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media@9.1.5(postcss@8.4.30): + /postcss-custom-media@9.1.5(postcss@8.4.31): resolution: {integrity: sha512-GStyWMz7Qbo/Gtw1xVspzVSX8eipgNg4lpsO3CAeY4/A1mzok+RV6MCv3fg62trWijh/lYEj6vps4o8JcBBpDA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3335,10 +3382,10 @@ packages: '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 '@csstools/media-query-list-parser': 2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-custom-properties@13.2.0(postcss@8.4.30): + /postcss-custom-properties@13.2.0(postcss@8.4.31): resolution: {integrity: sha512-UYiPqbqmVayyv56y0mtGhvUKZClflwE9cTTmPaqEX8fOVjVwsotqKGYtJXSLxrJLwf9tt7ka+Luyh1ZAOhGHWA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3347,11 +3394,11 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.2(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-selectors@7.1.3(postcss@8.4.30): + /postcss-custom-selectors@7.1.3(postcss@8.4.31): resolution: {integrity: sha512-GTVscax6O/8s7agFF0HsOoIyjrnAbLjgCUle8tn+0oDGJuVx7p56U7ClSRoC49poxFuMfu2B4Q8GnxSCOeuFKw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3360,99 +3407,99 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.2(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-dir-pseudo-class@7.0.2(postcss@8.4.30): + /postcss-dir-pseudo-class@7.0.2(postcss@8.4.31): resolution: {integrity: sha512-cMnslilYxBf9k3qejnovrUONZx1rXeUZJw06fgIUBzABJe3D2LiLL5WAER7Imt3nrkaIgG05XZBztueLEf5P8w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-double-position-gradients@4.0.4(postcss@8.4.30): + /postcss-double-position-gradients@4.0.4(postcss@8.4.31): resolution: {integrity: sha512-nUAbUXURemLXIrl4Xoia2tiu5z/n8sY+BVDZApoeT9BlpByyrp02P/lFCRrRvZ/zrGRE+MOGLhk8o7VcMCtPtQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-focus-visible@8.0.2(postcss@8.4.30): + /postcss-focus-visible@8.0.2(postcss@8.4.31): resolution: {integrity: sha512-f/Vd+EC/GaKElknU59esVcRYr/Y3t1ZAQyL4u2xSOgkDy4bMCmG7VP5cGvj3+BTLNE9ETfEuz2nnt4qkZwTTeA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-focus-within@7.0.2(postcss@8.4.30): + /postcss-focus-within@7.0.2(postcss@8.4.31): resolution: {integrity: sha512-AHAJ89UQBcqBvFgQJE9XasGuwMNkKsGj4D/f9Uk60jFmEBHpAL14DrnSk3Rj+SwZTr/WUG+mh+Rvf8fid/346w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-font-variant@5.0.0(postcss@8.4.30): + /postcss-font-variant@5.0.0(postcss@8.4.31): resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-gap-properties@4.0.1(postcss@8.4.30): + /postcss-gap-properties@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-V5OuQGw4lBumPlwHWk/PRfMKjaq/LTGR4WDTemIMCaMevArVfCCA9wBJiL1VjDAd+rzuCIlkRoRvDsSiAaZ4Fg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-image-set-function@5.0.2(postcss@8.4.30): + /postcss-image-set-function@5.0.2(postcss@8.4.31): resolution: {integrity: sha512-Sszjwo0ubETX0Fi5MvpYzsONwrsjeabjMoc5YqHvURFItXgIu3HdCjcVuVKGMPGzKRhgaknmdM5uVWInWPJmeg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-import@15.1.0(postcss@8.4.30): + /postcss-import@15.1.0(postcss@8.4.31): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 dev: true - /postcss-initial@4.0.1(postcss@8.4.30): + /postcss-initial@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-lab-function@5.2.3(postcss@8.4.30): + /postcss-lab-function@5.2.3(postcss@8.4.31): resolution: {integrity: sha512-fi32AYKzji5/rvgxo5zXHFvAYBw0u0OzELbeCNjEZVLUir18Oj+9RmNphtM8QdLUaUnrfx8zy8vVYLmFLkdmrQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -3461,11 +3508,11 @@ packages: '@csstools/css-color-parser': 1.2.0(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1) '@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1) '@csstools/css-tokenizer': 2.1.1 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - postcss: 8.4.30 + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /postcss-load-config@3.1.4(postcss@8.4.30): + /postcss-load-config@3.1.4(postcss@8.4.31): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -3478,11 +3525,11 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.30 + postcss: 8.4.31 yaml: 1.10.2 dev: true - /postcss-load-config@4.0.1(postcss@8.4.30): + /postcss-load-config@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -3495,176 +3542,176 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.30 + postcss: 8.4.31 yaml: 2.2.1 dev: true - /postcss-logical@6.2.0(postcss@8.4.30): + /postcss-logical@6.2.0(postcss@8.4.31): resolution: {integrity: sha512-aqlfKGaY0nnbgI9jwUikp4gJKBqcH5noU/EdnIVceghaaDPYhZuyJVxlvWNy55tlTG5tunRKCTAX9yljLiFgmw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-nesting@11.3.0(postcss@8.4.30): + /postcss-nesting@11.3.0(postcss@8.4.31): resolution: {integrity: sha512-JlS10AQm/RzyrUGgl5irVkAlZYTJ99mNueUl+Qab+TcHhVedLiylWVkKBhRale+rS9yWIJK48JVzQlq3LcSdeA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.13) - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-opacity-percentage@2.0.0(postcss@8.4.30): + /postcss-opacity-percentage@2.0.0(postcss@8.4.31): resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-overflow-shorthand@4.0.1(postcss@8.4.30): + /postcss-overflow-shorthand@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-HQZ0qi/9iSYHW4w3ogNqVNr2J49DHJAl7r8O2p0Meip38jsdnRPgiDW7r/LlLrrMBMe3KHkvNtAV2UmRVxzLIg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-page-break@3.0.4(postcss@8.4.30): + /postcss-page-break@3.0.4(postcss@8.4.31): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-place@8.0.1(postcss@8.4.30): + /postcss-place@8.0.1(postcss@8.4.31): resolution: {integrity: sha512-Ow2LedN8sL4pq8ubukO77phSVt4QyCm35ZGCYXKvRFayAwcpgB0sjNJglDoTuRdUL32q/ZC1VkPBo0AOEr4Uiw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-preset-env@8.5.1(postcss@8.4.30): + /postcss-preset-env@8.5.1(postcss@8.4.31): resolution: {integrity: sha512-qhWnJJjP6ArLUINWJ38t6Aftxnv9NW6cXK0NuwcLCcRilbuw72dSFLkCVUJeCfHGgJiKzX+pnhkGiki0PEynWg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 3.0.1(postcss@8.4.30) - '@csstools/postcss-color-function': 2.2.3(postcss@8.4.30) - '@csstools/postcss-color-mix-function': 1.0.3(postcss@8.4.30) - '@csstools/postcss-font-format-keywords': 2.0.2(postcss@8.4.30) - '@csstools/postcss-gradients-interpolation-method': 3.0.6(postcss@8.4.30) - '@csstools/postcss-hwb-function': 2.2.2(postcss@8.4.30) - '@csstools/postcss-ic-unit': 2.0.4(postcss@8.4.30) - '@csstools/postcss-is-pseudo-class': 3.2.1(postcss@8.4.30) - '@csstools/postcss-logical-float-and-clear': 1.0.1(postcss@8.4.30) - '@csstools/postcss-logical-resize': 1.0.1(postcss@8.4.30) - '@csstools/postcss-logical-viewport-units': 1.0.3(postcss@8.4.30) - '@csstools/postcss-media-minmax': 1.0.4(postcss@8.4.30) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.4(postcss@8.4.30) - '@csstools/postcss-nested-calc': 2.0.2(postcss@8.4.30) - '@csstools/postcss-normalize-display-values': 2.0.1(postcss@8.4.30) - '@csstools/postcss-oklab-function': 2.2.3(postcss@8.4.30) - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.30) - '@csstools/postcss-relative-color-syntax': 1.0.2(postcss@8.4.30) - '@csstools/postcss-scope-pseudo-class': 2.0.2(postcss@8.4.30) - '@csstools/postcss-stepped-value-functions': 2.1.1(postcss@8.4.30) - '@csstools/postcss-text-decoration-shorthand': 2.2.4(postcss@8.4.30) - '@csstools/postcss-trigonometric-functions': 2.1.1(postcss@8.4.30) - '@csstools/postcss-unset-value': 2.0.1(postcss@8.4.30) - autoprefixer: 10.4.16(postcss@8.4.30) + '@csstools/postcss-cascade-layers': 3.0.1(postcss@8.4.31) + '@csstools/postcss-color-function': 2.2.3(postcss@8.4.31) + '@csstools/postcss-color-mix-function': 1.0.3(postcss@8.4.31) + '@csstools/postcss-font-format-keywords': 2.0.2(postcss@8.4.31) + '@csstools/postcss-gradients-interpolation-method': 3.0.6(postcss@8.4.31) + '@csstools/postcss-hwb-function': 2.2.2(postcss@8.4.31) + '@csstools/postcss-ic-unit': 2.0.4(postcss@8.4.31) + '@csstools/postcss-is-pseudo-class': 3.2.1(postcss@8.4.31) + '@csstools/postcss-logical-float-and-clear': 1.0.1(postcss@8.4.31) + '@csstools/postcss-logical-resize': 1.0.1(postcss@8.4.31) + '@csstools/postcss-logical-viewport-units': 1.0.3(postcss@8.4.31) + '@csstools/postcss-media-minmax': 1.0.4(postcss@8.4.31) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.4(postcss@8.4.31) + '@csstools/postcss-nested-calc': 2.0.2(postcss@8.4.31) + '@csstools/postcss-normalize-display-values': 2.0.1(postcss@8.4.31) + '@csstools/postcss-oklab-function': 2.2.3(postcss@8.4.31) + '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.31) + '@csstools/postcss-relative-color-syntax': 1.0.2(postcss@8.4.31) + '@csstools/postcss-scope-pseudo-class': 2.0.2(postcss@8.4.31) + '@csstools/postcss-stepped-value-functions': 2.1.1(postcss@8.4.31) + '@csstools/postcss-text-decoration-shorthand': 2.2.4(postcss@8.4.31) + '@csstools/postcss-trigonometric-functions': 2.1.1(postcss@8.4.31) + '@csstools/postcss-unset-value': 2.0.1(postcss@8.4.31) + autoprefixer: 10.4.16(postcss@8.4.31) browserslist: 4.21.9 - css-blank-pseudo: 5.0.2(postcss@8.4.30) - css-has-pseudo: 5.0.2(postcss@8.4.30) - css-prefers-color-scheme: 8.0.2(postcss@8.4.30) + css-blank-pseudo: 5.0.2(postcss@8.4.31) + css-has-pseudo: 5.0.2(postcss@8.4.31) + css-prefers-color-scheme: 8.0.2(postcss@8.4.31) cssdb: 7.6.0 - postcss: 8.4.30 - postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.30) - postcss-clamp: 4.1.0(postcss@8.4.30) - postcss-color-functional-notation: 5.1.0(postcss@8.4.30) - postcss-color-hex-alpha: 9.0.2(postcss@8.4.30) - postcss-color-rebeccapurple: 8.0.2(postcss@8.4.30) - postcss-custom-media: 9.1.5(postcss@8.4.30) - postcss-custom-properties: 13.2.0(postcss@8.4.30) - postcss-custom-selectors: 7.1.3(postcss@8.4.30) - postcss-dir-pseudo-class: 7.0.2(postcss@8.4.30) - postcss-double-position-gradients: 4.0.4(postcss@8.4.30) - postcss-focus-visible: 8.0.2(postcss@8.4.30) - postcss-focus-within: 7.0.2(postcss@8.4.30) - postcss-font-variant: 5.0.0(postcss@8.4.30) - postcss-gap-properties: 4.0.1(postcss@8.4.30) - postcss-image-set-function: 5.0.2(postcss@8.4.30) - postcss-initial: 4.0.1(postcss@8.4.30) - postcss-lab-function: 5.2.3(postcss@8.4.30) - postcss-logical: 6.2.0(postcss@8.4.30) - postcss-nesting: 11.3.0(postcss@8.4.30) - postcss-opacity-percentage: 2.0.0(postcss@8.4.30) - postcss-overflow-shorthand: 4.0.1(postcss@8.4.30) - postcss-page-break: 3.0.4(postcss@8.4.30) - postcss-place: 8.0.1(postcss@8.4.30) - postcss-pseudo-class-any-link: 8.0.2(postcss@8.4.30) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.30) - postcss-selector-not: 7.0.1(postcss@8.4.30) + postcss: 8.4.31 + postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.31) + postcss-clamp: 4.1.0(postcss@8.4.31) + postcss-color-functional-notation: 5.1.0(postcss@8.4.31) + postcss-color-hex-alpha: 9.0.2(postcss@8.4.31) + postcss-color-rebeccapurple: 8.0.2(postcss@8.4.31) + postcss-custom-media: 9.1.5(postcss@8.4.31) + postcss-custom-properties: 13.2.0(postcss@8.4.31) + postcss-custom-selectors: 7.1.3(postcss@8.4.31) + postcss-dir-pseudo-class: 7.0.2(postcss@8.4.31) + postcss-double-position-gradients: 4.0.4(postcss@8.4.31) + postcss-focus-visible: 8.0.2(postcss@8.4.31) + postcss-focus-within: 7.0.2(postcss@8.4.31) + postcss-font-variant: 5.0.0(postcss@8.4.31) + postcss-gap-properties: 4.0.1(postcss@8.4.31) + postcss-image-set-function: 5.0.2(postcss@8.4.31) + postcss-initial: 4.0.1(postcss@8.4.31) + postcss-lab-function: 5.2.3(postcss@8.4.31) + postcss-logical: 6.2.0(postcss@8.4.31) + postcss-nesting: 11.3.0(postcss@8.4.31) + postcss-opacity-percentage: 2.0.0(postcss@8.4.31) + postcss-overflow-shorthand: 4.0.1(postcss@8.4.31) + postcss-page-break: 3.0.4(postcss@8.4.31) + postcss-place: 8.0.1(postcss@8.4.31) + postcss-pseudo-class-any-link: 8.0.2(postcss@8.4.31) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.31) + postcss-selector-not: 7.0.1(postcss@8.4.31) postcss-value-parser: 4.2.0 dev: true - /postcss-pseudo-class-any-link@8.0.2(postcss@8.4.30): + /postcss-pseudo-class-any-link@8.0.2(postcss@8.4.31): resolution: {integrity: sha512-FYTIuRE07jZ2CW8POvctRgArQJ43yxhr5vLmImdKUvjFCkR09kh8pIdlCwdx/jbFm7MiW4QP58L4oOUv3grQYA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.30): + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.30): + /postcss-safe-parser@6.0.0(postcss@8.4.31): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-scss@4.0.6(postcss@8.4.30): - resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} + /postcss-scss@4.0.9(postcss@8.4.31): + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: - postcss: ^8.4.19 + postcss: ^8.4.29 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 dev: true - /postcss-selector-not@7.0.1(postcss@8.4.30): + /postcss-selector-not@7.0.1(postcss@8.4.31): resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.30 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 dev: true @@ -3680,8 +3727,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.30: - resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -3713,14 +3760,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@4.2.1): + /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@4.2.2): resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 dependencies: prettier: 2.8.8 - svelte: 4.2.1 + svelte: 4.2.2 dev: true /prettier@2.8.8: @@ -3895,8 +3942,8 @@ packages: rimraf: 2.7.1 dev: true - /sass@1.65.1: - resolution: {integrity: sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==} + /sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -3905,6 +3952,14 @@ packages: source-map-js: 1.0.2 dev: true + /schema-dts@1.1.2(typescript@5.2.2): + resolution: {integrity: sha512-MpNwH0dZJHinVxk9bT8XUdjKTxMYrA5bLtrrGmFA6PTLwlOKnhi67XoRd6/ty+Djt6ZC0slR57qFhZDNMI6DhQ==} + peerDependencies: + typescript: '>=4.1.0' + dependencies: + typescript: 5.2.2 + dev: true + /scrape-it-core@1.0.0: resolution: {integrity: sha512-R2IVyqDRoQsLue81+NLSJUnvqVmzP3YXPBVjvtMPQa4GiDCYjHFN5aDhEOsETqj90w0aHzqScDrSUQ64NvKROg==} dependencies: @@ -3916,8 +3971,8 @@ packages: typpy: 2.3.13 dev: true - /scrape-it@6.0.1: - resolution: {integrity: sha512-+oD+2Aew0LV6Lqvzx8VWq/trlwXUA+H1TTxUI1lc59swxdWUJM1DBF9FwoHTOXSXu673Fg3b0jndKSY8vZtnWw==} + /scrape-it@6.1.0: + resolution: {integrity: sha512-8pCJvtlE7yoF0ybV63Vq9pmXWb2oRTLz+zKTB5aVm18OJBoVKdxEniX4f+SUY9RC9o9vw/fwZJdQz/AqqDtRHQ==} dependencies: '@types/cheerio': 0.22.32 assured: 1.0.15 @@ -4062,11 +4117,6 @@ packages: resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: true - /streamx@2.15.0: resolution: {integrity: sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==} dependencies: @@ -4131,8 +4181,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.4.6(postcss-load-config@4.0.1)(postcss@8.4.30)(sass@1.65.1)(svelte@4.2.1): - resolution: {integrity: sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==} + /svelte-check@3.5.2(postcss-load-config@4.0.1)(postcss@8.4.31)(sass@1.69.5)(svelte@4.2.2): + resolution: {integrity: sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 @@ -4143,8 +4193,8 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.1 - svelte-preprocess: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.30)(sass@1.65.1)(svelte@4.2.1)(typescript@5.2.2) + svelte: 4.2.2 + svelte-preprocess: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.31)(sass@1.69.5)(svelte@4.2.2)(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - '@babel/core' @@ -4158,8 +4208,8 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.32.1(svelte@4.2.1): - resolution: {integrity: sha512-GCSfeIzdgk53CaOzK+s/+l2igfTno3mWGkwoDYAwPes/rD9Al2fc7ksfopjx5UL87S7dw1eL73F6wNYiiuhzIA==} + /svelte-eslint-parser@0.33.1(svelte@4.2.2): + resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 @@ -4167,28 +4217,39 @@ packages: svelte: optional: true dependencies: - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 - postcss: 8.4.30 - postcss-scss: 4.0.6(postcss@8.4.30) - svelte: 4.2.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + postcss: 8.4.31 + postcss-scss: 4.0.9(postcss@8.4.31) + svelte: 4.2.2 dev: true - /svelte-hmr@0.15.2(svelte@4.2.1): + /svelte-hmr@0.15.2(svelte@4.2.2): resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0-next.0 dependencies: - svelte: 4.2.1 + svelte: 4.2.2 dev: true /svelte-lazy-loader@1.0.0: resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==} dev: true - /svelte-preprocess@5.0.4(postcss-load-config@4.0.1)(postcss@8.4.30)(sass@1.65.1)(svelte@4.2.1)(typescript@5.2.2): + /svelte-meta-tags@3.0.4(svelte@4.2.2)(typescript@5.2.2): + resolution: {integrity: sha512-L2oYFoJM5HVy1nFsWf1xr+Ws8yV3Vh1OLDUYJ14Ygl/3SkwMlWS2CwgNmOAJWAZMWLfFH1v3ik9eVcbwrnURGw==} + peerDependencies: + svelte: ^3.55.0 || ^4.0.0 + dependencies: + schema-dts: 1.1.2(typescript@5.2.2) + svelte: 4.2.2 + transitivePeerDependencies: + - typescript + dev: true + + /svelte-preprocess@5.0.4(postcss-load-config@4.0.1)(postcss@8.4.31)(sass@1.69.5)(svelte@4.2.2)(typescript@5.2.2): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -4229,12 +4290,12 @@ packages: '@types/pug': 2.0.6 detect-indent: 6.1.0 magic-string: 0.27.0 - postcss: 8.4.30 - postcss-load-config: 4.0.1(postcss@8.4.30) - sass: 1.65.1 + postcss: 8.4.31 + postcss-load-config: 4.0.1(postcss@8.4.31) + sass: 1.69.5 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.1 + svelte: 4.2.2 typescript: 5.2.2 dev: true @@ -4242,12 +4303,12 @@ packages: resolution: {integrity: sha512-N5JqlBni6BzElxmuFrOPxOJnjsxh1cFDACLEVKs8OHBcx8ZNRO1p5SxuQex1m3qbLzAC8G99EHeWcxGkjyKjLQ==} engines: {node: '>=16'} dependencies: - svelte: 4.2.1 + svelte: 4.2.2 tslib: 2.6.2 dev: true - /svelte@4.2.1: - resolution: {integrity: sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==} + /svelte@4.2.2: + resolution: {integrity: sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 @@ -4261,7 +4322,7 @@ packages: estree-walker: 3.0.3 is-reference: 3.0.1 locate-character: 3.0.0 - magic-string: 0.30.0 + magic-string: 0.30.5 periscopic: 3.1.0 /tabbable@6.2.0: @@ -4413,11 +4474,11 @@ packages: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} dev: true - /undici@5.25.2: - resolution: {integrity: sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==} + /undici@5.26.5: + resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} engines: {node: '>=14.0'} dependencies: - busboy: 1.6.0 + '@fastify/busboy': 2.0.0 dev: true /unist-util-is@5.2.0: @@ -4477,8 +4538,8 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /vanilla-lazyload@17.8.4: - resolution: {integrity: sha512-LP1fP0nl7SZom6wojLJXzj2du69txtPfDOoWQWgLDU8mz7NBrWL2Txx6p84f6d+gTEcGbA9lUynAx5CS0rqWsg==} + /vanilla-lazyload@17.8.5: + resolution: {integrity: sha512-SQdQztlVUJqCbyU15zobpAcoTucCzdJiDIEfqinZDdwifhZxQ5H2j0BJfHlrFxi0lrVAdFBRsICH51YdPv18DQ==} dev: true /vfile-message@2.0.4: @@ -4498,7 +4559,17 @@ packages: - rollup dev: true - /vite-node@0.32.4(@types/node@20.7.0)(sass@1.65.1): + /vite-imagetools@5.1.2: + resolution: {integrity: sha512-r8WVrrmYSmctm1IEMJuYSo3jGH93W6mf0NK3+85rmG+BJBO05E/YsbWw/lhE1nPBHgYb8liPC2ID3jSzGiPzJw==} + engines: {node: '>=12.0.0'} + dependencies: + '@rollup/pluginutils': 5.0.2 + imagetools-core: 4.1.0 + transitivePeerDependencies: + - rollup + dev: true + + /vite-node@0.32.4(@types/node@20.7.0)(sass@1.69.5): resolution: {integrity: sha512-L2gIw+dCxO0LK14QnUMoqSYpa9XRGnTTTDjW2h19Mr+GR0EFj4vx52W41gFXfMLqpA00eK4ZjOVYo1Xk//LFEw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -4508,7 +4579,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@20.7.0)(sass@1.65.1) + vite: 4.5.0(@types/node@20.7.0)(sass@1.69.5) transitivePeerDependencies: - '@types/node' - less @@ -4520,8 +4591,8 @@ packages: - terser dev: true - /vite@4.4.9(@types/node@20.7.0)(sass@1.65.1): - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + /vite@4.5.0(@types/node@20.7.0)(sass@1.69.5): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -4550,14 +4621,14 @@ packages: dependencies: '@types/node': 20.7.0 esbuild: 0.18.11 - postcss: 8.4.30 + postcss: 8.4.31 rollup: 3.28.0 - sass: 1.65.1 + sass: 1.69.5 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@4.4.9): + /vitefu@0.2.4(vite@4.5.0): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -4565,10 +4636,10 @@ packages: vite: optional: true dependencies: - vite: 4.4.9(@types/node@20.7.0)(sass@1.65.1) + vite: 4.5.0(@types/node@20.7.0)(sass@1.69.5) dev: true - /vitest@0.32.4(sass@1.65.1): + /vitest@0.32.4(sass@1.69.5): resolution: {integrity: sha512-3czFm8RnrsWwIzVDu/Ca48Y/M+qh3vOnF16czJm98Q/AN1y3B6PBsyV8Re91Ty5s7txKNjEhpgtGPcfdbh2MZg==} engines: {node: '>=v14.18.0'} hasBin: true @@ -4620,8 +4691,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.5.0 - vite: 4.4.9(@types/node@20.7.0)(sass@1.65.1) - vite-node: 0.32.4(@types/node@20.7.0)(sass@1.65.1) + vite: 4.5.0(@types/node@20.7.0)(sass@1.69.5) + vite-node: 0.32.4(@types/node@20.7.0)(sass@1.69.5) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 1bab79a..d22ad26 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,20 +1,23 @@ {#if !dev} {/if} - + + +
diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index 46c88d5..854a729 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -1,7 +1,33 @@ +import type { MetaTagsProps } from 'svelte-meta-tags'; import type { PageServerLoad } from './lib/$types'; import { fetchBandcampAlbums } from '$root/lib/util/fetchBandcampAlbums'; -export const load: PageServerLoad = async ({ fetch, setHeaders }) => { +export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { + const metaTags: MetaTagsProps = Object.freeze({ + title: 'Home', + description: 'Home page', + openGraph: { + title: 'Home', + description: 'Home page', + url: new URL(url.pathname, url.origin).href, + siteName: 'Bradley Shellnut Personal Website', + images: [ + { + url: '/static/b_shell_nut_favicon.png', + alt: 'Bradley Shellnut Website Logo' + } + ] + }, + twitter: { + card: 'summary_large_image', + title: 'Home', + description: 'Home page', + images: '/static/b_shell_nut_favicon.png', + imageAlt: 'Bradley Shellnut Website Logo' + }, + url: new URL(url.pathname, url.origin).href + }); + const albums = async () => await fetchBandcampAlbums(); const articles = async () => await fetch(`/api/articles?page=1&limit=3`); @@ -9,6 +35,7 @@ export const load: PageServerLoad = async ({ fetch, setHeaders }) => { 'cache-control': 'max-age=43200' }); return { + metaTagsChild: metaTags, albums: albums(), articlesData: (await articles()).json() }; diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte index 052f2e0..5f43069 100644 --- a/src/routes/about/+page.svelte +++ b/src/routes/about/+page.svelte @@ -19,7 +19,7 @@ import ExternalLink from '$root/lib/components/ExternalLink.svelte'; - +
diff --git a/src/routes/about/+page.ts b/src/routes/about/+page.ts index 189f71e..9cd3f11 100644 --- a/src/routes/about/+page.ts +++ b/src/routes/about/+page.ts @@ -1 +1,20 @@ export const prerender = true; + +import type { MetaTagsProps } from 'svelte-meta-tags'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ url }) => { + const metaTags: MetaTagsProps = Object.freeze({ + title: 'About', + description: 'About Bradley Shellnut', + openGraph: { + title: 'About', + description: 'About Bradley Shellnut', + url: new URL(url.pathname, url.origin).href, + } + }); + + return { + metaTagsChild: metaTags + } +} diff --git a/src/routes/portfolio/+page.server.ts b/src/routes/portfolio/+page.server.ts index 189f71e..82a728f 100644 --- a/src/routes/portfolio/+page.server.ts +++ b/src/routes/portfolio/+page.server.ts @@ -1 +1,20 @@ export const prerender = true; + +import type { MetaTagsProps } from 'svelte-meta-tags'; +import type { PageServerLoad } from './$types'; + +export const load: PageServerLoad = async ({ url }) => { + const metaTags: MetaTagsProps = Object.freeze({ + title: 'Portfolio', + description: 'Bradley Shellnut\s Portfolio', + openGraph: { + title: 'Portfolio', + description: 'Bradley Shellnut\s Portfolio', + url: new URL(url.pathname, url.origin).href + } + }); + + return { + metaTagsChild: metaTags + }; +}; diff --git a/src/routes/portfolio/+page.svelte b/src/routes/portfolio/+page.svelte index e010f57..5caca9b 100644 --- a/src/routes/portfolio/+page.svelte +++ b/src/routes/portfolio/+page.svelte @@ -1,7 +1,7 @@ - +

Portfolio!

diff --git a/src/routes/privacy/+page.svelte b/src/routes/privacy/+page.svelte index e892a73..6e4f280 100644 --- a/src/routes/privacy/+page.svelte +++ b/src/routes/privacy/+page.svelte @@ -1,9 +1,9 @@ - +

Privacy

diff --git a/src/routes/privacy/+page.ts b/src/routes/privacy/+page.ts index 189f71e..1ee6fad 100644 --- a/src/routes/privacy/+page.ts +++ b/src/routes/privacy/+page.ts @@ -1 +1,20 @@ export const prerender = true; + +import type { MetaTagsProps } from 'svelte-meta-tags'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ url }) => { + const metaTags: MetaTagsProps = Object.freeze({ + title: 'Privacy Blog', + description: 'My thoughts on personal internet privacy.', + openGraph: { + title: 'Privacy Blog', + description: 'My thoughts on personal internet privacy.', + url: new URL(url.pathname, url.origin).href + } + }); + + return { + metaTagsChild: metaTags + }; +}; diff --git a/src/routes/uses/+page.ts b/src/routes/uses/+page.ts index 189f71e..4be603b 100644 --- a/src/routes/uses/+page.ts +++ b/src/routes/uses/+page.ts @@ -1 +1,20 @@ export const prerender = true; + +import type { MetaTagsProps } from 'svelte-meta-tags'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ url }) => { + const metaTags: MetaTagsProps = Object.freeze({ + title: 'Portfolio', + description: 'Bradley Shellnuts Portfolio', + openGraph: { + title: 'Portfolio', + description: 'Bradley Shellnuts Portfolio', + url: new URL(url.pathname, url.origin).href + } + }); + + return { + metaTagsChild: metaTags + }; +}; diff --git a/svelte.config.js b/svelte.config.js index d8822fa..777a581 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -13,8 +13,11 @@ const config = { extensions: ['.svelte', ...mdsvexConfig.extensions], preprocess: [vitePreprocess(), mdsvex(mdsvexConfig), preprocessMeltUI()], vitePlugin: { - inspector: true, - toggleKeyCombo: 'control-alt-shift' + inspector: { + toggleKeyCombo: 'control-alt-shift', + showToggleButton: 'always', + toggleButtonPos: 'bottom-right' + } }, kit: { adapter: adapter(), From 552c194cd91faac93d0ddd3da25ee65414f27eba Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Wed, 8 Nov 2023 12:38:12 -0800 Subject: [PATCH 2/7] Removing old SEO component from home. --- src/routes/+page.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 61943bb..6523175 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -2,7 +2,7 @@ import type { PageData } from './$types'; import Bandcamp from '$lib/components/bandcamp/index.svelte'; import Articles from '$lib/components/articles/index.svelte'; - import SEO from '$lib/components/SEO.svelte'; + // import SEO from '$lib/components/SEO.svelte'; import type { Album } from '$lib/types/album'; import type { Article } from '$lib/types/article'; import type { ArticlePageLoad } from './articles/[page]/+page.server'; @@ -14,7 +14,7 @@ let totalArticles: number; $: ({ albums, articlesData } = data); $: ({ articles, totalArticles } = articlesData); - + const userNames = { github: 'BradNut', linkedIn: 'bradley-shellnut', @@ -22,7 +22,7 @@ }; - +
From 854241e5da42624312d7bbcd7ccff92df6c0e90c Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Wed, 8 Nov 2023 13:04:23 -0800 Subject: [PATCH 3/7] Removing old SEO component from home and fixing layout defaults vs home page values. --- src/routes/+layout.svelte | 6 ++---- src/routes/+page.server.ts | 9 +++++---- src/routes/articles/[page]/+page.svelte | 2 +- src/routes/uses/+page.svelte | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index d22ad26..43556ea 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,5 +1,5 @@ - +

Favorite Tech Articles

diff --git a/src/routes/uses/+page.svelte b/src/routes/uses/+page.svelte index 8abcf68..19d6973 100644 --- a/src/routes/uses/+page.svelte +++ b/src/routes/uses/+page.svelte @@ -9,7 +9,7 @@ import PrivacyHardwareSoftware from '$lib/content/uses/privacy-hardware-software.md'; - +
From 285336624a563fb61c0d58b050adba8f410d65f3 Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Wed, 8 Nov 2023 13:12:56 -0800 Subject: [PATCH 4/7] Fix build error on type import. --- src/routes/+layout.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 43556ea..0f3aa76 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,5 +1,5 @@ diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index 527fb47..801b62f 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -1,23 +1,28 @@ import type { MetaTagsProps } from 'svelte-meta-tags'; -import type { PageServerLoad } from './lib/$types'; -import { fetchBandcampAlbums } from '$root/lib/util/fetchBandcampAlbums'; +import { PUBLIC_SITE_URL } from '$env/static/public'; +import type { PageServerLoad } from './$types'; +import { fetchBandcampAlbums } from '$lib/util/fetchBandcampAlbums'; export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { - const baseUrl = new URL(url.origin).href; + const baseUrl = new URL(url.origin).href || PUBLIC_SITE_URL || 'https://bradleyshellnut.com'; + const currentPageUrl = new URL(url.pathname, url.origin).href; + const metaTags: MetaTagsProps = Object.freeze({ title: 'Home', description: "My name is Bradley Shellnut and I'm a Full Stack Software Engineer.", openGraph: { title: 'Home', description: "My name is Bradley Shellnut and I'm a Full Stack Software Engineer.", - url: new URL(url.pathname, url.origin).href, + url: currentPageUrl, siteName: 'Bradley Shellnut Personal Website', type: 'website', locale: 'en_US', images: [ { url: `${baseUrl}b_shell_nut_favicon.gif`, - alt: 'Bradley Shellnut Website Logo' + alt: 'Bradley Shellnut Website Logo', + width: 512, + height: 512 } ] }, @@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { image: `${baseUrl}b_shell_nut_favicon.gif`, imageAlt: 'Bradley Shellnut Website Logo' }, - url: new URL(url.pathname, url.origin).href + url: currentPageUrl }); const albums = async () => await fetchBandcampAlbums(); @@ -43,5 +48,4 @@ export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { albums: albums(), articlesData: (await articles()).json() }; -}; -// ; \ No newline at end of file +}; \ No newline at end of file diff --git a/src/routes/about/+page.ts b/src/routes/about/+page.ts index 9cd3f11..a721ccd 100644 --- a/src/routes/about/+page.ts +++ b/src/routes/about/+page.ts @@ -1,17 +1,39 @@ export const prerender = true; import type { MetaTagsProps } from 'svelte-meta-tags'; +import { PUBLIC_SITE_URL } from '$env/static/public'; import type { PageLoad } from './$types'; export const load: PageLoad = async ({ url }) => { + const baseUrl = new URL(url.origin).href || PUBLIC_SITE_URL || 'https://bradleyshellnut.com'; + const currentPageUrl = new URL(url.pathname, url.origin).href; const metaTags: MetaTagsProps = Object.freeze({ title: 'About', description: 'About Bradley Shellnut', openGraph: { title: 'About', description: 'About Bradley Shellnut', - url: new URL(url.pathname, url.origin).href, - } + url: currentPageUrl, + siteName: 'Bradley Shellnut Personal Website', + type: 'website', + locale: 'en_US', + images: [ + { + url: `${baseUrl}b_shell_nut_favicon.gif`, + alt: 'Bradley Shellnut Website Logo', + width: 512, + height: 512 + } + ] + }, + twitter: { + title: 'About', + description: 'About page', + card: 'summary_large_image', + image: `${baseUrl}b_shell_nut_favicon.gif`, + imageAlt: 'Bradley Shellnut Website Logo' + }, + url: currentPageUrl }); return { diff --git a/src/routes/articles/[page]/+page.server.ts b/src/routes/articles/[page]/+page.server.ts index 95a1b8a..1e5277b 100644 --- a/src/routes/articles/[page]/+page.server.ts +++ b/src/routes/articles/[page]/+page.server.ts @@ -1,6 +1,7 @@ import { error } from '@sveltejs/kit'; import type { PageServerLoad } from './$types'; import { WALLABAG_MAX_PAGES } from '$env/static/private'; +import { PUBLIC_SITE_URL } from '$env/static/public'; import type { Article } from '$lib/types/article'; export type ArticlePageLoad = { @@ -12,7 +13,7 @@ export type ArticlePageLoad = { cacheControl: string; }; -export const load: PageServerLoad = async ({ fetch, params, setHeaders }) => { +export const load: PageServerLoad = async ({ fetch, params, setHeaders, url }) => { const { page } = params; if (+page > +WALLABAG_MAX_PAGES) { throw error(404, { @@ -32,11 +33,45 @@ export const load: PageServerLoad = async ({ fetch, params, setHeaders }) => { 'cache-control': 'max-age=43200' // 12 hours }); } + + const baseUrl = new URL(url.origin).href || PUBLIC_SITE_URL || 'https://bradleyshellnut.com'; + const currentPageUrl = new URL(url.pathname, url.origin).href; + + const metaTags: MetaTagsProps = Object.freeze({ + title: 'Favorite Articles', + description: 'My favorite articles', + openGraph: { + title: 'Facorite Articles', + description: 'My favorite articles', + url: currentPageUrl, + siteName: 'Bradley Shellnut Personal Website', + type: 'website', + locale: 'en_US', + images: [ + { + url: `${baseUrl}b_shell_nut_favicon.gif`, + alt: 'Bradley Shellnut Website Logo', + width: 512, + height: 512 + } + ] + }, + twitter: { + title: 'Favorite Articles', + description: 'My favorite articles', + card: 'summary_large_image', + image: `${baseUrl}b_shell_nut_favicon.gif`, + imageAlt: 'Bradley Shellnut Website Logo' + }, + url: currentPageUrl + }); + return { articles, currentPage, totalPages, limit, - totalArticles + totalArticles, + metaTagsChild: metaTags }; }; diff --git a/src/routes/portfolio/+page.server.ts b/src/routes/portfolio/+page.server.ts index 82a728f..db27128 100644 --- a/src/routes/portfolio/+page.server.ts +++ b/src/routes/portfolio/+page.server.ts @@ -1,17 +1,40 @@ export const prerender = true; import type { MetaTagsProps } from 'svelte-meta-tags'; +import { PUBLIC_SITE_URL } from '$env/static/public'; import type { PageServerLoad } from './$types'; export const load: PageServerLoad = async ({ url }) => { + const baseUrl = new URL(url.origin).href || PUBLIC_SITE_URL || 'https://bradleyshellnut.com'; + const currentPageUrl = new URL(url.pathname, url.origin).href; + const metaTags: MetaTagsProps = Object.freeze({ title: 'Portfolio', - description: 'Bradley Shellnut\s Portfolio', + description: "Bradley Shellnut's Portfolio", openGraph: { title: 'Portfolio', - description: 'Bradley Shellnut\s Portfolio', - url: new URL(url.pathname, url.origin).href - } + description: "Bradley Shellnut's Portfolio", + url: currentPageUrl, + siteName: 'Bradley Shellnut Personal Website', + type: 'website', + locale: 'en_US', + images: [ + { + url: `${baseUrl}b_shell_nut_favicon.gif`, + alt: 'Bradley Shellnut Website Logo', + width: 512, + height: 512 + } + ] + }, + twitter: { + title: 'Portfolio', + description: "Bradley Shellnut's Portfolio", + card: 'summary_large_image', + image: `${baseUrl}b_shell_nut_favicon.gif`, + imageAlt: 'Bradley Shellnut Website Logo' + }, + url: currentPageUrl }); return { diff --git a/src/routes/privacy/+page.ts b/src/routes/privacy/+page.ts index 1ee6fad..bb01220 100644 --- a/src/routes/privacy/+page.ts +++ b/src/routes/privacy/+page.ts @@ -1,17 +1,40 @@ export const prerender = true; import type { MetaTagsProps } from 'svelte-meta-tags'; +import { PUBLIC_SITE_URL } from '$env/static/public'; import type { PageLoad } from './$types'; export const load: PageLoad = async ({ url }) => { + const baseUrl = new URL(url.origin).href || PUBLIC_SITE_URL || 'https://bradleyshellnut.com'; + const currentPageUrl = new URL(url.pathname, url.origin).href; + const metaTags: MetaTagsProps = Object.freeze({ title: 'Privacy Blog', description: 'My thoughts on personal internet privacy.', openGraph: { title: 'Privacy Blog', description: 'My thoughts on personal internet privacy.', - url: new URL(url.pathname, url.origin).href - } + url: new URL(url.pathname, url.origin).href, + siteName: 'Bradley Shellnut Personal Website', + type: 'website', + locale: 'en_US', + images: [ + { + url: `${baseUrl}b_shell_nut_favicon.gif`, + alt: 'Bradley Shellnut Website Logo', + width: 512, + height: 512 + } + ] + }, + twitter: { + title: 'Privacy Blog', + description: 'My thoughts on personal internet privacy.', + card: 'summary_large_image', + image: `${baseUrl}b_shell_nut_favicon.gif`, + imageAlt: 'Bradley Shellnut Website Logo' + }, + url: currentPageUrl }); return { diff --git a/src/routes/uses/+page.ts b/src/routes/uses/+page.ts index 4be603b..3897a34 100644 --- a/src/routes/uses/+page.ts +++ b/src/routes/uses/+page.ts @@ -1,17 +1,40 @@ export const prerender = true; import type { MetaTagsProps } from 'svelte-meta-tags'; +import { PUBLIC_SITE_URL } from '$env/static/public'; import type { PageLoad } from './$types'; export const load: PageLoad = async ({ url }) => { + const baseUrl = new URL(url.origin).href || PUBLIC_SITE_URL || 'https://bradleyshellnut.com'; + const currentPageUrl = new URL(url.pathname, url.origin).href; + const metaTags: MetaTagsProps = Object.freeze({ - title: 'Portfolio', - description: 'Bradley Shellnuts Portfolio', + title: '/Uses', + description: 'What I use!', openGraph: { - title: 'Portfolio', - description: 'Bradley Shellnuts Portfolio', - url: new URL(url.pathname, url.origin).href - } + title: '/Uses', + description: 'What I use!', + url: new URL(url.pathname, url.origin).href, + siteName: 'Bradley Shellnut Personal Website', + type: 'website', + locale: 'en_US', + images: [ + { + url: `${baseUrl}b_shell_nut_favicon.gif`, + alt: 'Bradley Shellnut Website Logo', + width: 512, + height: 512 + } + ] + }, + twitter: { + title: '/Uses', + description: "What I use!", + card: 'summary_large_image', + image: `${baseUrl}b_shell_nut_favicon.gif`, + imageAlt: 'Bradley Shellnut Website Logo' + }, + url: currentPageUrl }); return {