mirror of
https://github.com/BradNut/personal-website-sveltekit
synced 2025-09-08 23:20:18 +00:00
Adding svelte image library and using on portfolio.
This commit is contained in:
parent
43d3595048
commit
596b876976
7 changed files with 216 additions and 201 deletions
13
package.json
13
package.json
|
|
@ -17,18 +17,19 @@
|
|||
"@iconify-icons/material-symbols": "^1.2.34",
|
||||
"@iconify-icons/mdi": "^1.2.44",
|
||||
"@iconify-icons/radix-icons": "^1.2.8",
|
||||
"@iconify-icons/simple-icons": "^1.2.46",
|
||||
"@iconify-icons/simple-icons": "^1.2.47",
|
||||
"@leveluptuts/svelte-side-menu": "^1.0.5",
|
||||
"@leveluptuts/svelte-toy": "^2.0.3",
|
||||
"@playwright/test": "^1.32.1",
|
||||
"@playwright/test": "^1.32.2",
|
||||
"@rgossiaux/svelte-headlessui": "^1.0.2",
|
||||
"@sveltejs/adapter-auto": "^1.0.3",
|
||||
"@sveltejs/adapter-static": "^2.0.1",
|
||||
"@sveltejs/adapter-vercel": "^1.0.6",
|
||||
"@sveltejs/kit": "^1.15.0",
|
||||
"@sveltejs/kit": "^1.15.2",
|
||||
"@types/postcss-preset-env": "^8.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
||||
"@typescript-eslint/parser": "^5.57.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.1",
|
||||
"@typescript-eslint/parser": "^5.57.1",
|
||||
"@zerodevx/svelte-img": "^1.2.10",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
|
|
@ -48,7 +49,7 @@
|
|||
"scrape-it": "^5.3.2",
|
||||
"sharp": "^0.31.3",
|
||||
"svelte": "^3.58.0",
|
||||
"svelte-check": "^3.1.4",
|
||||
"svelte-check": "^3.2.0",
|
||||
"svelte-lazy-loader": "^1.0.0",
|
||||
"svelte-preprocess": "^4.10.7",
|
||||
"tslib": "^2.5.0",
|
||||
|
|
|
|||
266
pnpm-lock.yaml
266
pnpm-lock.yaml
|
|
@ -8,7 +8,7 @@ dependencies:
|
|||
devDependencies:
|
||||
'@iconify-icons/material-symbols':
|
||||
specifier: ^1.2.34
|
||||
version: 1.2.34
|
||||
version: 1.2.35
|
||||
'@iconify-icons/mdi':
|
||||
specifier: ^1.2.44
|
||||
version: 1.2.44
|
||||
|
|
@ -16,8 +16,8 @@ devDependencies:
|
|||
specifier: ^1.2.8
|
||||
version: 1.2.8
|
||||
'@iconify-icons/simple-icons':
|
||||
specifier: ^1.2.46
|
||||
version: 1.2.46
|
||||
specifier: ^1.2.47
|
||||
version: 1.2.47
|
||||
'@leveluptuts/svelte-side-menu':
|
||||
specifier: ^1.0.5
|
||||
version: 1.0.5
|
||||
|
|
@ -25,44 +25,47 @@ devDependencies:
|
|||
specifier: ^2.0.3
|
||||
version: 2.0.3
|
||||
'@playwright/test':
|
||||
specifier: ^1.32.1
|
||||
version: 1.32.1
|
||||
specifier: ^1.32.2
|
||||
version: 1.32.2
|
||||
'@rgossiaux/svelte-headlessui':
|
||||
specifier: ^1.0.2
|
||||
version: 1.0.2(svelte@3.58.0)
|
||||
'@sveltejs/adapter-auto':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3(@sveltejs/kit@1.15.0)
|
||||
version: 1.0.3(@sveltejs/kit@1.15.2)
|
||||
'@sveltejs/adapter-static':
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1(@sveltejs/kit@1.15.0)
|
||||
version: 2.0.1(@sveltejs/kit@1.15.2)
|
||||
'@sveltejs/adapter-vercel':
|
||||
specifier: ^1.0.6
|
||||
version: 1.0.6(@sveltejs/kit@1.15.0)
|
||||
version: 1.0.6(@sveltejs/kit@1.15.2)
|
||||
'@sveltejs/kit':
|
||||
specifier: ^1.15.0
|
||||
version: 1.15.0(svelte@3.58.0)(vite@4.2.1)
|
||||
specifier: ^1.15.2
|
||||
version: 1.15.2(svelte@3.58.0)(vite@4.2.1)
|
||||
'@types/postcss-preset-env':
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0(postcss@8.4.21)
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^5.57.0
|
||||
version: 5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@4.9.5)
|
||||
specifier: ^5.57.1
|
||||
version: 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^5.57.0
|
||||
version: 5.57.0(eslint@8.37.0)(typescript@4.9.5)
|
||||
specifier: ^5.57.1
|
||||
version: 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@zerodevx/svelte-img':
|
||||
specifier: ^1.2.10
|
||||
version: 1.2.10(svelte@3.58.0)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.14
|
||||
version: 10.4.14(postcss@8.4.21)
|
||||
eslint:
|
||||
specifier: ^8.37.0
|
||||
version: 8.37.0
|
||||
version: 8.38.0
|
||||
eslint-config-prettier:
|
||||
specifier: ^8.8.0
|
||||
version: 8.8.0(eslint@8.37.0)
|
||||
version: 8.8.0(eslint@8.38.0)
|
||||
eslint-plugin-svelte3:
|
||||
specifier: ^4.0.0
|
||||
version: 4.0.0(eslint@8.37.0)(svelte@3.58.0)
|
||||
version: 4.0.0(eslint@8.38.0)(svelte@3.58.0)
|
||||
iconify-icon:
|
||||
specifier: ^1.0.7
|
||||
version: 1.0.7
|
||||
|
|
@ -98,7 +101,7 @@ devDependencies:
|
|||
version: 2.10.0(prettier@2.8.7)(svelte@3.58.0)
|
||||
sass:
|
||||
specifier: ^1.60.0
|
||||
version: 1.60.0
|
||||
version: 1.61.0
|
||||
scrape-it:
|
||||
specifier: ^5.3.2
|
||||
version: 5.3.2
|
||||
|
|
@ -109,14 +112,14 @@ devDependencies:
|
|||
specifier: ^3.58.0
|
||||
version: 3.58.0
|
||||
svelte-check:
|
||||
specifier: ^3.1.4
|
||||
version: 3.1.4(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.60.0)(svelte@3.58.0)
|
||||
specifier: ^3.2.0
|
||||
version: 3.2.0(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.61.0)(svelte@3.58.0)
|
||||
svelte-lazy-loader:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
svelte-preprocess:
|
||||
specifier: ^4.10.7
|
||||
version: 4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.60.0)(svelte@3.58.0)(typescript@4.9.5)
|
||||
version: 4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.61.0)(svelte@3.58.0)(typescript@4.9.5)
|
||||
tslib:
|
||||
specifier: ^2.5.0
|
||||
version: 2.5.0
|
||||
|
|
@ -128,13 +131,13 @@ devDependencies:
|
|||
version: 17.8.3
|
||||
vite:
|
||||
specifier: ^4.2.1
|
||||
version: 4.2.1(@types/node@18.11.18)(sass@1.60.0)
|
||||
version: 4.2.1(@types/node@18.11.18)(sass@1.61.0)
|
||||
vite-imagetools:
|
||||
specifier: ^4.0.18
|
||||
version: 4.0.18
|
||||
vitest:
|
||||
specifier: ^0.25.3
|
||||
version: 0.25.8(sass@1.60.0)
|
||||
version: 0.25.8(sass@1.61.0)
|
||||
|
||||
packages:
|
||||
|
||||
|
|
@ -907,23 +910,13 @@ packages:
|
|||
dev: true
|
||||
optional: true
|
||||
|
||||
/@eslint-community/eslint-utils@4.2.0(eslint@8.37.0):
|
||||
resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
|
||||
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.37.0
|
||||
eslint-visitor-keys: 3.4.0
|
||||
dev: true
|
||||
|
||||
/@eslint-community/eslint-utils@4.4.0(eslint@8.37.0):
|
||||
/@eslint-community/eslint-utils@4.4.0(eslint@8.38.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.37.0
|
||||
eslint: 8.38.0
|
||||
eslint-visitor-keys: 3.4.0
|
||||
dev: true
|
||||
|
||||
|
|
@ -949,8 +942,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@eslint/js@8.37.0:
|
||||
resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==}
|
||||
/@eslint/js@8.38.0:
|
||||
resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
|
|
@ -974,8 +967,8 @@ packages:
|
|||
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
|
||||
dev: true
|
||||
|
||||
/@iconify-icons/material-symbols@1.2.34:
|
||||
resolution: {integrity: sha512-O76km+oAjPx5H0VNEe+/bN3ZcvAiRrZyozppXYtHdeG0iCWPl0PKobD2Njhgbrcy/uRvIec0/g2d35tHi02ssA==}
|
||||
/@iconify-icons/material-symbols@1.2.35:
|
||||
resolution: {integrity: sha512-IJTlzU11aeP+J3EGgbiqKHZKn9//jhtEXyzDB/Y9rn0nV04GkKgCrpQHF/Yfiq2LvBCcmHiwilQRwvo4Y7PPFA==}
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
dev: true
|
||||
|
|
@ -992,8 +985,8 @@ packages:
|
|||
'@iconify/types': 2.0.0
|
||||
dev: true
|
||||
|
||||
/@iconify-icons/simple-icons@1.2.46:
|
||||
resolution: {integrity: sha512-OSNDzLvKzUY8hJ8K7tmj1iJqf4c44lux9DgVYC0Q4BwXuhQ3qXgF+WJne+hn2LyZuCYC8oJpDuFPJnzPH2tmSw==}
|
||||
/@iconify-icons/simple-icons@1.2.47:
|
||||
resolution: {integrity: sha512-piLD93O6DauSH7OGHNUs1BHkO458/1zSNrMRhbPZrB6Zp0ySgXKzd9EGXZSd8x9NiO1QdbwyD8PpzSry0ZC8jQ==}
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
dev: true
|
||||
|
|
@ -1071,13 +1064,13 @@ packages:
|
|||
fastq: 1.15.0
|
||||
dev: true
|
||||
|
||||
/@playwright/test@1.32.1:
|
||||
resolution: {integrity: sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==}
|
||||
/@playwright/test@1.32.2:
|
||||
resolution: {integrity: sha512-nhaTSDpEdTTttdkDE8Z6K3icuG1DVRxrl98Qq0Lfc63SS9a2sjc9+x8ezysh7MzCKz6Y+nArml3/mmt+gqRmQQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@types/node': 18.11.18
|
||||
playwright-core: 1.32.1
|
||||
playwright-core: 1.32.2
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
|
@ -1116,29 +1109,29 @@ packages:
|
|||
picomatch: 2.3.1
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-auto@1.0.3(@sveltejs/kit@1.15.0):
|
||||
/@sveltejs/adapter-auto@1.0.3(@sveltejs/kit@1.15.2):
|
||||
resolution: {integrity: sha512-hc7O12YQqvZ1CD4fo1gMJuPzBZvuoG5kwxb2RRoz4fVoB8B2vuPO2cY751Ln0G6T/HMrAf8kCqw6Pg+wbxcstw==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^1.0.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.15.0(svelte@3.58.0)(vite@4.2.1)
|
||||
'@sveltejs/kit': 1.15.2(svelte@3.58.0)(vite@4.2.1)
|
||||
import-meta-resolve: 2.2.1
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-static@2.0.1(@sveltejs/kit@1.15.0):
|
||||
/@sveltejs/adapter-static@2.0.1(@sveltejs/kit@1.15.2):
|
||||
resolution: {integrity: sha512-o5/q3YwD/ErxYCFlK1v3ydvldyNKk1lh3oeyxn4mhz+Pkbx/uuxhzmbOpytTlp5aVqNHDVsb04xadUzOFCDDzw==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^1.5.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.15.0(svelte@3.58.0)(vite@4.2.1)
|
||||
'@sveltejs/kit': 1.15.2(svelte@3.58.0)(vite@4.2.1)
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.15.0):
|
||||
/@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.15.2):
|
||||
resolution: {integrity: sha512-fo6aaEygPd/6B5Jms4Ff7R4jbADnppuLvKOWBNTGe5MGB7ZRUkl+gxHWMQx2av2knyEZkA6V8y5M6R3ML5yN4g==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^1.0.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.15.0(svelte@3.58.0)(vite@4.2.1)
|
||||
'@sveltejs/kit': 1.15.2(svelte@3.58.0)(vite@4.2.1)
|
||||
'@vercel/nft': 0.22.6
|
||||
esbuild: 0.16.17
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -1146,8 +1139,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@sveltejs/kit@1.15.0(svelte@3.58.0)(vite@4.2.1):
|
||||
resolution: {integrity: sha512-fvDsW9msxWjDU/j9wwLlxEZ6cpXQYcmcQHq7neJMqibMEl39gI1ztVymGnYqM8KLqZXwNmhKtLu8EPheukKtXQ==}
|
||||
/@sveltejs/kit@1.15.2(svelte@3.58.0)(vite@4.2.1):
|
||||
resolution: {integrity: sha512-rLNxZrjbrlPf8AWW8GAU4L/Vvu17e9v8EYl7pUip7x72lTft7RcxeP3z7tsrHpMSBBxC9o4XdKzFvz1vMZyXZw==}
|
||||
engines: {node: ^16.14 || >=18}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
|
|
@ -1168,8 +1161,8 @@ packages:
|
|||
sirv: 2.0.2
|
||||
svelte: 3.58.0
|
||||
tiny-glob: 0.2.9
|
||||
undici: 5.21.0
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.60.0)
|
||||
undici: 5.20.0
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.61.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
|
@ -1187,7 +1180,7 @@ packages:
|
|||
magic-string: 0.27.0
|
||||
svelte: 3.58.0
|
||||
svelte-hmr: 0.15.1(svelte@3.58.0)
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.60.0)
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.61.0)
|
||||
vitefu: 0.2.4(vite@4.2.1)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -1252,8 +1245,8 @@ packages:
|
|||
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin@5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==}
|
||||
/@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^5.0.0
|
||||
|
|
@ -1264,12 +1257,12 @@ packages:
|
|||
optional: true
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.4.0
|
||||
'@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.57.0
|
||||
'@typescript-eslint/type-utils': 5.57.0(eslint@8.37.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.57.1
|
||||
'@typescript-eslint/type-utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.37.0
|
||||
eslint: 8.38.0
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.2.4
|
||||
natural-compare-lite: 1.4.0
|
||||
|
|
@ -1280,8 +1273,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==}
|
||||
/@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
|
@ -1290,26 +1283,26 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 5.57.0
|
||||
'@typescript-eslint/types': 5.57.0
|
||||
'@typescript-eslint/typescript-estree': 5.57.0(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.57.1
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.37.0
|
||||
eslint: 8.38.0
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/scope-manager@5.57.0:
|
||||
resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==}
|
||||
/@typescript-eslint/scope-manager@5.57.1:
|
||||
resolution: {integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.57.0
|
||||
'@typescript-eslint/visitor-keys': 5.57.0
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/visitor-keys': 5.57.1
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/type-utils@5.57.0(eslint@8.37.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==}
|
||||
/@typescript-eslint/type-utils@5.57.1(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: '*'
|
||||
|
|
@ -1318,23 +1311,23 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 5.57.0(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.37.0
|
||||
eslint: 8.38.0
|
||||
tsutils: 3.21.0(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/types@5.57.0:
|
||||
resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==}
|
||||
/@typescript-eslint/types@5.57.1:
|
||||
resolution: {integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree@5.57.0(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==}
|
||||
/@typescript-eslint/typescript-estree@5.57.1(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -1342,8 +1335,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.57.0
|
||||
'@typescript-eslint/visitor-keys': 5.57.0
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/visitor-keys': 5.57.1
|
||||
debug: 4.3.4
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -1354,19 +1347,19 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/utils@5.57.0(eslint@8.37.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==}
|
||||
/@typescript-eslint/utils@5.57.1(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==}
|
||||
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.37.0)
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
|
||||
'@types/json-schema': 7.0.11
|
||||
'@types/semver': 7.3.13
|
||||
'@typescript-eslint/scope-manager': 5.57.0
|
||||
'@typescript-eslint/types': 5.57.0
|
||||
'@typescript-eslint/typescript-estree': 5.57.0(typescript@4.9.5)
|
||||
eslint: 8.37.0
|
||||
'@typescript-eslint/scope-manager': 5.57.1
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5)
|
||||
eslint: 8.38.0
|
||||
eslint-scope: 5.1.1
|
||||
semver: 7.3.8
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -1374,11 +1367,11 @@ packages:
|
|||
- typescript
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/visitor-keys@5.57.0:
|
||||
resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==}
|
||||
/@typescript-eslint/visitor-keys@5.57.1:
|
||||
resolution: {integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.57.0
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
eslint-visitor-keys: 3.4.0
|
||||
dev: true
|
||||
|
||||
|
|
@ -1403,6 +1396,18 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@zerodevx/svelte-img@1.2.10(svelte@3.58.0):
|
||||
resolution: {integrity: sha512-d2d6+9QEVeNGfmAKlf1qgpM8el0SqMRV68iBz1e3qXFJpRM7kVpwN05Hpj008NHcb/tuUg2xcmTx8yUXBtaTGg==}
|
||||
peerDependencies:
|
||||
svelte: ^3.55.1
|
||||
dependencies:
|
||||
imagetools-core: 3.3.1
|
||||
svelte: 3.58.0
|
||||
vite-imagetools: 4.0.18
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
dev: true
|
||||
|
||||
/abab@1.0.4:
|
||||
resolution: {integrity: sha512-I+Wi+qiE2kUXyrRhNsWv6XsjUTBJjSoVSctKNBfLG5zG/Xe7Rjbxf13+vqYHNTwHaFU+FtSlVxOCTiMEVtPv0A==}
|
||||
dev: true
|
||||
|
|
@ -2201,22 +2206,22 @@ packages:
|
|||
dev: true
|
||||
optional: true
|
||||
|
||||
/eslint-config-prettier@8.8.0(eslint@8.37.0):
|
||||
/eslint-config-prettier@8.8.0(eslint@8.38.0):
|
||||
resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: '>=7.0.0'
|
||||
dependencies:
|
||||
eslint: 8.37.0
|
||||
eslint: 8.38.0
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-svelte3@4.0.0(eslint@8.37.0)(svelte@3.58.0):
|
||||
/eslint-plugin-svelte3@4.0.0(eslint@8.38.0)(svelte@3.58.0):
|
||||
resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
|
||||
peerDependencies:
|
||||
eslint: '>=8.0.0'
|
||||
svelte: ^3.2.0
|
||||
dependencies:
|
||||
eslint: 8.37.0
|
||||
eslint: 8.38.0
|
||||
svelte: 3.58.0
|
||||
dev: true
|
||||
|
||||
|
|
@ -2241,15 +2246,15 @@ packages:
|
|||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/eslint@8.37.0:
|
||||
resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==}
|
||||
/eslint@8.38.0:
|
||||
resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.2.0(eslint@8.37.0)
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
|
||||
'@eslint-community/regexpp': 4.4.0
|
||||
'@eslint/eslintrc': 2.0.2
|
||||
'@eslint/js': 8.37.0
|
||||
'@eslint/js': 8.38.0
|
||||
'@humanwhocodes/config-array': 0.11.8
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
|
|
@ -3040,6 +3045,10 @@ packages:
|
|||
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
|
||||
dev: true
|
||||
|
||||
/minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
dev: true
|
||||
|
||||
/minipass@3.3.6:
|
||||
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -3323,8 +3332,8 @@ packages:
|
|||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/playwright-core@1.32.1:
|
||||
resolution: {integrity: sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==}
|
||||
/playwright-core@1.32.2:
|
||||
resolution: {integrity: sha512-zD7aonO+07kOTthsrCR3YCVnDcqSHIJpdFUtZEMOb6//1Rc7/6mZDRdw+nlzcQiQltOOsiqI3rrSyn/SlyjnJQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
|
@ -3961,9 +3970,9 @@ packages:
|
|||
rimraf: 2.7.1
|
||||
dev: true
|
||||
|
||||
/sass@1.60.0:
|
||||
resolution: {integrity: sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
/sass@1.61.0:
|
||||
resolution: {integrity: sha512-PDsN7BrVkNZK2+dj/dpKQAWZavbAQ87IXqVvw2+oEYI+GwlTWkvbQtL7F2cCNbMqJEYKPh1EcjSxsnqIb/kyaQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
chokidar: 3.5.3
|
||||
|
|
@ -4103,7 +4112,7 @@ packages:
|
|||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.4.14
|
||||
buffer-crc32: 0.2.13
|
||||
minimist: 1.2.7
|
||||
minimist: 1.2.8
|
||||
sander: 0.5.1
|
||||
dev: true
|
||||
|
||||
|
|
@ -4209,8 +4218,8 @@ packages:
|
|||
engines: {node: '>= 0.4'}
|
||||
dev: true
|
||||
|
||||
/svelte-check@3.1.4(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.60.0)(svelte@3.58.0):
|
||||
resolution: {integrity: sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==}
|
||||
/svelte-check@3.2.0(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.61.0)(svelte@3.58.0):
|
||||
resolution: {integrity: sha512-6ZnscN8dHEN5Eq5LgIzjj07W9nc9myyBH+diXsUAuiY/3rt0l65/LCIQYlIuoFEjp2F1NhXqZiJwV9omPj9tMw==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
svelte: ^3.55.0
|
||||
|
|
@ -4222,8 +4231,8 @@ packages:
|
|||
picocolors: 1.0.0
|
||||
sade: 1.8.1
|
||||
svelte: 3.58.0
|
||||
svelte-preprocess: 5.0.1(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.60.0)(svelte@3.58.0)(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
svelte-preprocess: 5.0.3(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.61.0)(svelte@3.58.0)(typescript@5.0.3)
|
||||
typescript: 5.0.3
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- coffeescript
|
||||
|
|
@ -4249,7 +4258,7 @@ packages:
|
|||
resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==}
|
||||
dev: true
|
||||
|
||||
/svelte-preprocess@4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.60.0)(svelte@3.58.0)(typescript@4.9.5):
|
||||
/svelte-preprocess@4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.61.0)(svelte@3.58.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==}
|
||||
engines: {node: '>= 9.11.2'}
|
||||
requiresBuild: true
|
||||
|
|
@ -4296,15 +4305,15 @@ packages:
|
|||
magic-string: 0.25.9
|
||||
postcss: 8.4.21
|
||||
postcss-load-config: 4.0.1(postcss@8.4.21)
|
||||
sass: 1.60.0
|
||||
sass: 1.61.0
|
||||
sorcery: 0.10.0
|
||||
strip-indent: 3.0.0
|
||||
svelte: 3.58.0
|
||||
typescript: 4.9.5
|
||||
dev: true
|
||||
|
||||
/svelte-preprocess@5.0.1(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.60.0)(svelte@3.58.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==}
|
||||
/svelte-preprocess@5.0.3(postcss-load-config@4.0.1)(postcss@8.4.21)(sass@1.61.0)(svelte@3.58.0)(typescript@5.0.3):
|
||||
resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==}
|
||||
engines: {node: '>= 14.10.0'}
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
|
|
@ -4318,7 +4327,7 @@ packages:
|
|||
stylus: ^0.55.0
|
||||
sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
|
||||
svelte: ^3.23.0
|
||||
typescript: ^3.9.5 || ^4.0.0
|
||||
typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
|
||||
peerDependenciesMeta:
|
||||
'@babel/core':
|
||||
optional: true
|
||||
|
|
@ -4342,16 +4351,15 @@ packages:
|
|||
optional: true
|
||||
dependencies:
|
||||
'@types/pug': 2.0.6
|
||||
'@types/sass': 1.43.1
|
||||
detect-indent: 6.1.0
|
||||
magic-string: 0.27.0
|
||||
postcss: 8.4.21
|
||||
postcss-load-config: 4.0.1(postcss@8.4.21)
|
||||
sass: 1.60.0
|
||||
sass: 1.61.0
|
||||
sorcery: 0.11.0
|
||||
strip-indent: 3.0.0
|
||||
svelte: 3.58.0
|
||||
typescript: 4.9.5
|
||||
typescript: 5.0.3
|
||||
dev: true
|
||||
|
||||
/svelte@3.58.0:
|
||||
|
|
@ -4517,6 +4525,12 @@ packages:
|
|||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/typescript@5.0.3:
|
||||
resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==}
|
||||
engines: {node: '>=12.20'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/typpy@2.3.13:
|
||||
resolution: {integrity: sha512-vOxIcQz9sxHi+rT09SJ5aDgVgrPppQjwnnayTrMye1ODaU8gIZTDM19t9TxmEElbMihx2Nq/0/b/MtyKfayRqA==}
|
||||
dependencies:
|
||||
|
|
@ -4530,8 +4544,8 @@ packages:
|
|||
typpy: 2.3.13
|
||||
dev: true
|
||||
|
||||
/undici@5.21.0:
|
||||
resolution: {integrity: sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==}
|
||||
/undici@5.20.0:
|
||||
resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==}
|
||||
engines: {node: '>=12.18'}
|
||||
dependencies:
|
||||
busboy: 1.6.0
|
||||
|
|
@ -4621,7 +4635,7 @@ packages:
|
|||
- rollup
|
||||
dev: true
|
||||
|
||||
/vite@4.2.1(@types/node@18.11.18)(sass@1.60.0):
|
||||
/vite@4.2.1(@types/node@18.11.18)(sass@1.61.0):
|
||||
resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
|
|
@ -4651,7 +4665,7 @@ packages:
|
|||
postcss: 8.4.21
|
||||
resolve: 1.22.1
|
||||
rollup: 3.19.1
|
||||
sass: 1.60.0
|
||||
sass: 1.61.0
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
|
@ -4664,10 +4678,10 @@ packages:
|
|||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.60.0)
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.61.0)
|
||||
dev: true
|
||||
|
||||
/vitest@0.25.8(sass@1.60.0):
|
||||
/vitest@0.25.8(sass@1.61.0):
|
||||
resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==}
|
||||
engines: {node: '>=v14.16.0'}
|
||||
hasBin: true
|
||||
|
|
@ -4702,7 +4716,7 @@ packages:
|
|||
tinybench: 2.3.1
|
||||
tinypool: 0.3.0
|
||||
tinyspy: 1.0.2
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.60.0)
|
||||
vite: 4.2.1(@types/node@18.11.18)(sass@1.61.0)
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- sass
|
||||
|
|
|
|||
6
src/ambient.d.ts
vendored
Normal file
6
src/ambient.d.ts
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Stop warnings of all imports from your image assets directory.
|
||||
|
||||
declare module '$lib/assets/*' {
|
||||
const image: Record<string, any>;
|
||||
export default image;
|
||||
}
|
||||
|
|
@ -1,30 +1,17 @@
|
|||
<script lang="ts">
|
||||
import { Picture } from "svelte-lazy-loader";
|
||||
|
||||
type ImageMeta = {
|
||||
format: string;
|
||||
src: string;
|
||||
type: string;
|
||||
width: string;
|
||||
height: string;
|
||||
};
|
||||
import Img from '@zerodevx/svelte-img';
|
||||
|
||||
export let name: string;
|
||||
export let placeholder: string;
|
||||
export let src: string;
|
||||
export let src: Record<string, any>;
|
||||
export let alt: string;
|
||||
export let style: string;
|
||||
export let loading: "lazy" | "eager" = "lazy";
|
||||
export let formats: ImageMeta[];
|
||||
</script>
|
||||
|
||||
<div class="portfolio">
|
||||
<div class="portfolio-picture">
|
||||
<h2>{name}</h2>
|
||||
<Picture {placeholder} {src} {loading} {alt}>
|
||||
{#each formats as { src, format, width }}
|
||||
<source data-srcset={src} type="image/{format}" {width} />
|
||||
{/each}
|
||||
</Picture>
|
||||
<Img class="portfolio-image better-blur" {style} {src} {alt} {loading} />
|
||||
<slot name="portfolio-links" />
|
||||
</div>
|
||||
<div class="portfolio-details">
|
||||
|
|
@ -37,6 +24,14 @@
|
|||
border-radius: 3px;
|
||||
}
|
||||
|
||||
:global(img.better-blur)::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
backdrop-filter: blur(20px);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
:global(.portfolio) {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(200px, 500px) auto;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { BANDCAMP_USERNAME, USE_REDIS_CACHE } from '$env/static/private';
|
||||
import scrapeIt from 'scrape-it';
|
||||
import type { ScrapeResult } from 'scrape-it';
|
||||
import type { ScrapeResult, ScrapeOptions } from 'scrape-it';
|
||||
import { redis } from '../server/redis';
|
||||
import type { Album } from '../types/album';
|
||||
|
||||
|
|
@ -14,33 +14,36 @@ export async function fetchBandcampAlbums() {
|
|||
console.log(`Cache hit!`);
|
||||
const ttl = await redis.ttl('bandcampAlbums');
|
||||
|
||||
return response;
|
||||
return { ttl, response };
|
||||
}
|
||||
}
|
||||
|
||||
const { data }: ScrapeResult<Album[]> = await scrapeIt(
|
||||
`https://bandcamp.com/${BANDCAMP_USERNAME}`,
|
||||
{
|
||||
collectionItems: {
|
||||
listItem: '.collection-item-container',
|
||||
data: {
|
||||
url: {
|
||||
selector: '.collection-title-details > a.item-link',
|
||||
attr: 'href'
|
||||
},
|
||||
artwork: {
|
||||
selector: 'div.collection-item-art-container a img',
|
||||
attr: 'src'
|
||||
},
|
||||
title: {
|
||||
selector: 'span.item-link-alt > div.collection-item-title'
|
||||
},
|
||||
artist: {
|
||||
selector: 'span.item-link-alt > div.collection-item-artist'
|
||||
}
|
||||
const scrapeItOptions: ScrapeOptions = {
|
||||
collectionItems: {
|
||||
listItem: '.collection-item-container',
|
||||
data: {
|
||||
url: {
|
||||
selector: '.collection-title-details > a.item-link',
|
||||
attr: 'href'
|
||||
},
|
||||
artwork: {
|
||||
selector: 'div.collection-item-art-container a img',
|
||||
attr: 'src'
|
||||
},
|
||||
title: {
|
||||
selector: 'span.item-link-alt > div.collection-item-title'
|
||||
},
|
||||
artist: {
|
||||
selector: 'span.item-link-alt > div.collection-item-artist'
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// TODO: Add cache for results
|
||||
const { data }: ScrapeResult<Album[]> = await scrapeIt(
|
||||
`https://bandcamp.com/${BANDCAMP_USERNAME}`,
|
||||
scrapeItOptions
|
||||
);
|
||||
|
||||
const albums: Album[] = data?.collectionItems || [];
|
||||
|
|
@ -52,7 +55,7 @@ export async function fetchBandcampAlbums() {
|
|||
}
|
||||
return albums;
|
||||
} else {
|
||||
return [];
|
||||
return []; // TODO: Add ttl for cache
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
|
|
|||
|
|
@ -7,29 +7,19 @@
|
|||
TabPanel,
|
||||
TabPanels,
|
||||
} from "@rgossiaux/svelte-headlessui";
|
||||
import { Picture } from "svelte-lazy-loader";
|
||||
import GitHub from '@iconify-icons/simple-icons/github';
|
||||
import Portfolio from '$lib/components/Portfolio.svelte';
|
||||
import personalSite from "$lib/assets/images/Bradley_Shellnut_New_Site.png";
|
||||
import personalSiteFormats from "$lib/assets/images/Bradley_Shellnut_New_Site.png?format=webp;avif;png&metadata";
|
||||
import personalSiteBlurred from "$lib/assets/images/Bradley_Shellnut_New_Site.png?w=100&png&blur=10";
|
||||
import weddingWebsite from "$lib/assets/images/Wedding_Website.png";
|
||||
import weddingWebsiteFormats from "$lib/assets/images/Wedding_Website.png?format=webp;avif;png&metadata";
|
||||
import weddingWebsiteBlurred from "$lib/assets/images/Wedding_Website.png?w=100&png&blur=10";
|
||||
import oldSite from '$lib/assets/images/Old_Website_Bradley_Shellnut.png';
|
||||
import oldSiteFormats from '$lib/assets/images/Old_Website_Bradley_Shellnut.png?format=webp;avif;png&metadata';
|
||||
import oldSiteBlurred from '$lib/assets/images/Old_Website_Bradley_Shellnut.png?w=100&png&blur=10';
|
||||
import shellnutArchitectWebsite from "$lib/assets/images/Mark_Shellnut_Architect.png";
|
||||
import shellnutArchitectWebsiteFormats from "$lib/assets/images/Mark_Shellnut_Architect.png?format=webp;avif;png&metadata";
|
||||
import shellnutArchitectWebsiteBlurred from "$lib/assets/images/Mark_Shellnut_Architect.png?w=100px&blur=10";
|
||||
import personalSite from "$lib/assets/images/Bradley_Shellnut_New_Site.png?run";
|
||||
import weddingWebsite from "$lib/assets/images/Wedding_Website.png?run";
|
||||
import oldSite from '$lib/assets/images/Old_Website_Bradley_Shellnut.png?run';
|
||||
import shellnutArchitectWebsite from "$lib/assets/images/Mark_Shellnut_Architect.png?run";
|
||||
import PersonalWebsiteGatsby from "$lib/content/portfolio/personal/personal-website-gatsby.md";
|
||||
import WeddingWebsite from '$lib/content/portfolio/personal/wedding-website.md';
|
||||
import MarkShellnutArchitect from '$lib/content/portfolio/professional/mark-shellnut-architect.md';
|
||||
import MarkShellnutArchitect from '$lib/content/portfolio/professional/mark-shellnut-architect.md?run';
|
||||
import OldWebsite from '$lib/content/portfolio/personal/old-website.md';
|
||||
import ExternalLink from '$lib/components/ExternalLink.svelte';
|
||||
|
||||
export let data: PageData;
|
||||
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
|
|
@ -49,17 +39,16 @@
|
|||
<TabPanels>
|
||||
<TabPanel>
|
||||
<Portfolio name="Personal Website"
|
||||
placeholder={personalSiteBlurred}
|
||||
style="max-height: 640px;"
|
||||
src={personalSite}
|
||||
alt="Picture of Bradley Shellnut's Gatsby Personal Website"
|
||||
formats={personalSiteFormats}>
|
||||
loading="eager"
|
||||
alt="Picture of Bradley Shellnut's Gatsby Personal Website">
|
||||
<PersonalWebsiteGatsby slot="portfolio-details" />
|
||||
</Portfolio>
|
||||
<Portfolio name="Wedding Website"
|
||||
placeholder={weddingWebsiteBlurred}
|
||||
style="max-height: 640px;"
|
||||
src={weddingWebsite}
|
||||
alt="Picture of Bradley Shellnut's Gatsby Personal Website"
|
||||
formats={weddingWebsiteFormats}>
|
||||
alt="Picture of Bradley Shellnut's Gatsby Personal Website">
|
||||
<span slot="portfolio-links">
|
||||
<p>
|
||||
<ExternalLink ariaLabel="View Wedding Website" href="https://weddingsite-six.vercel.app/" showIcon>View Site</ExternalLink>
|
||||
|
|
@ -71,10 +60,9 @@
|
|||
<WeddingWebsite slot="portfolio-details" />
|
||||
</Portfolio>
|
||||
<Portfolio name="Old Personal Website"
|
||||
placeholder={oldSiteBlurred}
|
||||
style="max-height: 320px;"
|
||||
src={oldSite}
|
||||
alt="Home Page of the old bradleyshellnut.com website"
|
||||
formats={oldSiteFormats}>
|
||||
alt="Home Page of the old bradleyshellnut.com website">
|
||||
<span slot="portfolio-links">
|
||||
<p>
|
||||
<ExternalLink ariaLabel="Archive of bradleyshellnut.com" href="https://web.archive.org/web/20201205233507/https://bradleyshellnut.com/about" showIcon>Link to an archive snapshot</ExternalLink>
|
||||
|
|
@ -86,10 +74,9 @@
|
|||
<TabPanel>
|
||||
<!-- <div class="portfolioStyles"> -->
|
||||
<Portfolio name="Mark Shellnut Architect"
|
||||
placeholder={shellnutArchitectWebsiteBlurred}
|
||||
style="max-height: 640px;"
|
||||
src={shellnutArchitectWebsite}
|
||||
alt="Picture of Mark Shellnut Architect's Website"
|
||||
formats={shellnutArchitectWebsiteFormats}>
|
||||
alt="Picture of Mark Shellnut Architect's Website">
|
||||
<MarkShellnutArchitect slot="portfolio-details" />
|
||||
</Portfolio>
|
||||
<!-- </div> -->
|
||||
|
|
|
|||
|
|
@ -1,9 +1,18 @@
|
|||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
import type { UserConfig } from 'vite';
|
||||
import { imagetools } from 'vite-imagetools';
|
||||
import { imagetools } from '@zerodevx/svelte-img/vite';
|
||||
// import { imagetools } from 'vite-imagetools';
|
||||
|
||||
const config: UserConfig = {
|
||||
plugins: [imagetools(), sveltekit()],
|
||||
plugins: [
|
||||
sveltekit(),
|
||||
imagetools({
|
||||
// By default, directives are `?width=480;1024;1920&format=avif;webp;jpg`
|
||||
// Now we change it to generate 5 variants instead - `avif/jpg` formats at `640/1280` + LQIP
|
||||
defaultDirectives: () =>
|
||||
new URLSearchParams('?width=480;640;1024;1920&format=avif;webp;jpg&lqip=64')
|
||||
})
|
||||
],
|
||||
test: {
|
||||
include: ['src/**/*.{test,spec}.{js,ts}']
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue