diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 38972655..00000000 --- a/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -.DS_Store -node_modules -/build -/.svelte-kit -/package -.env -.env.* -!.env.example - -# Ignore files for PNPM, NPM and YARN -pnpm-lock.yaml -package-lock.json -yarn.lock diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 2fa6facc..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,31 +0,0 @@ -/** @type { import("eslint").Linter.Config } */ -module.exports = { - root: true, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:svelte/recommended', - 'prettier', - ], - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - parserOptions: { - sourceType: 'module', - ecmaVersion: 2020, - extraFileExtensions: ['.svelte'], - }, - env: { - browser: true, - es2017: true, - node: true, - }, - overrides: [ - { - files: ['*.svelte'], - parser: 'svelte-eslint-parser', - parserOptions: { - parser: '@typescript-eslint/parser', - }, - }, - ], -} diff --git a/.gitignore b/.gitignore index 34b3a97b..79518f71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,21 @@ -.DS_Store node_modules -/build + +# Output +.output +.vercel /.svelte-kit -/package +/build + +# OS +.DS_Store +Thumbs.db + +# Env .env .env.* !.env.example +!.env.test + +# Vite vite.config.js.timestamp-* vite.config.ts.timestamp-* -.vercel_build_output -.vercel -.env*.local diff --git a/.prettierignore b/.prettierignore index cc41cea9..ab78a95d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,4 @@ -# Ignore files for PNPM, NPM and YARN -pnpm-lock.yaml +# Package Managers package-lock.json +pnpm-lock.yaml yarn.lock diff --git a/.prettierrc b/.prettierrc index d77af178..a139386b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,7 +1,6 @@ { "useTabs": true, "singleQuote": true, - "semi": false, "trailingComma": "all", "printWidth": 70, "arrowParens": "avoid", diff --git a/README.md b/README.md index 6038c220..bafd7f65 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,4 @@ [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier) -## CV using SvelteKit and MDSveX \ No newline at end of file +## CV using SvelteKit and MDSveX diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..f3d81e92 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,33 @@ +import js from '@eslint/js'; +import prettier from 'eslint-config-prettier'; +import svelte from 'eslint-plugin-svelte'; +import globals from 'globals'; +import ts from 'typescript-eslint'; + +/** @type {import('eslint').Linter.FlatConfig[]} */ +export default [ + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs['flat/recommended'], + prettier, + ...svelte.configs['flat/prettier'], + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + }, + { + files: ['**/*.svelte'], + languageOptions: { + parserOptions: { + parser: ts.parser, + }, + }, + }, + { + ignores: ['build/', '.svelte-kit/', 'dist/'], + }, +]; diff --git a/mdsvex.config.js b/mdsvex.config.js index d72a8e09..9b8e836e 100644 --- a/mdsvex.config.js +++ b/mdsvex.config.js @@ -1,5 +1,5 @@ -import { defineMDSveXConfig as defineConfig } from 'mdsvex' -import remarkExternalLinks from 'remark-external-links' +import { defineMDSveXConfig as defineConfig } from 'mdsvex'; +import remarkExternalLinks from 'remark-external-links'; const config = defineConfig({ extensions: ['.svelte.md', '.md', '.svx'], @@ -15,6 +15,6 @@ const config = defineConfig({ ], ], rehypePlugins: [], -}) +}); -export default config +export default config; diff --git a/package.json b/package.json index 3029443b..6f7e2182 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cv", - "version": "0.2.0", + "version": "0.3.0", "private": true, "scripts": { "dev": "vite dev", @@ -17,40 +17,39 @@ "cspell": "cspell '**/*.md' --config cspell.json --wordsOnly" }, "devDependencies": { - "@playwright/test": "^1.44.1", - "@sveltejs/adapter-auto": "^3.2.1", - "@sveltejs/kit": "^2.5.10", - "@sveltejs/vite-plugin-svelte": "^3.1.1", + "@playwright/test": "^1.28.1", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", "@tailwindcss/typography": "^0.5.13", - "@testing-library/svelte": "^5.1.0", - "@types/eslint": "8.56.10", - "@typescript-eslint/eslint-plugin": "^7.12.0", - "@typescript-eslint/parser": "^7.12.0", + "@testing-library/svelte": "^5.2.0", + "@types/eslint": "^8.56.7", "autoprefixer": "^10.4.19", - "cspell": "^8.8.4", - "daisyui": "^4.12.2", + "cspell": "^8.9.1", + "daisyui": "^4.12.10", "date-fns": "^3.6.0", - "eslint": "^9.4.0", + "eslint": "^9.0.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-svelte": "^2.39.0", - "fathom-client": "^3.6.0", + "eslint-plugin-svelte": "^2.36.0", + "fathom-client": "^3.7.0", + "globals": "^15.0.0", "jsdom": "^24.1.0", "mdsvex": "^0.11.2", "postcss": "^8.4.38", - "postcss-load-config": "^6.0.1", - "prettier": "^3.3.1", - "prettier-plugin-svelte": "^3.2.4", - "prettier-plugin-tailwindcss": "^0.6.2", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "prettier-plugin-tailwindcss": "^0.6.4", "remark-external-links": "^9.0.1", "svead": "^0.0.4", "svelte": "^5.0.0-next.1", - "svelte-check": "^3.8.0", + "svelte-check": "^3.6.0", "tailwindcss": "^3.4.4", "theme-change": "^2.5.0", - "tslib": "^2.6.3", - "typescript": "^5.4.5", - "vite": "^5.2.13", - "vitest": "^1.6.0" + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "typescript-eslint": "^8.0.0-alpha.20", + "vite": "^5.0.3", + "vitest": "^1.2.0" }, "type": "module" -} \ No newline at end of file +} diff --git a/playwright.config.ts b/playwright.config.ts index d1408bdf..770c7ff0 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,12 +1,12 @@ -import type { PlaywrightTestConfig } from '@playwright/test' +import type { PlaywrightTestConfig } from '@playwright/test'; const config: PlaywrightTestConfig = { webServer: { - command: 'pnpm run build && pnpm run preview', + command: 'npm run build && npm run preview', port: 4173, }, testDir: 'tests', testMatch: /(.+\.)?(test|spec)\.[jt]s/, -} +}; -export default config +export default config; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78c81f32..79cf03ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,76 +6,70 @@ settings: devDependencies: '@playwright/test': - specifier: ^1.44.1 + specifier: ^1.28.1 version: 1.45.0 '@sveltejs/adapter-auto': - specifier: ^3.2.1 - version: 3.2.2(@sveltejs/kit@2.5.15) + specifier: ^3.0.0 + version: 3.2.2(@sveltejs/kit@2.5.18) '@sveltejs/kit': - specifier: ^2.5.10 - version: 2.5.15(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.166)(vite@5.3.2) + specifier: ^2.0.0 + version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.167)(vite@5.3.2) '@sveltejs/vite-plugin-svelte': - specifier: ^3.1.1 - version: 3.1.1(svelte@5.0.0-next.166)(vite@5.3.2) + specifier: ^3.0.0 + version: 3.1.1(svelte@5.0.0-next.167)(vite@5.3.2) '@tailwindcss/typography': specifier: ^0.5.13 version: 0.5.13(tailwindcss@3.4.4) '@testing-library/svelte': - specifier: ^5.1.0 - version: 5.2.0(svelte@5.0.0-next.166)(vite@5.3.2)(vitest@1.6.0) + specifier: ^5.2.0 + version: 5.2.0(svelte@5.0.0-next.167)(vite@5.3.2)(vitest@1.6.0) '@types/eslint': - specifier: 8.56.10 + specifier: ^8.56.7 version: 8.56.10 - '@typescript-eslint/eslint-plugin': - specifier: ^7.12.0 - version: 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/parser': - specifier: ^7.12.0 - version: 7.14.1(eslint@9.6.0)(typescript@5.5.2) autoprefixer: specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.38) + version: 10.4.19(postcss@8.4.39) cspell: - specifier: ^8.8.4 + specifier: ^8.9.1 version: 8.9.1 daisyui: - specifier: ^4.12.2 - version: 4.12.3(postcss@8.4.38) + specifier: ^4.12.10 + version: 4.12.10(postcss@8.4.39) date-fns: specifier: ^3.6.0 version: 3.6.0 eslint: - specifier: ^9.4.0 + specifier: ^9.0.0 version: 9.6.0 eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@9.6.0) eslint-plugin-svelte: - specifier: ^2.39.0 - version: 2.41.0(eslint@9.6.0)(svelte@5.0.0-next.166) + specifier: ^2.36.0 + version: 2.41.0(eslint@9.6.0)(svelte@5.0.0-next.167) fathom-client: - specifier: ^3.6.0 + specifier: ^3.7.0 version: 3.7.0 + globals: + specifier: ^15.0.0 + version: 15.6.0 jsdom: specifier: ^24.1.0 version: 24.1.0 mdsvex: specifier: ^0.11.2 - version: 0.11.2(svelte@5.0.0-next.166) + version: 0.11.2(svelte@5.0.0-next.167) postcss: specifier: ^8.4.38 - version: 8.4.38 - postcss-load-config: - specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.38) + version: 8.4.39 prettier: - specifier: ^3.3.1 + specifier: ^3.1.1 version: 3.3.2 prettier-plugin-svelte: - specifier: ^3.2.4 - version: 3.2.5(prettier@3.3.2)(svelte@5.0.0-next.166) + specifier: ^3.1.2 + version: 3.2.5(prettier@3.3.2)(svelte@5.0.0-next.167) prettier-plugin-tailwindcss: - specifier: ^0.6.2 + specifier: ^0.6.4 version: 0.6.5(prettier-plugin-svelte@3.2.5)(prettier@3.3.2) remark-external-links: specifier: ^9.0.1 @@ -85,10 +79,10 @@ devDependencies: version: 0.0.4 svelte: specifier: ^5.0.0-next.1 - version: 5.0.0-next.166 + version: 5.0.0-next.167 svelte-check: - specifier: ^3.8.0 - version: 3.8.4(postcss-load-config@6.0.1)(postcss@8.4.38)(svelte@5.0.0-next.166) + specifier: ^3.6.0 + version: 3.8.4(postcss@8.4.39)(svelte@5.0.0-next.167) tailwindcss: specifier: ^3.4.4 version: 3.4.4 @@ -96,16 +90,19 @@ devDependencies: specifier: ^2.5.0 version: 2.5.0 tslib: - specifier: ^2.6.3 + specifier: ^2.4.1 version: 2.6.3 typescript: - specifier: ^5.4.5 + specifier: ^5.0.0 version: 5.5.2 + typescript-eslint: + specifier: ^8.0.0-alpha.20 + version: 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) vite: - specifier: ^5.2.13 + specifier: ^5.0.3 version: 5.3.2 vitest: - specifier: ^1.6.0 + specifier: ^1.2.0 version: 1.6.0(jsdom@24.1.0) packages: @@ -202,7 +199,7 @@ packages: '@cspell/dict-ruby': 5.0.2 '@cspell/dict-rust': 4.0.4 '@cspell/dict-scala': 5.0.2 - '@cspell/dict-software-terms': 3.4.7 + '@cspell/dict-software-terms': 3.4.8 '@cspell/dict-sql': 2.1.3 '@cspell/dict-svelte': 1.0.2 '@cspell/dict-swift': 2.0.1 @@ -426,8 +423,8 @@ packages: resolution: {integrity: sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw==} dev: true - /@cspell/dict-software-terms@3.4.7: - resolution: {integrity: sha512-ZZIBx7kJBLQfZ9NmGSULZDEHOWz0lVRU3+qf2SDTUFG1jYLv8ahPVKGRkx22r76ePPeJlujm7rk2j1LETFLcIA==} + /@cspell/dict-software-terms@3.4.8: + resolution: {integrity: sha512-r3gvmSGd8wZp4bbofTey/2Tu3gdBc5kxTRoFo1MaCh5vMLiBOSCLvyZgzr0DcMl8c5dxL7nFpNwbWZJxmKmtUA==} dev: true /@cspell/dict-sql@2.1.3: @@ -688,11 +685,6 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.10.1: - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - /@eslint-community/regexpp@4.11.0: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -967,17 +959,17 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sveltejs/adapter-auto@3.2.2(@sveltejs/kit@2.5.15): + /@sveltejs/adapter-auto@3.2.2(@sveltejs/kit@2.5.18): resolution: {integrity: sha512-Mso5xPCA8zgcKrv+QioVlqMZkyUQ5MjDJiEPuG/Z7cV/5tmwV7LmcVWk5tZ+H0NCOV1x12AsoSpt/CwFwuVXMA==} peerDependencies: '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 2.5.15(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.166)(vite@5.3.2) + '@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.167)(vite@5.3.2) import-meta-resolve: 4.1.0 dev: true - /@sveltejs/kit@2.5.15(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.166)(vite@5.3.2): - resolution: {integrity: sha512-O3yB2Z84xllzaRyBLAw/jCi74wx9hTszs6mqUj4pbKsGBRHtTXl3qA+yvKbfXnxNhab/jEyVfphB9q6jU05dpg==} + /@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.167)(vite@5.3.2): + resolution: {integrity: sha512-+g06hvpVAnH7b4CDjhnTDgFWBKBiQJpuSmQeGYOuzbO3SC3tdYjRNlDCrafvDtKbGiT2uxY5Dn9qdEUGVZdWOQ==} engines: {node: '>=18.13'} hasBin: true requiresBuild: true @@ -986,7 +978,7 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.166)(vite@5.3.2) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.167)(vite@5.3.2) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.0.0 @@ -998,12 +990,12 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 tiny-glob: 0.2.9 vite: 5.3.2 dev: true - /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.166)(vite@5.3.2): + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.167)(vite@5.3.2): resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -1011,28 +1003,28 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.166)(vite@5.3.2) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.167)(vite@5.3.2) debug: 4.3.5 - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 vite: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.166)(vite@5.3.2): + /@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.167)(vite@5.3.2): resolution: {integrity: sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.166)(vite@5.3.2) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.167)(vite@5.3.2) debug: 4.3.5 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.10 - svelte: 5.0.0-next.166 - svelte-hmr: 0.16.0(svelte@5.0.0-next.166) + svelte: 5.0.0-next.167 + svelte-hmr: 0.16.0(svelte@5.0.0-next.167) vite: 5.3.2 vitefu: 0.2.5(vite@5.3.2) transitivePeerDependencies: @@ -1065,7 +1057,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/svelte@5.2.0(svelte@5.0.0-next.166)(vite@5.3.2)(vitest@1.6.0): + /@testing-library/svelte@5.2.0(svelte@5.0.0-next.167)(vite@5.3.2)(vitest@1.6.0): resolution: {integrity: sha512-oMIFfxMcaPOXp+BQTRVgkeKzfAx7ee9fMrWaiKbMN36tN61kLl4Uj5ZZ/y1w9aL3a0BuBEoErV5iorYwCHqVUA==} engines: {node: '>= 10'} peerDependencies: @@ -1079,7 +1071,7 @@ packages: optional: true dependencies: '@testing-library/dom': 10.2.0 - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 vite: 5.3.2 vitest: 1.6.0(jsdom@24.1.0) dev: true @@ -1127,23 +1119,23 @@ packages: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true - /@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1)(eslint@9.6.0)(typescript@5.5.2): - resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/eslint-plugin@8.0.0-alpha.36(@typescript-eslint/parser@8.0.0-alpha.36)(eslint@9.6.0)(typescript@5.5.2): + resolution: {integrity: sha512-Zt9x8YkczT509hphDxgKUlgC/JMyf/49U6idIPgOdo9Z11/jV5MaphxeKTEGTM+Ztqtx+XxprPICDgZFZZLdfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.14.1 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 8.0.0-alpha.36 + '@typescript-eslint/type-utils': 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/utils': 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 8.0.0-alpha.36 eslint: 9.6.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -1154,20 +1146,20 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2): - resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/parser@8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2): + resolution: {integrity: sha512-DruwS9XPHbNsswczBkVQovefdWE5rNl1WBgywV3Z9gbNAzezk4OFHYMmmKO9ELHWED8ylXZ02m0Nr1g4xRhs5A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/scope-manager': 8.0.0-alpha.36 + '@typescript-eslint/types': 8.0.0-alpha.36 + '@typescript-eslint/typescript-estree': 8.0.0-alpha.36(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 8.0.0-alpha.36 debug: 4.3.5 eslint: 9.6.0 typescript: 5.5.2 @@ -1175,50 +1167,49 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@7.14.1: - resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/scope-manager@8.0.0-alpha.36: + resolution: {integrity: sha512-uNpmffI+3Krh8k7lKQcs4XsrKO22eJUHRko+s6spnRc3i5FsZOZr2+VbmtJsliOraUKZJ275IqLVzyaCPO+gJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/types': 8.0.0-alpha.36 + '@typescript-eslint/visitor-keys': 8.0.0-alpha.36 dev: true - /@typescript-eslint/type-utils@7.14.1(eslint@9.6.0)(typescript@5.5.2): - resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/type-utils@8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2): + resolution: {integrity: sha512-Xap1FaM08TJ11umNFAEd+tpSr9F4K/rs4LhnlGlkA7TugWKdrBBnUOmE+U/XVZRmPjA3KnJ/whNcq5bQf7++mw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/typescript-estree': 8.0.0-alpha.36(typescript@5.5.2) + '@typescript-eslint/utils': 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) debug: 4.3.5 - eslint: 9.6.0 ts-api-utils: 1.3.0(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: + - eslint - supports-color dev: true - /@typescript-eslint/types@7.14.1: - resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/types@8.0.0-alpha.36: + resolution: {integrity: sha512-D+w5uE8Y83K/P5VQZyKKi4pwTL2YkWOwtQOVJQI38Rp8f3pmY+Jmcps3wkSFSJK8wifTlvoHwwIBf1FsdCW/EA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.2): - resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/typescript-estree@8.0.0-alpha.36(typescript@5.5.2): + resolution: {integrity: sha512-1K2kj/CyMCDQlXubWJYx4aP5sUSi4OWeD7Z2MAOsoO2/EbPtHxdepqneYt20oR8TO5FUcXz3cV5BNUVAMoH6qg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/types': 8.0.0-alpha.36 + '@typescript-eslint/visitor-keys': 8.0.0-alpha.36 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 @@ -1230,27 +1221,27 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@7.14.1(eslint@9.6.0)(typescript@5.5.2): - resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/utils@8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2): + resolution: {integrity: sha512-ITYdcfB6FSnGhrPpxBAB7/q/jvhfe1MTYgwvpLfTeqExQUTnSEiBlHS/oyFkTnxvLxUbCSiBbAKOv69FgGYnEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) + '@typescript-eslint/scope-manager': 8.0.0-alpha.36 + '@typescript-eslint/types': 8.0.0-alpha.36 + '@typescript-eslint/typescript-estree': 8.0.0-alpha.36(typescript@5.5.2) eslint: 9.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@7.14.1: - resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} - engines: {node: ^18.18.0 || >=20.0.0} + /@typescript-eslint/visitor-keys@8.0.0-alpha.36: + resolution: {integrity: sha512-V1LYF9mdUeMl/6rtbhCpYGkXKlx+zKh1Y09kEPtitvMDjA3Sb17Ph5OCckVkQCet2GjxrMZtpn1bTobZa8eD0Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/types': 8.0.0-alpha.36 eslint-visitor-keys: 3.4.3 dev: true @@ -1309,9 +1300,11 @@ packages: acorn: 8.12.0 dev: true - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + /acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.0 dev: true /acorn@8.12.0: @@ -1415,19 +1408,19 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /autoprefixer@10.4.19(postcss@8.4.38): + /autoprefixer@10.4.19(postcss@8.4.39): resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001611 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001638 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.38 + picocolors: 1.0.1 + postcss: 8.4.39 postcss-value-parser: 4.2.0 dev: true @@ -1470,15 +1463,15 @@ packages: fill-range: 7.1.1 dev: true - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001611 - electron-to-chromium: 1.4.744 + caniuse-lite: 1.0.30001638 + electron-to-chromium: 1.4.815 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.1) dev: true /buffer-crc32@1.0.0: @@ -1501,8 +1494,8 @@ packages: engines: {node: '>= 6'} dev: true - /caniuse-lite@1.0.30001611: - resolution: {integrity: sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q==} + /caniuse-lite@1.0.30001638: + resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} dev: true /chai@4.4.1: @@ -1511,7 +1504,7 @@ packages: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 @@ -1792,14 +1785,14 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /daisyui@4.12.3(postcss@8.4.38): - resolution: {integrity: sha512-ysVc5wwH+XhQQHVhl3BMnuJa/+dbLnSf3b5cBoGwwEocYrjv+2Vh/lkKaRF627sLkI/s43Srw2rUoZFBcmqD+A==} + /daisyui@4.12.10(postcss@8.4.39): + resolution: {integrity: sha512-jp1RAuzbHhGdXmn957Z2XsTZStXGHzFfF0FgIOZj3Wv9sH7OZgLfXTRZNfKVYxltGUOBsG1kbWAdF5SrqjebvA==} engines: {node: '>=16.9.0'} dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 picocolors: 1.0.1 - postcss-js: 4.0.1(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.39) transitivePeerDependencies: - postcss dev: true @@ -1816,18 +1809,6 @@ packages: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} dev: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -1844,8 +1825,8 @@ packages: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + /deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 @@ -1907,8 +1888,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.744: - resolution: {integrity: sha512-nAGcF0yeKKfrP13LMFr5U1eghfFSvFLg302VUFzWlcjPOnUYd52yU5x6PBYrujhNbc4jYmZFrGZFK+xasaEzVA==} + /electron-to-chromium@1.4.815: + resolution: {integrity: sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==} dev: true /emoji-regex@8.0.0: @@ -1998,7 +1979,7 @@ packages: eslint: 9.6.0 dev: true - /eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@5.0.0-next.166): + /eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@5.0.0-next.167): resolution: {integrity: sha512-gjU9Q/psxbWG1VNwYbEb0Q6U4W5PBGaDpYmO2zlQ+zlAMVS3Qt0luAK0ACi/tMSwRK6JENiySvMyJbO0YWmXSg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: @@ -2014,13 +1995,13 @@ packages: eslint-compat-utils: 0.5.1(eslint@9.6.0) esutils: 2.0.3 known-css-properties: 0.34.0 - postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38) - postcss-safe-parser: 6.0.0(postcss@8.4.38) + postcss: 8.4.39 + postcss-load-config: 3.1.4(postcss@8.4.39) + postcss-safe-parser: 6.0.0(postcss@8.4.39) postcss-selector-parser: 6.1.0 semver: 7.6.2 - svelte: 5.0.0-next.166 - svelte-eslint-parser: 0.39.2(svelte@5.0.0-next.166) + svelte: 5.0.0-next.167 + svelte-eslint-parser: 0.39.2(svelte@5.0.0-next.167) transitivePeerDependencies: - ts-node dev: true @@ -2259,8 +2240,8 @@ packages: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + /foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -2342,7 +2323,7 @@ packages: engines: {node: '>=16 || 14 >=14.18'} hasBin: true dependencies: - foreground-child: 3.1.1 + foreground-child: 3.2.1 jackspeak: 3.4.0 minimatch: 9.0.5 minipass: 7.1.2 @@ -2374,6 +2355,11 @@ packages: engines: {node: '>=18'} dev: true + /globals@15.6.0: + resolution: {integrity: sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==} + engines: {node: '>=18'} + dev: true + /globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} dev: true @@ -2441,8 +2427,8 @@ packages: - supports-color dev: true - /https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + /https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 @@ -2519,8 +2505,9 @@ packages: engines: {node: '>=4'} dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 dev: true @@ -2585,8 +2572,8 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jiti@1.21.3: - resolution: {integrity: sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw==} + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true dev: true @@ -2620,11 +2607,11 @@ packages: form-data: 4.0.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.10 parse5: 7.1.2 - rrweb-cssom: 0.7.0 + rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -2633,7 +2620,7 @@ packages: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 - ws: 8.17.0 + ws: 8.17.1 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -2681,8 +2668,8 @@ packages: engines: {node: '>=10'} dev: true - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + /lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} dev: true @@ -2694,8 +2681,8 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} dependencies: - mlly: 1.6.1 - pkg-types: 1.1.0 + mlly: 1.7.1 + pkg-types: 1.1.1 dev: true /locate-character@3.0.0: @@ -2727,8 +2714,8 @@ packages: get-func-name: 2.0.2 dev: true - /lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + /lru-cache@10.3.0: + resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} engines: {node: 14 || >=16.14} dev: true @@ -2751,7 +2738,7 @@ packages: unist-util-visit: 4.1.2 dev: true - /mdsvex@0.11.2(svelte@5.0.0-next.166): + /mdsvex@0.11.2(svelte@5.0.0-next.167): resolution: {integrity: sha512-Y4ab+vLvTJS88196Scb/RFNaHMHVSWw6CwfsgWIQP8f42D57iDII0/qABSu530V4pkv8s6T2nx3ds0MC1VwFLA==} peerDependencies: svelte: ^3.56.0 || ^4.0.0 || ^5.0.0-next.120 @@ -2759,7 +2746,7 @@ packages: '@types/unist': 2.0.10 prism-svelte: 0.4.7 prismjs: 1.29.0 - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 vfile-message: 2.0.4 dev: true @@ -2831,12 +2818,12 @@ packages: minimist: 1.2.8 dev: true - /mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: acorn: 8.12.0 pathe: 1.1.2 - pkg-types: 1.1.0 + pkg-types: 1.1.1 ufo: 1.5.3 dev: true @@ -2943,7 +2930,7 @@ packages: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 dev: true /p-locate@5.0.0: @@ -3005,7 +2992,7 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.2 + lru-cache: 10.3.0 minipass: 7.1.2 dev: true @@ -3022,10 +3009,6 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - /picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} dev: true @@ -3045,11 +3028,11 @@ packages: engines: {node: '>= 6'} dev: true - /pkg-types@1.1.0: - resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} + /pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} dependencies: confbox: 0.1.7 - mlly: 1.6.1 + mlly: 1.7.1 pathe: 1.1.2 dev: true @@ -3069,29 +3052,29 @@ packages: fsevents: 2.3.2 dev: true - /postcss-import@15.1.0(postcss@8.4.38): + /postcss-import@15.1.0(postcss@8.4.39): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.38): + /postcss-js@4.0.1(postcss@8.4.39): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.38 + postcss: 8.4.39 dev: true - /postcss-load-config@3.1.4(postcss@8.4.38): + /postcss-load-config@3.1.4(postcss@8.4.39): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -3104,11 +3087,11 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.38 + postcss: 8.4.39 yaml: 1.10.2 dev: true - /postcss-load-config@4.0.2(postcss@8.4.38): + /postcss-load-config@4.0.2(postcss@8.4.39): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -3120,59 +3103,37 @@ packages: ts-node: optional: true dependencies: - lilconfig: 3.1.1 - postcss: 8.4.38 + lilconfig: 3.1.2 + postcss: 8.4.39 yaml: 2.4.5 dev: true - /postcss-load-config@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - dependencies: - lilconfig: 3.1.1 - postcss: 8.4.38 - dev: true - - /postcss-nested@6.0.1(postcss@8.4.38): + /postcss-nested@6.0.1(postcss@8.4.39): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 postcss-selector-parser: 6.1.0 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.38): + /postcss-safe-parser@6.0.0(postcss@8.4.39): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: true - /postcss-scss@4.0.9(postcss@8.4.38): + /postcss-scss@4.0.9(postcss@8.4.39): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.38 + postcss: 8.4.39 dev: true /postcss-selector-parser@6.0.10: @@ -3195,12 +3156,12 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: true @@ -3209,14 +3170,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@3.2.5(prettier@3.3.2)(svelte@5.0.0-next.166): + /prettier-plugin-svelte@3.2.5(prettier@3.3.2)(svelte@5.0.0-next.167): resolution: {integrity: sha512-vP/M/Goc8z4iVIvrwXwbrYVjJgA0Hf8PO1G4LBh/ocSt6vUP6sLvyu9F3ABEGr+dbKyxZjEKLkeFsWy/yYl0HQ==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: prettier: 3.3.2 - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 dev: true /prettier-plugin-tailwindcss@0.6.5(prettier-plugin-svelte@3.2.5)(prettier@3.3.2): @@ -3272,7 +3233,7 @@ packages: optional: true dependencies: prettier: 3.3.2 - prettier-plugin-svelte: 3.2.5(prettier@3.3.2)(svelte@5.0.0-next.166) + prettier-plugin-svelte: 3.2.5(prettier@3.3.2)(svelte@5.0.0-next.167) dev: true /prettier@3.3.2: @@ -3386,7 +3347,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -3434,8 +3395,8 @@ packages: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true - /rrweb-cssom@0.7.0: - resolution: {integrity: sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g==} + /rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} dev: true /run-parallel@1.2.0: @@ -3635,7 +3596,7 @@ packages: resolution: {integrity: sha512-BrS8WAvrdUs6nbXyZN/kABjLBcPFqA1QBnbpJQiRzxfdA/8XchNJmiRmcPFTElw5NA5k7AG/eYWjj91V+8+Heg==} dev: true - /svelte-check@3.8.4(postcss-load-config@6.0.1)(postcss@8.4.38)(svelte@5.0.0-next.166): + /svelte-check@3.8.4(postcss@8.4.39)(svelte@5.0.0-next.167): resolution: {integrity: sha512-61aHMkdinWyH8BkkTX9jPLYxYzaAAz/FK/VQqdr2FiCQQ/q04WCwDlpGbHff1GdrMYTmW8chlTFvRWL9k0A8vg==} hasBin: true peerDependencies: @@ -3645,8 +3606,8 @@ packages: chokidar: 3.6.0 picocolors: 1.0.1 sade: 1.8.1 - svelte: 5.0.0-next.166 - svelte-preprocess: 5.1.4(postcss-load-config@6.0.1)(postcss@8.4.38)(svelte@5.0.0-next.166)(typescript@5.5.2) + svelte: 5.0.0-next.167 + svelte-preprocess: 5.1.4(postcss@8.4.39)(svelte@5.0.0-next.167)(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: - '@babel/core' @@ -3660,7 +3621,7 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.39.2(svelte@5.0.0-next.166): + /svelte-eslint-parser@0.39.2(svelte@5.0.0-next.167): resolution: {integrity: sha512-87UwLuWTtDIuzWOhOi1zBL5wYVd07M5BK1qZ57YmXJB5/UmjUNJqGy3XSOhPqjckY1dATNV9y+mx+nI0WH6HPA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3672,21 +3633,21 @@ packages: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.38 - postcss-scss: 4.0.9(postcss@8.4.38) - svelte: 5.0.0-next.166 + postcss: 8.4.39 + postcss-scss: 4.0.9(postcss@8.4.39) + svelte: 5.0.0-next.167 dev: true - /svelte-hmr@0.16.0(svelte@5.0.0-next.166): + /svelte-hmr@0.16.0(svelte@5.0.0-next.167): resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 dev: true - /svelte-preprocess@5.1.4(postcss-load-config@6.0.1)(postcss@8.4.38)(svelte@5.0.0-next.166)(typescript@5.5.2): + /svelte-preprocess@5.1.4(postcss@8.4.39)(svelte@5.0.0-next.167)(typescript@5.5.2): resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} engines: {node: '>= 16.0.0'} requiresBuild: true @@ -3727,16 +3688,15 @@ packages: '@types/pug': 2.0.10 detect-indent: 6.1.0 magic-string: 0.30.10 - postcss: 8.4.38 - postcss-load-config: 6.0.1(postcss@8.4.38) + postcss: 8.4.39 sorcery: 0.11.1 strip-indent: 3.0.0 - svelte: 5.0.0-next.166 + svelte: 5.0.0-next.167 typescript: 5.5.2 dev: true - /svelte@5.0.0-next.166: - resolution: {integrity: sha512-s1anY8eTprp42QyHGdbfIT7pO+gYgwnS6hkMmvd8ayW5krV9HLYjbQcVUb8/GyQSIlWtewvmZVZ58rpKjRmdTg==} + /svelte@5.0.0-next.167: + resolution: {integrity: sha512-GyXJtgomcoT4QZ93tRnnuj+CE0ez5QbEzTUhF93PjjMw32V2ocWL0iOfrs4Las0oHGSqGNQFc0q+Lo8sogQSMQ==} engines: {node: '>=18'} dependencies: '@ampproject/remapping': 2.3.0 @@ -3771,17 +3731,17 @@ packages: fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.3 + jiti: 1.21.6 lilconfig: 2.1.0 micromatch: 4.0.7 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38) - postcss-nested: 6.0.1(postcss@8.4.38) + postcss: 8.4.39 + postcss-import: 15.1.0(postcss@8.4.39) + postcss-js: 4.0.1(postcss@8.4.39) + postcss-load-config: 4.0.2(postcss@8.4.39) + postcss-nested: 6.0.1(postcss@8.4.39) postcss-selector-parser: 6.1.0 resolve: 1.22.8 sucrase: 3.35.0 @@ -3817,8 +3777,8 @@ packages: globrex: 0.1.2 dev: true - /tinybench@2.7.0: - resolution: {integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==} + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} dev: true /tinypool@0.8.4: @@ -3893,6 +3853,24 @@ packages: engines: {node: '>=4'} dev: true + /typescript-eslint@8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2): + resolution: {integrity: sha512-QPIwkUDMoTZmCCXcnyOfEJo3ymxfF8sSla7ZtNr1qqRY/wxMBe4htWDHj9y+iDOYsAusl37MPsBDKqyazacTVA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.36(@typescript-eslint/parser@8.0.0-alpha.36)(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/parser': 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/utils': 8.0.0-alpha.36(eslint@9.6.0)(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - eslint + - supports-color + dev: true + /typescript@5.5.2: resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} @@ -3953,15 +3931,15 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.16(browserslist@4.23.1): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /uri-js@4.4.1: @@ -4010,9 +3988,9 @@ packages: hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.5 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 vite: 5.3.2 transitivePeerDependencies: - '@types/node' @@ -4054,7 +4032,7 @@ packages: optional: true dependencies: esbuild: 0.21.5 - postcss: 8.4.38 + postcss: 8.4.39 rollup: 4.18.0 optionalDependencies: fsevents: 2.3.3 @@ -4101,18 +4079,18 @@ packages: '@vitest/snapshot': 1.6.0 '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 + acorn-walk: 8.3.3 chai: 4.4.1 - debug: 4.3.4 + debug: 4.3.5 execa: 8.0.1 jsdom: 24.1.0 local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 - tinybench: 2.7.0 + tinybench: 2.8.0 tinypool: 0.8.4 vite: 5.3.2 vite-node: 1.6.0 @@ -4211,8 +4189,8 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4254,8 +4232,8 @@ packages: engines: {node: '>=10'} dev: true - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + /yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} dev: true diff --git a/postcss.config.cjs b/postcss.config.cjs deleted file mode 100644 index 37944683..00000000 --- a/postcss.config.cjs +++ /dev/null @@ -1,13 +0,0 @@ -const tailwindcss = require('tailwindcss') -const autoprefixer = require('autoprefixer') - -const config = { - plugins: [ - //Some plugins, like tailwindcss/nesting, need to run before Tailwind, - tailwindcss(), - //But others, like autoprefixer, need to run after, - autoprefixer, - ], -} - -module.exports = config diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..7b75c83a --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/src/app.postcss b/src/app.css similarity index 100% rename from src/app.postcss rename to src/app.css diff --git a/src/app.d.ts b/src/app.d.ts index f70d0e11..743f07b2 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -10,4 +10,4 @@ declare global { } } -export {} +export {}; diff --git a/src/index.test.ts b/src/index.test.ts index 19e09bd9..5d409673 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -1,7 +1,7 @@ -import { describe, expect, it } from 'vitest' +import { describe, expect, it } from 'vitest'; describe('sum test', () => { it('adds 1 + 2 to equal 3', () => { - expect(1 + 2).toBe(3) - }) -}) + expect(1 + 2).toBe(3); + }); +}); diff --git a/src/lib/components/basics.svelte b/src/lib/components/basics.svelte index 3feaa33f..f190a0e6 100644 --- a/src/lib/components/basics.svelte +++ b/src/lib/components/basics.svelte @@ -1,14 +1,14 @@
diff --git a/src/lib/components/basics.test.ts b/src/lib/components/basics.test.ts index 98abfe2a..72712786 100644 --- a/src/lib/components/basics.test.ts +++ b/src/lib/components/basics.test.ts @@ -1,6 +1,6 @@ -import { cleanup, render } from '@testing-library/svelte/svelte5' -import { afterEach, describe, expect, it } from 'vitest' -import Basics from './basics.svelte' +import { cleanup, render } from '@testing-library/svelte/svelte5'; +import { afterEach, describe, expect, it } from 'vitest'; +import Basics from './basics.svelte'; describe('Basics', () => { // Define default props @@ -11,31 +11,31 @@ describe('Basics', () => { phone: 'default-phone-number', website: 'default-website.com', imgSrc: 'default-path/to/image.jpg', - } + }; afterEach(() => { - cleanup() - }) + cleanup(); + }); it('should render the name and label', () => { - const { getByText } = render(Basics, { ...defaultProps }) + const { getByText } = render(Basics, { ...defaultProps }); - const name = getByText('John Doe') - expect(name).not.toBeNull() + const name = getByText('John Doe'); + expect(name).not.toBeNull(); - const label = getByText('Software Developer') - expect(label).not.toBeNull() - }) + const label = getByText('Software Developer'); + expect(label).not.toBeNull(); + }); it('should render the avatar if imgSrc is provided', () => { const { getByAltText } = render(Basics, { ...defaultProps, imgSrc: 'path/to/image.jpg', - }) + }); - const avatar = getByAltText('John Doe') - expect(avatar).not.toBeNull() - }) + const avatar = getByAltText('John Doe'); + expect(avatar).not.toBeNull(); + }); it('should render email, phone, and website details', () => { const { getByText } = render(Basics, { @@ -43,18 +43,18 @@ describe('Basics', () => { email: 'john@example.com', phone: '+1234567890', website: 'example.com', - }) + }); // Check email - const email = getByText('john@example.com') - expect(email).not.toBeNull() + const email = getByText('john@example.com'); + expect(email).not.toBeNull(); // Check phone - const phone = getByText('+1234567890') - expect(phone).not.toBeNull() + const phone = getByText('+1234567890'); + expect(phone).not.toBeNull(); // Check website - const website = getByText('example.com') - expect(website).not.toBeNull() - }) -}) + const website = getByText('example.com'); + expect(website).not.toBeNull(); + }); +}); diff --git a/src/lib/components/date-distance.svelte b/src/lib/components/date-distance.svelte index c635968c..6142dd28 100644 --- a/src/lib/components/date-distance.svelte +++ b/src/lib/components/date-distance.svelte @@ -1,12 +1,12 @@ {distance} diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index 421f8d6e..6d638c9c 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -1,5 +1,5 @@ -export { default as Basics } from './basics.svelte' -export { default as Collapse } from './collapse.svelte' -export { default as DD } from './date-distance.svelte' -export { default as RoleDetails } from './role-details.svelte' -export { default as ThemeSwitch } from './theme-switch.svelte' +export { default as Basics } from './basics.svelte'; +export { default as Collapse } from './collapse.svelte'; +export { default as DD } from './date-distance.svelte'; +export { default as RoleDetails } from './role-details.svelte'; +export { default as ThemeSwitch } from './theme-switch.svelte'; diff --git a/src/lib/components/role-details.svelte b/src/lib/components/role-details.svelte index 9a1887d7..02f03207 100644 --- a/src/lib/components/role-details.svelte +++ b/src/lib/components/role-details.svelte @@ -1,52 +1,52 @@
{ const defaultProps = { @@ -9,74 +9,74 @@ describe('RoleDetails', () => { company: 'Tech Corp', startDate: new Date('2020-01-01'), endDate: new Date('2022-12-31'), - } + }; afterEach(() => { - cleanup() - }) + cleanup(); + }); it('renders the position and company', () => { - const { getByText } = render(RoleDetails, { ...defaultProps }) + const { getByText } = render(RoleDetails, { ...defaultProps }); - expect(getByText('Software Developer')).not.toBeNull() - expect(getByText('Tech Corp')).not.toBeNull() - }) + expect(getByText('Software Developer')).not.toBeNull(); + expect(getByText('Tech Corp')).not.toBeNull(); + }); it('formats dates correctly when both start and end dates are valid', () => { - const { getByText } = render(RoleDetails, { ...defaultProps }) + const { getByText } = render(RoleDetails, { ...defaultProps }); expect( getByText('Jan 2020 - Dec 2022 (2yrs 11mos)'), - ).not.toBeNull() - }) + ).not.toBeNull(); + }); it('shows "Present" for an invalid end date', () => { const { getByText } = render(RoleDetails, { ...defaultProps, endDate: null, - }) + }); - const currentDate = new Date() + const currentDate = new Date(); const totalMonths = differenceInMonths( currentDate, defaultProps.startDate, - ) - const years = Math.floor(totalMonths / 12) - const months = totalMonths % 12 + ); + const years = Math.floor(totalMonths / 12); + const months = totalMonths % 12; const durationText = - months === 0 ? `${years}yrs` : `${years}yrs ${months}mos` + months === 0 ? `${years}yrs` : `${years}yrs ${months}mos`; expect( getByText(`Jan 2020 - Present (${durationText})`), - ).not.toBeNull() - }) + ).not.toBeNull(); + }); it('shows duration correctly for 1 year', () => { const { getByText } = render(RoleDetails, { ...defaultProps, endDate: new Date('2021-01-01'), - }) + }); - expect(getByText('Jan 2020 - Jan 2021 (1yr)')).not.toBeNull() - }) + expect(getByText('Jan 2020 - Jan 2021 (1yr)')).not.toBeNull(); + }); it('shows duration correctly for 1 month', () => { const { getByText } = render(RoleDetails, { ...defaultProps, startDate: new Date('2022-01-01'), endDate: new Date('2022-02-01'), - }) + }); - expect(getByText('Jan 2022 - Feb 2022 (1mo)')).not.toBeNull() - }) + expect(getByText('Jan 2022 - Feb 2022 (1mo)')).not.toBeNull(); + }); it('shows duration correctly for a combination of years and months', () => { const { getByText } = render(RoleDetails, { ...defaultProps, startDate: new Date('2020-01-01'), endDate: new Date('2021-02-01'), - }) + }); - expect(getByText('Jan 2020 - Feb 2021 (1yr 1mo)')).not.toBeNull() - }) -}) + expect(getByText('Jan 2020 - Feb 2021 (1yr 1mo)')).not.toBeNull(); + }); +}); diff --git a/src/lib/config.ts b/src/lib/config.ts index bf207546..279515a7 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -1,5 +1,5 @@ -export const authorName = `Scott Spence` +export const authorName = `Scott Spence`; -export const siteName = `CV for Scott Spence` +export const siteName = `CV for Scott Spence`; -export const siteUrl = `https://mecv.xyz` +export const siteUrl = `https://mecv.xyz`; diff --git a/src/lib/copy/index.ts b/src/lib/copy/index.ts index 05da28f4..cbee8f4f 100644 --- a/src/lib/copy/index.ts +++ b/src/lib/copy/index.ts @@ -1,8 +1,8 @@ // @ts-nocheck -export { default as Basics } from './basics.md' -export { default as Education } from './education.md' -export { default as Interests } from './interests.md' -export { default as NonWebDevExp } from './non-webdev-exp.md' -export { default as References } from './references.md' -export { default as Skills } from './skills.md' -export { default as Work } from './work.md' +export { default as Basics } from './basics.md'; +export { default as Education } from './education.md'; +export { default as Interests } from './interests.md'; +export { default as NonWebDevExp } from './non-webdev-exp.md'; +export { default as References } from './references.md'; +export { default as Skills } from './skills.md'; +export { default as Work } from './work.md'; diff --git a/src/lib/copy/non-webdev-exp.md b/src/lib/copy/non-webdev-exp.md index 633560da..30452a28 100644 --- a/src/lib/copy/non-webdev-exp.md +++ b/src/lib/copy/non-webdev-exp.md @@ -244,9 +244,10 @@ processes, standards tools and resources. ### Highlights -Most recent project [Financial Crime Unit Sanctions Workflow Database -(Workflow Tool)] winning a Gold ROSCA [Barclays internal award for -excellence formerly known as a RAFTA] award for process enhancement. +Most recent project [Financial Crime Unit Sanctions Workflow +Database (Workflow Tool)] winning a Gold ROSCA [Barclays internal +award for excellence formerly known as a RAFTA] award for process +enhancement. Redeveloping two key systems within the team, both of which had reached the end of their current lifecycle. Both projects were MS @@ -303,10 +304,9 @@ plan for Larger Business sector found on the Business Banking Risk Learning intranet. Construction of the Sanctioners Toolkit also won a Silver RAFTA, this -also was delivered within a tight timescale [two weeks!] which has -also been adopted by all the GLT staff as an essential piece of kit -enabling smarter working within the teams. Feedback on this was -phenomenal +also was delivered within a tight timescale [two weeks!] which has also +been adopted by all the GLT staff as an essential piece of kit enabling +smarter working within the teams. Feedback on this was phenomenal diff --git a/src/lib/copy/work.md b/src/lib/copy/work.md index 1d99ee4f..3a56e572 100644 --- a/src/lib/copy/work.md +++ b/src/lib/copy/work.md @@ -123,11 +123,11 @@ product development to improve product designs. Jamstack Conf 2021 Workshop, **"Build with SvelteKit and GraphQL"** _build a fast secure project that uses SvelteKit's features_. -Jamstack Explorers Mission: "**[Building with SvelteKit and -GraphCMS]**". +Jamstack Explorers Mission: "**[Building with SvelteKit +and GraphCMS]**". -Recorded 26 [getting started videos] for the GraphCMS [examples repo] -on GitHub. +Recorded 26 [getting started videos] for the GraphCMS [examples repo] on +GitHub. Deep dives on getting started with SvelteKit and Data Binding with Svelte. diff --git a/src/lib/icons/index.ts b/src/lib/icons/index.ts index f84a403d..bc9e2c80 100644 --- a/src/lib/icons/index.ts +++ b/src/lib/icons/index.ts @@ -1,3 +1,3 @@ -export { default as Email } from './email.svelte' -export { default as Globe } from './globe.svelte' -export { default as Mobile } from './mobile.svelte' +export { default as Email } from './email.svelte'; +export { default as Globe } from './globe.svelte'; +export { default as Mobile } from './mobile.svelte'; diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte index c7b60e06..926b9dba 100644 --- a/src/routes/+error.svelte +++ b/src/routes/+error.svelte @@ -1,5 +1,5 @@ diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 1bf236ae..06e50359 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,28 +1,36 @@
@@ -48,5 +56,5 @@ website="scottspence.com" imgSrc="profile-pic.png" /> - + {@render children?.()} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 31f63551..41a4f45a 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,13 +1,13 @@ diff --git a/src/routes/non-webdev-exp/+page.svelte b/src/routes/non-webdev-exp/+page.svelte index 4eb089ee..603749ef 100644 --- a/src/routes/non-webdev-exp/+page.svelte +++ b/src/routes/non-webdev-exp/+page.svelte @@ -1,13 +1,13 @@ diff --git a/static/sw.js b/static/sw.js index 96062228..6981bd6a 100644 --- a/static/sw.js +++ b/static/sw.js @@ -1,14 +1,14 @@ self.addEventListener('install', function (e) { - self.skipWaiting() -}) + self.skipWaiting(); +}); self.addEventListener('activate', function (e) { self.registration .unregister() .then(function () { - return self.clients.matchAll() + return self.clients.matchAll(); }) .then(function (clients) { - clients.forEach(client => client.navigate(client.url)) - }) -}) + clients.forEach(client => client.navigate(client.url)); + }); +}); diff --git a/svelte.config.js b/svelte.config.js index 84589ad6..8946a6be 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,22 +1,23 @@ -import adapter from '@sveltejs/adapter-auto' -import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' -import { mdsvex } from 'mdsvex' -import mdsvexConfig from './mdsvex.config.js' +import adapter from '@sveltejs/adapter-auto'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; +import { mdsvex } from 'mdsvex'; +import mdsvexConfig from './mdsvex.config.js'; /** @type {import('@sveltejs/kit').Config} */ const config = { extensions: ['.svelte', ...mdsvexConfig.extensions], - // Consult https://kit.svelte.dev/docs/integrations#preprocessors // for more information about preprocessors - preprocess: [vitePreprocess({}), mdsvex(mdsvexConfig)], + preprocess: [vitePreprocess(), mdsvex(mdsvexConfig)], kit: { // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. - // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // If your environment is not supported, or you settled on a specific environment, switch out the adapter. // See https://kit.svelte.dev/docs/adapters for more information about adapters. adapter: adapter(), }, -} -export default config + extensions: ['.svelte', '.svx', '.md'], +}; + +export default config; diff --git a/tailwind.config.cjs b/tailwind.config.ts similarity index 81% rename from tailwind.config.cjs rename to tailwind.config.ts index b27cfa8f..45bbb906 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.ts @@ -1,5 +1,5 @@ -const daisyui = require('daisyui') -const typography = require('@tailwindcss/typography') +const daisyui = require('daisyui'); +const typography = require('@tailwindcss/typography'); /** @type {import('tailwindcss').Config}*/ const config = { @@ -38,6 +38,6 @@ const config = { 'wireframe', ], }, -} +}; -module.exports = config +module.exports = config; diff --git a/tests/index-page.test.ts b/tests/index-page.test.ts index cf371fa8..35e159d9 100644 --- a/tests/index-page.test.ts +++ b/tests/index-page.test.ts @@ -1,10 +1,10 @@ -import { expect, test } from '@playwright/test' +import { expect, test } from '@playwright/test'; test('index page has expected h1', async ({ page }) => { - await page.goto('/') - const h1TextContent = await page.textContent('h1') + await page.goto('/'); + const h1TextContent = await page.textContent('h1'); const cleanedH1TextContent = h1TextContent ?.replace(/\s+/g, ' ') - .trim() - expect(cleanedH1TextContent).toBe('Scott Spence') -}) + .trim(); + expect(cleanedH1TextContent).toBe('Scott Spence'); +}); diff --git a/tsconfig.json b/tsconfig.json index c1493e89..fc93cbd9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,9 +9,10 @@ "skipLibCheck": true, "sourceMap": true, "strict": true, - "moduleResolution": "bundler", - }, + "moduleResolution": "bundler" + } // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files // // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes // from the referenced tsconfig.json - TypeScript does not merge them in diff --git a/vite.config.ts b/vite.config.ts index 4882cd97..d670bc72 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,5 @@ -import { sveltekit } from '@sveltejs/kit/vite' -import { defineConfig } from 'vitest/config' +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vitest/config'; export default defineConfig({ plugins: [sveltekit()], @@ -7,4 +7,4 @@ export default defineConfig({ environment: 'jsdom', include: ['src/**/*.{test,spec}.{js,ts}'], }, -}) +});