Merge ; commit '558906cec31787cfc3d9d0e0d634d3588ce02b7e'

This commit is contained in:
Cory Dransfeldt 2024-05-23 14:26:32 -07:00
commit 0177a8cbea
27 changed files with 375 additions and 177 deletions

View file

@ -22,6 +22,7 @@
/posts/2023/a-safari-specific-guide-to-making-the-modern-web-suck-less/null /posts/2023/a-safari-specific-guide-to-making-the-modern-web-suck-less/ 301!
/posts/2023/hacking-together-a-tweeklyfm-replacement/ /posts/2023/hacking-together-a-tweeklyfm-repalcement/
/posts/2024/dont-be-afraid-to-admit-when-you-dont-know-something/ /posts/2024/dont-be-afraid-to-admin-when-you-dont-know-something/ 301!
/posts/2024/data-sharing-should-always-be-opt-in/ /posts/2024/access-to-data-isnt-a-grant-to-exploit-it/ 301!
# 404s
/robot.txt /robots.txt 301!
@ -73,6 +74,7 @@
# general
/articles/ / 301!
/tags /search 301!
/referrals /save 301!
/mastodon https://social.lol/@cory 301!
/coffee https://www.buymeacoffee.com/cory 301!
/speedlify https://speedlify.coryd.dev 301!

View file

@ -21,6 +21,7 @@ const emojiMap = (genre, artist) => {
if (normalizedArtist === "bolt thrower") return "⚔️"
if (normalizedArtist === "bruce springsteen") return "🇺🇸"
if (normalizedArtist === "carcass") return "🥼"
if (normalizedArtist === "cloud rat") return "☁️🐀"
if (normalizedArtist === "counting crows") return "🐦‍⬛"
if (normalizedArtist === "david bowie") return "👨🏻‍🎤"
if (normalizedArtist === "devoid of thought") return "🚫💭"

View file

@ -1,3 +1,3 @@
{
"timestamp": 1716336777585
"timestamp": 1716487464645
}

View file

@ -12477,11 +12477,11 @@
],
"lastTootTimestamp": 1713031404184
},
"https://www.themoviedb.org/movie/9411": {
"https://coryd.dev/movies/9411": {
"id": "aHR0cHM6Ly90cmFrdC50di9tb3ZpZXMvZmFsbGVuLTE5OTg=",
"title": "🎥: Fallen",
"url": "https://www.themoviedb.org/movie/9411",
"content_text": "🎥: Fallen #Movies #Watching #Trakt https://www.themoviedb.org/movie/9411",
"url": "https://coryd.dev/movies/9411",
"content_text": "🎥: Fallen #Movies #Watching #Trakt https://coryd.dev/movies/9411",
"date_published": "Sat, 13 Apr 2024 23:43:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112267248945790971"
@ -12510,11 +12510,11 @@
],
"lastTootTimestamp": 1713143465132
},
"https://www.themoviedb.org/movie/359410": {
"https://coryd.dev/movies/359410": {
"id": "aHR0cHM6Ly90cmFrdC50di9tb3ZpZXMvcm9hZC1ob3VzZS0yMDI0",
"title": "🎥: Road House",
"url": "https://www.themoviedb.org/movie/359410",
"content_text": "🎥: Road House #Movies #Watching #Trakt https://www.themoviedb.org/movie/359410",
"url": "https://coryd.dev/movies/359410",
"content_text": "🎥: Road House #Movies #Watching #Trakt https://coryd.dev/movies/359410",
"date_published": "Sun, 14 Apr 2024 17:06:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112271865248733450"
@ -12653,11 +12653,11 @@
],
"lastTootTimestamp": 1713645991312
},
"https://www.themoviedb.org/movie/693134": {
"https://coryd.dev/movies/693134": {
"id": "aHR0cHM6Ly90cmFrdC50di9tb3ZpZXMvZHVuZS1wYXJ0LXR3by0yMDI0",
"title": "🎥: Dune: Part Two",
"url": "https://www.themoviedb.org/movie/693134",
"content_text": "🎥: Dune: Part Two #Movies #Watching #SciFi #Adventure https://www.themoviedb.org/movie/693134",
"url": "https://coryd.dev/movies/693134",
"content_text": "🎥: Dune: Part Two #Movies #Watching #SciFi #Adventure https://coryd.dev/movies/693134",
"date_published": "Fri, 19 Apr 2024 14:00:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112305063432909748"
@ -12829,11 +12829,11 @@
],
"lastTootTimestamp": 1713981835960
},
"https://www.themoviedb.org/movie/560016": {
"https://coryd.dev/movies/560016": {
"id": "aHR0cHM6Ly90cmFrdC50di9tb3ZpZXMvbW9ua2V5LW1hbi0yMDI0",
"title": "🎥: Monkey Man",
"url": "https://www.themoviedb.org/movie/560016",
"content_text": "🎥: Monkey Man #Movies #Watching #Thriller #Action https://www.themoviedb.org/movie/560016",
"url": "https://coryd.dev/movies/560016",
"content_text": "🎥: Monkey Man #Movies #Watching #Thriller #Action https://coryd.dev/movies/560016",
"date_published": "Wed, 24 Apr 2024 18:14:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112328455422041088"
@ -12884,11 +12884,11 @@
],
"lastTootTimestamp": 1714233838679
},
"https://www.themoviedb.org/movie/938614": {
"https://coryd.dev/movies/938614": {
"id": "aHR0cHM6Ly90cmFrdC50di9tb3ZpZXMvbGF0ZS1uaWdodC13aXRoLXRoZS1kZXZpbC0yMDI0",
"title": "🎥: Late Night with the Devil",
"url": "https://www.themoviedb.org/movie/938614",
"content_text": "🎥: Late Night with the Devil #Movies #Watching #Horror https://www.themoviedb.org/movie/938614",
"url": "https://coryd.dev/movies/938614",
"content_text": "🎥: Late Night with the Devil #Movies #Watching #Horror https://coryd.dev/movies/938614",
"date_published": "Sat, 27 Apr 2024 18:07:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112345809656993382"
@ -12983,11 +12983,11 @@
],
"lastTootTimestamp": 1714449885234
},
"https://www.themoviedb.org/movie/520594": {
"https://coryd.dev/movies/520594": {
"id": "aHR0cHM6Ly90cmFrdC50di9tb3ZpZXMvam9obi1tdWxhbmV5LWtpZC1nb3JnZW91cy1hdC1yYWRpby1jaXR5LTIwMTg=",
"title": "🎥: John Mulaney: Kid Gorgeous at Radio City",
"url": "https://www.themoviedb.org/movie/520594",
"content_text": "🎥: John Mulaney: Kid Gorgeous at Radio City #Movies #Watching undefined https://www.themoviedb.org/movie/520594",
"url": "https://coryd.dev/movies/520594",
"content_text": "🎥: John Mulaney: Kid Gorgeous at Radio City #Movies #Watching undefined https://coryd.dev/movies/520594",
"date_published": "Wed, 01 May 2024 05:36:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112364796498005793"
@ -13304,9 +13304,9 @@
},
"https://joe-steel.com/2024-05-14-Gemini-In-Gemini-Out.html": {
"id": "aHR0cHM6Ly9qb2Utc3RlZWwuY29tLzIwMjQtMDUtMTQtR2VtaW5pLUluLUdlbWluaS1PdXQuaHRtbA==",
"title": "🔗: Gemini In, Gemini Out",
"title": "🔗: Gemini In, Gemini Out via Joe Rosensteel",
"url": "https://joe-steel.com/2024-05-14-Gemini-In-Gemini-Out.html",
"content_text": "🔗: Gemini In, Gemini Out #Tech #AI https://joe-steel.com/2024-05-14-Gemini-In-Gemini-Out.html",
"content_text": "🔗: Gemini In, Gemini Out via Joe Rosensteel #Tech #AI https://joe-steel.com/2024-05-14-Gemini-In-Gemini-Out.html",
"date_published": "Wed, 15 May 2024 01:20:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112442693528785645"
@ -13315,9 +13315,9 @@
},
"https://www.newyorker.com/culture/infinite-scroll/the-revenge-of-the-home-page": {
"id": "aHR0cHM6Ly93d3cubmV3eW9ya2VyLmNvbS9jdWx0dXJlL2luZmluaXRlLXNjcm9sbC90aGUtcmV2ZW5nZS1vZi10aGUtaG9tZS1wYWdl",
"title": "🔗: The Revenge of the Home Page",
"title": "🔗: The Revenge of the Home Page via The New Yorker",
"url": "https://www.newyorker.com/culture/infinite-scroll/the-revenge-of-the-home-page",
"content_text": "🔗: The Revenge of the Home Page #Tech #Journalism #SocialMedia https://www.newyorker.com/culture/infinite-scroll/the-revenge-of-the-home-page",
"content_text": "🔗: The Revenge of the Home Page via The New Yorker #Tech #Journalism #SocialMedia https://www.newyorker.com/culture/infinite-scroll/the-revenge-of-the-home-page",
"date_published": "Wed, 15 May 2024 15:38:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112445950066979635"
@ -13368,11 +13368,11 @@
],
"lastTootTimestamp": 1715875416427
},
"https://www.themoviedb.org/movie/1051896": {
"id": "aHR0cHM6Ly93d3cudGhlbW92aWVkYi5vcmcvbW92aWUvMTA1MTg5Ng==",
"https://coryd.dev/movies/1051896": {
"id": "aHR0cHM6Ly9jb3J5ZC5kZXYvbW92aWVzLzEwNTE4OTY=",
"title": "🎥: Arcadian (⭐️⭐️⭐️)",
"url": "https://www.themoviedb.org/movie/1051896",
"content_text": "🎥: Arcadian (⭐️⭐️⭐️) #Movies #Watching https://www.themoviedb.org/movie/1051896",
"url": "https://coryd.dev/movies/1051896",
"content_text": "🎥: Arcadian (⭐️⭐️⭐️) https://coryd.dev/movies/1051896",
"date_published": "Fri, 17 May 2024 16:00:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112457275817717857"
@ -13403,9 +13403,9 @@
},
"https://derekkedziora.com/notes/20240518-customers-and-users-in-2024": {
"id": "aHR0cHM6Ly9kZXJla2tlZHppb3JhLmNvbS9ub3Rlcy8yMDI0MDUxOC1jdXN0b21lcnMtYW5kLXVzZXJzLWluLTIwMjQ=",
"title": "🔗: Customers and users in 2024",
"title": "🔗: Customers and users in 2024 via Derek Kedziora",
"url": "https://derekkedziora.com/notes/20240518-customers-and-users-in-2024",
"content_text": "🔗: Customers and users in 2024 #Tech https://derekkedziora.com/notes/20240518-customers-and-users-in-2024",
"content_text": "🔗: Customers and users in 2024 via Derek Kedziora #Tech https://derekkedziora.com/notes/20240518-customers-and-users-in-2024",
"date_published": "Sat, 18 May 2024 21:16:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112464351252839621"
@ -13414,20 +13414,20 @@
},
"https://zicklepop.com/post/that-site-you-use-is-dead": {
"id": "aHR0cHM6Ly96aWNrbGVwb3AuY29tL3Bvc3QvdGhhdC1zaXRlLXlvdS11c2UtaXMtZGVhZA==",
"title": "🔗: That site you use is dead",
"title": "🔗: That site you use is dead via zicklepop",
"url": "https://zicklepop.com/post/that-site-you-use-is-dead",
"content_text": "🔗: That site you use is dead #Tech https://zicklepop.com/post/that-site-you-use-is-dead",
"content_text": "🔗: That site you use is dead via zicklepop #Tech https://zicklepop.com/post/that-site-you-use-is-dead",
"date_published": "Sat, 18 May 2024 21:15:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112463972916703397"
],
"lastTootTimestamp": 1716064039940
},
"https://www.themoviedb.org/movie/1148027": {
"id": "aHR0cHM6Ly93d3cudGhlbW92aWVkYi5vcmcvbW92aWUvMTE0ODAyNw==",
"https://coryd.dev/movies/1148027": {
"id": "aHR0cHM6Ly9jb3J5ZC5kZXYvbW92aWVzLzExNDgwMjc=",
"title": "🎥: New Life (⭐️⭐️⭐️⭐️)",
"url": "https://www.themoviedb.org/movie/1148027",
"content_text": "🎥: New Life (⭐️⭐️⭐️⭐️) #Movies #Watching https://www.themoviedb.org/movie/1148027",
"url": "https://coryd.dev/movies/1148027",
"content_text": "🎥: New Life (⭐️⭐️⭐️⭐️) https://coryd.dev/movies/1148027",
"date_published": "Sat, 18 May 2024 20:13:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112464524447203970"
@ -13478,11 +13478,11 @@
],
"lastTootTimestamp": 1716171323109
},
"https://www.themoviedb.org/movie/29427": {
"id": "aHR0cHM6Ly93d3cudGhlbW92aWVkYi5vcmcvbW92aWUvMjk0Mjc=",
"https://coryd.dev/movies/29427": {
"id": "aHR0cHM6Ly9jb3J5ZC5kZXYvbW92aWVzLzI5NDI3",
"title": "🎥: The Crazies (⭐️⭐️⭐️)",
"url": "https://www.themoviedb.org/movie/29427",
"content_text": "🎥: The Crazies (⭐️⭐️⭐️) #Movies #Watching https://www.themoviedb.org/movie/29427",
"url": "https://coryd.dev/movies/29427",
"content_text": "🎥: The Crazies (⭐️⭐️⭐️) https://coryd.dev/movies/29427",
"date_published": "Mon, 20 May 2024 15:15:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112474735239294133"
@ -13522,11 +13522,11 @@
],
"lastTootTimestamp": 1716307431247
},
"https://www.themoviedb.org/movie/384018": {
"id": "aHR0cHM6Ly93d3cudGhlbW92aWVkYi5vcmcvbW92aWUvMzg0MDE4",
"https://coryd.dev/movies/384018": {
"id": "aHR0cHM6Ly9jb3J5ZC5kZXYvbW92aWVzLzM4NDAxOA==",
"title": "🎥: Fast & Furious Presents: Hobbs & Shaw (⭐️⭐️⭐️)",
"url": "https://www.themoviedb.org/movie/384018",
"content_text": "🎥: Fast & Furious Presents: Hobbs & Shaw (⭐️⭐️⭐️) #Movies #Watching https://www.themoviedb.org/movie/384018",
"url": "https://coryd.dev/movies/384018",
"content_text": "🎥: Fast & Furious Presents: Hobbs & Shaw (⭐️⭐️⭐️) https://coryd.dev/movies/384018",
"date_published": "Tue, 21 May 2024 15:49:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112480396568749721"
@ -13543,5 +13543,49 @@
"https://social.lol/users/cory/statuses/112481847051335228"
],
"lastTootTimestamp": 1716336777577
},
"https://rachsmith.com/my-own-little-patch/": {
"id": "aHR0cHM6Ly9yYWNoc21pdGguY29tL215LW93bi1saXR0bGUtcGF0Y2gv",
"title": "🔗: My own little patch via Rach Smith",
"url": "https://rachsmith.com/my-own-little-patch/",
"content_text": "🔗: My own little patch via Rach Smith #Tech #WebDev https://rachsmith.com/my-own-little-patch/",
"date_published": "Wed, 22 May 2024 16:51:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112485587537517839"
],
"lastTootTimestamp": 1716393852868
},
"https://coryd.dev/posts/2024/boring-is-good/": {
"id": "aHR0cHM6Ly9jb3J5ZC5kZXYvcG9zdHMvMjAyNC9ib3JpbmctaXMtZ29vZC8=",
"title": "📝: Boring is good",
"url": "https://coryd.dev/posts/2024/boring-is-good/",
"content_text": "📝: Boring is good #Tech https://coryd.dev/posts/2024/boring-is-good/",
"date_published": "Wed, 22 May 2024 16:47:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112485933433076040"
],
"lastTootTimestamp": 1716399130811
},
"https://www.vox.com/culture/351041/ai-art-chatgpt-dall-e-sora-suno-human-creativity": {
"id": "aHR0cHM6Ly93d3cudm94LmNvbS9jdWx0dXJlLzM1MTA0MS9haS1hcnQtY2hhdGdwdC1kYWxsLWUtc29yYS1zdW5vLWh1bWFuLWNyZWF0aXZpdHk=",
"title": "🔗: Why AI art will always kind of suck via Vox",
"url": "https://www.vox.com/culture/351041/ai-art-chatgpt-dall-e-sora-suno-human-creativity",
"content_text": "🔗: Why AI art will always kind of suck via Vox #Tech #AI https://www.vox.com/culture/351041/ai-art-chatgpt-dall-e-sora-suno-human-creativity",
"date_published": "Thu, 23 May 2024 16:40:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112491252976972854"
],
"lastTootTimestamp": 1716480300614
},
"https://rachsmith.com/ai-is-for-the-idea-guys/": {
"id": "aHR0cHM6Ly9yYWNoc21pdGguY29tL2FpLWlzLWZvci10aGUtaWRlYS1ndXlzLw==",
"title": "🔗: Generative AI is for the idea guys via Rach Smith",
"url": "https://rachsmith.com/ai-is-for-the-idea-guys/",
"content_text": "🔗: Generative AI is for the idea guys via Rach Smith #Tech #AI https://rachsmith.com/ai-is-for-the-idea-guys/",
"date_published": "Thu, 23 May 2024 16:35:00 GMT",
"toots": [
"https://social.lol/users/cory/statuses/112491722478816346"
],
"lastTootTimestamp": 1716487464636
}
}

View file

@ -1,3 +1,4 @@
import authors from '../data/author-map.js'
import tagAliases from '../data/tag-aliases.js'
import { DateTime } from 'luxon'
@ -45,12 +46,19 @@ export const allContent = (collection) => {
if (!parsedDate.isValid) parsedDate = DateTime.fromFormat(date, 'dd-MM-yyyy')
return parsedDate.isValid ? parsedDate.toISO() : null
}
const authorLookup = (url) => {
if (!url) return null
const urlObject = new URL(url)
const baseUrl = urlObject.origin
return authors?.[baseUrl] || null
}
const addContent = (items, icon, getTitle, getDate) => {
if (items) {
items.forEach(item => {
const author = authorLookup(item.data?.link)
const content = {
url: item.url?.includes('http') ? item.url : `https://coryd.dev${item.url}`,
title: `${icon}: ${getTitle(item)}`
title: `${icon}: ${getTitle(item)}${author ? ' via ' + author : ''}`
}
if (item.data?.link) content.url = item.data?.link
if (item.data?.description) content.description = `${item.data.description}<br/><br/>`

View file

@ -1,5 +1,7 @@
export default {
"https://knowler.dev": "Nathan Knowler",
"https://www.vox.com": "Vox",
"https://rachsmith.com": "Rach Smith",
"https://zicklepop.com": "zicklepop",
"https://simonwillison.net": "Simon Willison",
"https://futurism.com": "Futurism",

View file

@ -248,6 +248,7 @@ export default {
return ''
}).length
},
getLastWatched: (show) => show?.['episodes'][show['episodes']?.length - 1]?.['last_watched_at'],
// tags
filterTags: (tags) => {

222
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "coryd.dev",
"version": "16.7.0",
"version": "16.8.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "coryd.dev",
"version": "16.7.0",
"version": "16.8.0",
"license": "MIT",
"dependencies": {
"@cdransf/api-text": "^1.2.2",
@ -22,9 +22,9 @@
"@11ty/eleventy-fetch": "^4.0.1",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
"@11tyrocks/eleventy-plugin-lightningcss": "^1.4.0",
"@aws-sdk/client-s3": "^3.577.0",
"@aws-sdk/client-s3": "^3.582.0",
"@cdransf/eleventy-plugin-tabler-icons": "^1.4.0",
"@supabase/supabase-js": "^2.43.2",
"@supabase/supabase-js": "^2.43.3",
"dotenv-flow": "^4.1.0",
"gray-matter": "^4.0.3",
"html-minifier-terser": "^7.2.0",
@ -398,18 +398,18 @@
"dev": true
},
"node_modules/@aws-sdk/client-s3": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.577.0.tgz",
"integrity": "sha512-mQYXwn6E4Rwggn6teF6EIWJtK8jsKcxnPj2QVETkSmD8QaFLm4g/DgLPdamDE97UI8k1k0cmWqXcTOLIaZ7wQg==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.582.0.tgz",
"integrity": "sha512-yp3oIN48sQSJ01JF707KcOLAb7+UxcU6uYH0J48AG61z18tJ0SdE7KG2QPEFbK1RRyYXdHd8VLkbTVP+iwCLmw==",
"dev": true,
"dependencies": {
"@aws-crypto/sha1-browser": "3.0.0",
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sso-oidc": "3.577.0",
"@aws-sdk/client-sts": "3.577.0",
"@aws-sdk/core": "3.576.0",
"@aws-sdk/credential-provider-node": "3.577.0",
"@aws-sdk/client-sso-oidc": "3.582.0",
"@aws-sdk/client-sts": "3.582.0",
"@aws-sdk/core": "3.582.0",
"@aws-sdk/credential-provider-node": "3.582.0",
"@aws-sdk/middleware-bucket-endpoint": "3.577.0",
"@aws-sdk/middleware-expect-continue": "3.577.0",
"@aws-sdk/middleware-flexible-checksums": "3.577.0",
@ -417,23 +417,23 @@
"@aws-sdk/middleware-location-constraint": "3.577.0",
"@aws-sdk/middleware-logger": "3.577.0",
"@aws-sdk/middleware-recursion-detection": "3.577.0",
"@aws-sdk/middleware-sdk-s3": "3.577.0",
"@aws-sdk/middleware-sdk-s3": "3.582.0",
"@aws-sdk/middleware-signing": "3.577.0",
"@aws-sdk/middleware-ssec": "3.577.0",
"@aws-sdk/middleware-user-agent": "3.577.0",
"@aws-sdk/region-config-resolver": "3.577.0",
"@aws-sdk/signature-v4-multi-region": "3.577.0",
"@aws-sdk/signature-v4-multi-region": "3.582.0",
"@aws-sdk/types": "3.577.0",
"@aws-sdk/util-endpoints": "3.577.0",
"@aws-sdk/util-user-agent-browser": "3.577.0",
"@aws-sdk/util-user-agent-node": "3.577.0",
"@aws-sdk/xml-builder": "3.575.0",
"@smithy/config-resolver": "^3.0.0",
"@smithy/core": "^2.0.0",
"@smithy/core": "^2.0.1",
"@smithy/eventstream-serde-browser": "^3.0.0",
"@smithy/eventstream-serde-config-resolver": "^3.0.0",
"@smithy/eventstream-serde-node": "^3.0.0",
"@smithy/fetch-http-handler": "^3.0.0",
"@smithy/fetch-http-handler": "^3.0.1",
"@smithy/hash-blob-browser": "^3.0.0",
"@smithy/hash-node": "^3.0.0",
"@smithy/hash-stream-node": "^3.0.0",
@ -441,23 +441,23 @@
"@smithy/md5-js": "^3.0.0",
"@smithy/middleware-content-length": "^3.0.0",
"@smithy/middleware-endpoint": "^3.0.0",
"@smithy/middleware-retry": "^3.0.0",
"@smithy/middleware-retry": "^3.0.1",
"@smithy/middleware-serde": "^3.0.0",
"@smithy/middleware-stack": "^3.0.0",
"@smithy/node-config-provider": "^3.0.0",
"@smithy/node-http-handler": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"@smithy/url-parser": "^3.0.0",
"@smithy/util-base64": "^3.0.0",
"@smithy/util-body-length-browser": "^3.0.0",
"@smithy/util-body-length-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.0",
"@smithy/util-defaults-mode-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.1",
"@smithy/util-defaults-mode-node": "^3.0.1",
"@smithy/util-endpoints": "^2.0.0",
"@smithy/util-retry": "^3.0.0",
"@smithy/util-stream": "^3.0.0",
"@smithy/util-stream": "^3.0.1",
"@smithy/util-utf8": "^3.0.0",
"@smithy/util-waiter": "^3.0.0",
"tslib": "^2.6.2"
@ -467,14 +467,14 @@
}
},
"node_modules/@aws-sdk/client-sso": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.577.0.tgz",
"integrity": "sha512-BwujdXrydlk6UEyPmewm5GqG4nkQ6OVyRhS/SyZP/6UKSFv2/sf391Cmz0hN0itUTH1rR4XeLln8XCOtarkrzg==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.582.0.tgz",
"integrity": "sha512-C6G2vNREANe5uUCYrTs8vvGhIrrS1GRoTjr0f5qmkZDuAtuBsQNoTF6Rt+0mDwXXBYW3FcNhZntaNCGVhXlugA==",
"dev": true,
"dependencies": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/core": "3.576.0",
"@aws-sdk/core": "3.582.0",
"@aws-sdk/middleware-host-header": "3.577.0",
"@aws-sdk/middleware-logger": "3.577.0",
"@aws-sdk/middleware-recursion-detection": "3.577.0",
@ -485,26 +485,26 @@
"@aws-sdk/util-user-agent-browser": "3.577.0",
"@aws-sdk/util-user-agent-node": "3.577.0",
"@smithy/config-resolver": "^3.0.0",
"@smithy/core": "^2.0.0",
"@smithy/fetch-http-handler": "^3.0.0",
"@smithy/core": "^2.0.1",
"@smithy/fetch-http-handler": "^3.0.1",
"@smithy/hash-node": "^3.0.0",
"@smithy/invalid-dependency": "^3.0.0",
"@smithy/middleware-content-length": "^3.0.0",
"@smithy/middleware-endpoint": "^3.0.0",
"@smithy/middleware-retry": "^3.0.0",
"@smithy/middleware-retry": "^3.0.1",
"@smithy/middleware-serde": "^3.0.0",
"@smithy/middleware-stack": "^3.0.0",
"@smithy/node-config-provider": "^3.0.0",
"@smithy/node-http-handler": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"@smithy/url-parser": "^3.0.0",
"@smithy/util-base64": "^3.0.0",
"@smithy/util-body-length-browser": "^3.0.0",
"@smithy/util-body-length-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.0",
"@smithy/util-defaults-mode-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.1",
"@smithy/util-defaults-mode-node": "^3.0.1",
"@smithy/util-endpoints": "^2.0.0",
"@smithy/util-middleware": "^3.0.0",
"@smithy/util-retry": "^3.0.0",
@ -516,16 +516,16 @@
}
},
"node_modules/@aws-sdk/client-sso-oidc": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.577.0.tgz",
"integrity": "sha512-njmKSPDWueWWYVFpFcZ2P3fI6/pdQVDa0FgCyYZhOnJLgEHZIcBBg1AsnkVWacBuLopp9XVt2m+7hO6ugY1/1g==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.582.0.tgz",
"integrity": "sha512-g4uiD4GUR03CqY6LwdocJxO+fHSBk/KNXBGJv1ENCcPmK3jpEI8xBggIQOQl3NWjDeP07bpIb8+UhgSoYAYtkg==",
"dev": true,
"dependencies": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sts": "3.577.0",
"@aws-sdk/core": "3.576.0",
"@aws-sdk/credential-provider-node": "3.577.0",
"@aws-sdk/client-sts": "3.582.0",
"@aws-sdk/core": "3.582.0",
"@aws-sdk/credential-provider-node": "3.582.0",
"@aws-sdk/middleware-host-header": "3.577.0",
"@aws-sdk/middleware-logger": "3.577.0",
"@aws-sdk/middleware-recursion-detection": "3.577.0",
@ -536,26 +536,26 @@
"@aws-sdk/util-user-agent-browser": "3.577.0",
"@aws-sdk/util-user-agent-node": "3.577.0",
"@smithy/config-resolver": "^3.0.0",
"@smithy/core": "^2.0.0",
"@smithy/fetch-http-handler": "^3.0.0",
"@smithy/core": "^2.0.1",
"@smithy/fetch-http-handler": "^3.0.1",
"@smithy/hash-node": "^3.0.0",
"@smithy/invalid-dependency": "^3.0.0",
"@smithy/middleware-content-length": "^3.0.0",
"@smithy/middleware-endpoint": "^3.0.0",
"@smithy/middleware-retry": "^3.0.0",
"@smithy/middleware-retry": "^3.0.1",
"@smithy/middleware-serde": "^3.0.0",
"@smithy/middleware-stack": "^3.0.0",
"@smithy/node-config-provider": "^3.0.0",
"@smithy/node-http-handler": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"@smithy/url-parser": "^3.0.0",
"@smithy/util-base64": "^3.0.0",
"@smithy/util-body-length-browser": "^3.0.0",
"@smithy/util-body-length-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.0",
"@smithy/util-defaults-mode-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.1",
"@smithy/util-defaults-mode-node": "^3.0.1",
"@smithy/util-endpoints": "^2.0.0",
"@smithy/util-middleware": "^3.0.0",
"@smithy/util-retry": "^3.0.0",
@ -567,16 +567,16 @@
}
},
"node_modules/@aws-sdk/client-sts": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.577.0.tgz",
"integrity": "sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.582.0.tgz",
"integrity": "sha512-3gaYyQkt8iTSStnjv6kJoPGDJUaPbhcgBOrXhUNbWUgAlgw7Y1aI1MYt3JqvVN4jtiCLwjuiAQATU/8elbqPdQ==",
"dev": true,
"dependencies": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sso-oidc": "3.577.0",
"@aws-sdk/core": "3.576.0",
"@aws-sdk/credential-provider-node": "3.577.0",
"@aws-sdk/client-sso-oidc": "3.582.0",
"@aws-sdk/core": "3.582.0",
"@aws-sdk/credential-provider-node": "3.582.0",
"@aws-sdk/middleware-host-header": "3.577.0",
"@aws-sdk/middleware-logger": "3.577.0",
"@aws-sdk/middleware-recursion-detection": "3.577.0",
@ -587,26 +587,26 @@
"@aws-sdk/util-user-agent-browser": "3.577.0",
"@aws-sdk/util-user-agent-node": "3.577.0",
"@smithy/config-resolver": "^3.0.0",
"@smithy/core": "^2.0.0",
"@smithy/fetch-http-handler": "^3.0.0",
"@smithy/core": "^2.0.1",
"@smithy/fetch-http-handler": "^3.0.1",
"@smithy/hash-node": "^3.0.0",
"@smithy/invalid-dependency": "^3.0.0",
"@smithy/middleware-content-length": "^3.0.0",
"@smithy/middleware-endpoint": "^3.0.0",
"@smithy/middleware-retry": "^3.0.0",
"@smithy/middleware-retry": "^3.0.1",
"@smithy/middleware-serde": "^3.0.0",
"@smithy/middleware-stack": "^3.0.0",
"@smithy/node-config-provider": "^3.0.0",
"@smithy/node-http-handler": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"@smithy/url-parser": "^3.0.0",
"@smithy/util-base64": "^3.0.0",
"@smithy/util-body-length-browser": "^3.0.0",
"@smithy/util-body-length-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.0",
"@smithy/util-defaults-mode-node": "^3.0.0",
"@smithy/util-defaults-mode-browser": "^3.0.1",
"@smithy/util-defaults-mode-node": "^3.0.1",
"@smithy/util-endpoints": "^2.0.0",
"@smithy/util-middleware": "^3.0.0",
"@smithy/util-retry": "^3.0.0",
@ -618,15 +618,15 @@
}
},
"node_modules/@aws-sdk/core": {
"version": "3.576.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.576.0.tgz",
"integrity": "sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.582.0.tgz",
"integrity": "sha512-ofmD96IQc9g1dbyqlCyxu5fCG7kIl9p1NoN5+vGBUyLdbmPCV3Pdg99nRHYEJuv2MgGx5AUFGDPMHcqbJpnZIw==",
"dev": true,
"dependencies": {
"@smithy/core": "^2.0.0",
"@smithy/core": "^2.0.1",
"@smithy/protocol-http": "^4.0.0",
"@smithy/signature-v4": "^3.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"fast-xml-parser": "4.2.5",
"tslib": "^2.6.2"
@ -651,19 +651,19 @@
}
},
"node_modules/@aws-sdk/credential-provider-http": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.577.0.tgz",
"integrity": "sha512-n++yhCp67b9+ZRGEdY1jhamB5E/O+QsIDOPSuRmdaSGMCOd82oUEKPgIVEU1bkqxDsBxgiEWuvtfhK6sNiDS0A==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.582.0.tgz",
"integrity": "sha512-kGOUKw5ryPkDIYB69PjK3SicVLTbWB06ouFN2W1EvqUJpkQGPAUGzYcomKtt3mJaCTf/1kfoaHwARAl6KKSP8Q==",
"dev": true,
"dependencies": {
"@aws-sdk/types": "3.577.0",
"@smithy/fetch-http-handler": "^3.0.0",
"@smithy/fetch-http-handler": "^3.0.1",
"@smithy/node-http-handler": "^3.0.0",
"@smithy/property-provider": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"@smithy/util-stream": "^3.0.0",
"@smithy/util-stream": "^3.0.1",
"tslib": "^2.6.2"
},
"engines": {
@ -671,14 +671,14 @@
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.577.0.tgz",
"integrity": "sha512-q7lHPtv6BjRvChUE3m0tIaEZKxPTaZ1B3lKxGYsFl3VLAu5N8yGCUKwuA1izf4ucT+LyKscVGqK6VDZx1ev3nw==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.582.0.tgz",
"integrity": "sha512-GWcjHx6ErcZAi5GZ7kItX7E6ygYmklm9tD9dbCWdsnis7IiWfYZNMXFQEwKCubUmhT61zjGZGDUiRcqVeZu1Aw==",
"dev": true,
"dependencies": {
"@aws-sdk/credential-provider-env": "3.577.0",
"@aws-sdk/credential-provider-process": "3.577.0",
"@aws-sdk/credential-provider-sso": "3.577.0",
"@aws-sdk/credential-provider-sso": "3.582.0",
"@aws-sdk/credential-provider-web-identity": "3.577.0",
"@aws-sdk/types": "3.577.0",
"@smithy/credential-provider-imds": "^3.0.0",
@ -691,20 +691,20 @@
"node": ">=16.0.0"
},
"peerDependencies": {
"@aws-sdk/client-sts": "^3.577.0"
"@aws-sdk/client-sts": "^3.582.0"
}
},
"node_modules/@aws-sdk/credential-provider-node": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.577.0.tgz",
"integrity": "sha512-epZ1HOMsrXBNczc0HQpv0VMjqAEpc09DUA7Rg3gUJfn8umhML7A7bXnUyqPA+S54q397UYg1leQKdSn23OiwQQ==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.582.0.tgz",
"integrity": "sha512-T8OLA/2xayRMT8z2eIZgo8tBAamTsBn7HWc8mL1a9yzv5OCPYvucNmbO915DY8u4cNbMl2dcB9frfVxIrahCXw==",
"dev": true,
"dependencies": {
"@aws-sdk/credential-provider-env": "3.577.0",
"@aws-sdk/credential-provider-http": "3.577.0",
"@aws-sdk/credential-provider-ini": "3.577.0",
"@aws-sdk/credential-provider-http": "3.582.0",
"@aws-sdk/credential-provider-ini": "3.582.0",
"@aws-sdk/credential-provider-process": "3.577.0",
"@aws-sdk/credential-provider-sso": "3.577.0",
"@aws-sdk/credential-provider-sso": "3.582.0",
"@aws-sdk/credential-provider-web-identity": "3.577.0",
"@aws-sdk/types": "3.577.0",
"@smithy/credential-provider-imds": "^3.0.0",
@ -734,12 +734,12 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.577.0.tgz",
"integrity": "sha512-iVm5SQvS7EgZTJsRaqUOmDQpBQPPPat42SCbWFvFQOLrl8qewq8OP94hFS5w2mP62zngeYzqhJnDel79HXbxew==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.582.0.tgz",
"integrity": "sha512-PSiBX6YvJaodGSVg6dReWfeYgK5Tl4fUi0GMuD9WXo/ckfxAPdDFtIfVR6VkSPUrkZj26uw1Pwqeefp2H5phag==",
"dev": true,
"dependencies": {
"@aws-sdk/client-sso": "3.577.0",
"@aws-sdk/client-sso": "3.582.0",
"@aws-sdk/token-providers": "3.577.0",
"@aws-sdk/types": "3.577.0",
"@smithy/property-provider": "^3.0.0",
@ -880,9 +880,9 @@
}
},
"node_modules/@aws-sdk/middleware-sdk-s3": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.577.0.tgz",
"integrity": "sha512-/t8Shvy6lGIRdTEKG6hA8xy+oon/CDF5H8Ksms/cd/uvIy/MYbNjOJ/Arwk8H5W6LB4DP/1O+tOzOpGx1MCufA==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.582.0.tgz",
"integrity": "sha512-PJqQpLoLaZPRI4L/XZUeHkd9UVK8VAr9R38wv0osGeMTvzD9iwzzk0I2TtBqFda/5xEB1YgVYZwyqvmStXmttg==",
"dev": true,
"dependencies": {
"@aws-sdk/types": "3.577.0",
@ -890,7 +890,7 @@
"@smithy/node-config-provider": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/signature-v4": "^3.0.0",
"@smithy/smithy-client": "^3.0.0",
"@smithy/smithy-client": "^3.0.1",
"@smithy/types": "^3.0.0",
"@smithy/util-config-provider": "^3.0.0",
"tslib": "^2.6.2"
@ -965,12 +965,12 @@
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
"version": "3.577.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.577.0.tgz",
"integrity": "sha512-mMykGRFBYmlDcMhdbhNM0z1JFUaYYZ8r9WV7Dd0T2PWELv2brSAjDAOBHdJLHObDMYRnM6H0/Y974qTl3icEcQ==",
"version": "3.582.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.582.0.tgz",
"integrity": "sha512-aFCOjjNqEX2l+V8QjOWy5F7CtHIC/RlYdBuv3No6yxn+pMvVUUe6zdMk2yHWcudVpHWsyvcZzAUBliAPeFLPsQ==",
"dev": true,
"dependencies": {
"@aws-sdk/middleware-sdk-s3": "3.577.0",
"@aws-sdk/middleware-sdk-s3": "3.582.0",
"@aws-sdk/types": "3.577.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/signature-v4": "^3.0.0",
@ -2470,9 +2470,9 @@
}
},
"node_modules/@supabase/postgrest-js": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.15.2.tgz",
"integrity": "sha512-9/7pUmXExvGuEK1yZhVYXPZnLEkDTwxgMQHXLrN5BwPZZm4iUCL1YEyep/Z2lIZah8d8M433mVAUEGsihUj5KQ==",
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.15.3.tgz",
"integrity": "sha512-kvfFhuurvnn7+XoXvwb6j64BqqS/xguXfM5FY8xPK24Kza+Bl4NPxGSMu3NWZiWPBgW2C27X2yHz/T+VYlXkEA==",
"dev": true,
"dependencies": {
"@supabase/node-fetch": "^2.6.14"
@ -2500,15 +2500,15 @@
}
},
"node_modules/@supabase/supabase-js": {
"version": "2.43.2",
"resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.43.2.tgz",
"integrity": "sha512-F9CljeJBo5aPucNhrLoMnpEHi5yqNZ0vH0/CL4mGy+/Ggr7FUrYErVJisa1NptViqyhs1HGNzzwjOYG6626h8g==",
"version": "2.43.3",
"resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.43.3.tgz",
"integrity": "sha512-jrlx9sIty4lpG9ukhD9wimzHrFzeLTq/JKhqDqVLKo449NYlZbpcnmhqSjfZmve/0mIq1rbYmVvKQ90Hq4/cVg==",
"dev": true,
"dependencies": {
"@supabase/auth-js": "2.64.2",
"@supabase/functions-js": "2.3.1",
"@supabase/node-fetch": "2.6.15",
"@supabase/postgrest-js": "1.15.2",
"@supabase/postgrest-js": "1.15.3",
"@supabase/realtime-js": "2.9.5",
"@supabase/storage-js": "2.5.5"
}
@ -2822,9 +2822,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001620",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
"integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
"version": "1.0.30001621",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz",
"integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==",
"dev": true,
"funding": [
{
@ -3346,9 +3346,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
"version": "1.4.777",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.777.tgz",
"integrity": "sha512-n02NCwLJ3wexLfK/yQeqfywCblZqLcXphzmid5e8yVPdtEcida7li0A5WQKghHNG0FeOMCzeFOzEbtAh5riXFw==",
"version": "1.4.778",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.778.tgz",
"integrity": "sha512-C6q/xcUJf/2yODRxAVCfIk4j3y3LMsD0ehiE2RQNV2cxc8XU62gR6vvYh3+etSUzlgTfil+qDHI1vubpdf0TOA==",
"dev": true
},
"node_modules/encodeurl": {
@ -4854,30 +4854,18 @@
"dev": true
},
"node_modules/micromatch": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz",
"integrity": "sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==",
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
"dev": true,
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^4.0.2"
"picomatch": "^2.3.1"
},
"engines": {
"node": ">=8.6"
}
},
"node_modules/micromatch/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/mime": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",

View file

@ -1,6 +1,6 @@
{
"name": "coryd.dev",
"version": "16.7.0",
"version": "16.8.0",
"description": "The source for my personal site. Built using 11ty.",
"type": "module",
"scripts": {
@ -34,9 +34,9 @@
"@11ty/eleventy-fetch": "^4.0.1",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
"@11tyrocks/eleventy-plugin-lightningcss": "^1.4.0",
"@aws-sdk/client-s3": "^3.577.0",
"@aws-sdk/client-s3": "^3.582.0",
"@cdransf/eleventy-plugin-tabler-icons": "^1.4.0",
"@supabase/supabase-js": "^2.43.2",
"@supabase/supabase-js": "^2.43.3",
"dotenv-flow": "^4.1.0",
"gray-matter": "^4.0.3",
"html-minifier-terser": "^7.2.0",

View file

@ -10790,7 +10790,7 @@
"categories": [
"Biography & Autobiography"
],
"thumbnail": "https://books.google.com/books/content?id=f8LrtwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api&w=512",
"thumbnail": "https://coryd.dev/media/books/1573449709-see-a-little-light.jpg",
"language": "en",
"link": "https://books.google.com/books/about/See_a_Little_Light.html?hl=&id=f8LrtwEACAAJ"
}

View file

@ -22,7 +22,9 @@ const fetchAllMovies = async () => {
collected,
plays,
favorite,
rating
rating,
description,
review
`)
.order('last_watched', { ascending: false })
.range(rangeStart, rangeStart + PAGE_SIZE - 1)
@ -49,7 +51,7 @@ export default async function () {
lastWatched: item['last_watched'],
dateAdded: item['last_watched'],
year: item['year'],
url: `https://www.themoviedb.org/movie/${item['tmdb_id']}`,
url: `https://coryd.dev/movies/${item['tmdb_id']}`,
description: `${item['title']} (${item['year']})<br/>Watched at: ${DateTime.fromISO(item['last_watched'], { zone: 'utc' }).setZone('America/Los_Angeles').toFormat('MMMM d, yyyy, h:mma')}`,
image: `https://coryd.dev/media/movies/poster-${item['tmdb_id']}.jpg`,
backdrop: `https://coryd.dev/media/movies/backdrops/backdrop-${item['tmdb_id']}.jpg`,
@ -57,6 +59,8 @@ export default async function () {
collected: item['collected'],
favorite: item['favorite'],
rating: item['rating'],
description: item['description'],
id: item['tmdb_id'],
type: 'movie'
}
return movie

View file

@ -58,8 +58,9 @@ const fetchAllTimeData = async (fields, table) => {
return rows
}
const aggregateData = (data, groupByField, groupByType, sort = true) => {
const aggregateData = (data, groupByField, groupByType) => {
const aggregation = {}
data.forEach(item => {
const key = item[groupByField]
if (!aggregation[key]) {
@ -92,7 +93,8 @@ const aggregateData = (data, groupByField, groupByType, sort = true) => {
}
aggregation[key].plays++
})
const aggregatedData = sort ? Object.values(aggregation).sort((a, b) => b.plays - a.plays) : Object.values(aggregation)
const aggregatedData = Object.values(aggregation).sort((a, b) => b.plays - a.plays)
aggregatedData.forEach((item, index) => {
item.rank = index + 1
@ -158,7 +160,7 @@ export default async function() {
artists: aggregateData(recentData, 'artist_name', 'artists'),
albums: aggregateData(recentData, 'album_name', 'albums'),
tracks: aggregateData(recentData, 'track_name', 'track'),
tracksChronological: aggregateData(recentData, 'track_name', 'track', false),
tracksChronological: aggregateData(recentData, 'track_name', 'track').sort((a, b) => b.timestamp - a.timestamp),
genres: aggregateGenres(recentData),
totalTracks: recentData?.length?.toLocaleString('en-US')
}

View file

@ -3,7 +3,7 @@ export default async function () {
footer: [
{ name: 'Now' },
{ name: 'Uses' },
{ name: 'Referrals' },
{ name: 'Save' },
{ name: 'Blogroll' },
{ name: 'Speedlify' },
],

View file

@ -18,6 +18,8 @@ const fetchAllShows = async () => {
collected,
favorite,
year,
description,
review,
episodes (
episode_number,
season_number,
@ -88,7 +90,7 @@ export default async function () {
showEpisodesMap[showTmdbId].episodes.push({
name: showTitle,
url: `https://www.themoviedb.org/tv/${showTmdbId}/season/${seasonNumber}/episode/${episodeNumber}`,
url: `https://coryd.dev/shows/${showTmdbId}`,
subtext: `${showTitle} • S${seasonNumber}E${episodeNumber}`,
episode: episodeNumber,
season: seasonNumber,
@ -112,7 +114,7 @@ export default async function () {
if (show.episodes.length > 1) {
episodeData.push({
name: show.title,
url: `https://www.themoviedb.org/tv/${show['tmdbId']}`,
url: `https://coryd.dev/shows/${show['tmdbId']}`,
subtext: `S${startingSeason}E${startingEpisode} - S${endingSeason}E${endingEpisode}`,
startingEpisode,
startingSeason,
@ -138,7 +140,7 @@ export default async function () {
const favoriteShows = shows.filter(show => show['favorite'])
const collectedShows = shows.filter(show => show['collected'])
const toWatch = shows.map(show => ({...show, url: `https://www.themoviedb.org/tv/${show['tmdb_id']}`})).filter(show => !show.episodes.some(episode => episode.last_watched_at)).sort((a, b) => a['title'].localeCompare(b['title']))
const toWatch = shows.map(show => ({...show, url: `https://coryd.dev/shows/${show['tmdb_id']}`})).filter(show => !show.episodes.some(episode => episode.last_watched_at)).sort((a, b) => a['title'].localeCompare(b['title']))
return {
shows,

View file

@ -6,6 +6,10 @@
{{ title }} • {{ meta.siteName }}
{% elsif book.title %}
Books • {{ book.title }} • {{ meta.siteName }}
{% elsif movie.title %}
Movies • {{ movie.title }}{% if movie.rating %} ({{ movie.rating }}){% endif %} • {{ meta.siteName }}
{% elsif movie.title %}
Shows • {{ show.title }} • {{ meta.siteName }}
{% else %}
{{ meta.siteName }}
{%- endif -%}
@ -15,6 +19,10 @@
{{ post_excerpt | markdown | strip_html }}
{% elsif book.description %}
{{ book.description }}
{% elsif movie.description %}
{% if movie.review %}{{ movie.review }}{% else %}{{ movie.description }}{% endif %}
{% elsif show.description %}
{% if show.review %}{{ show.review }}{% else %}{{ show.description }}{% endif %}
{% elsif description %}
{{ description }}
{% else %}
@ -34,6 +42,10 @@
{{ featuredBook.image }}
{%- elsif schema == 'book' -%}
{{ book.image }}
{%- elsif schema == 'movie' -%}
{{ movie.backdrop }}
{%- elsif schema == 'show' -%}
{{ meta.url }}/media/shows/backdrops/backdrop-{{ show.tmdb_id }}.jpg
{%- else -%}
{{ meta.meta_data.opengraph_default }}
{%- endif -%}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View file

@ -490,6 +490,8 @@ button {
/* selects */
select {
color: var(--text-color);
background-color: var(--background-color);
padding: var(--sizing-xs) var(--sizing-sm);
}

View file

@ -118,6 +118,34 @@
}
}
.watching-focus {
border-bottom: 0;
& .watching-meta {
display: flex;
flex-direction: column;
gap: var(--sizing-xs);
margin-top: var(--sizing-base);
& p {
&.title {
font-size: var(--font-size-xl);
}
&.sub-meta {
font-size: var(--font-size-xs);
line-height: var(--line-height-xs);
}
&.title,
&.rating,
&.sub-meta {
margin: 0;
}
}
}
}
@media screen and (min-width: 768px) {
.watching.grid {
grid-template-columns: repeat(3,minmax(0,1fr))

View file

@ -0,0 +1,7 @@
---
title: "My own little patch"
date: "2024-05-22T08:51-08:00"
tags: ["tech", "development"]
description: "I don't know if you've tried to use websites lately, but it's largely a mess out there. It feels like things have descended in to a complete shitshow and are only getting worse."
link: "https://rachsmith.com/my-own-little-patch/"
---

View file

@ -0,0 +1,7 @@
---
title: "Generative AI is for the idea guys"
date: "2024-05-23T08:35-08:00"
tags: ["tech", "AI"]
description: "https://rachsmith.com/ai-is-for-the-idea-guys/"
link: "https://rachsmith.com/ai-is-for-the-idea-guys/"
---

View file

@ -0,0 +1,7 @@
---
title: "Why AI art will always kind of suck"
date: "2024-05-23T08:40-08:00"
tags: ["tech", "AI"]
description: "Artificial intelligence has long been hailed as a great “equalizer” of creativity, finally putting the ability to create art in all of its myriad forms into the hands of the tech-savvy. Not a creative person? Not an issue."
link: "https://www.vox.com/culture/351041/ai-art-chatgpt-dall-e-sora-suno-human-creativity"
---

View file

@ -8,6 +8,9 @@ permalink: /books/{{ book.isbn }}/
isbn: {{ book.isbn }}
schema: book
---
{%- capture alt -%}
{{ book.title }}{% if book.authors %}By {{ book.authors }}{% endif %}
{%- endcapture -%}
<a class="back-link-header link-icon flex-centered" href="/books">{% tablericon "arrow-left" "Go back" %} Go back</a>
<article class="book-focus">
<div class="book-display">

View file

@ -0,0 +1,27 @@
---
layout: default
pagination:
data: movies.movies
size: 1
alias: movie
permalink: /movies/{{ movie.id }}/
schema: movie
---
{%- capture alt -%}
{{ movie.title }} • {{ movie.year }}{% if move.rating %} ({{ movie.rating }}){% endif %}
{%- endcapture -%}
<a class="back-link-header link-icon flex-centered" href="/watching">{% tablericon "arrow-left" "Go back" %} Go back</a>
<article class="watching-focus">
<img src="https://coryd.dev/.netlify/images/?url={{ movie.backdrop }}&fm=webp&q=85&w=768&h=432" alt="{{ alt }}" class="image-banner" loading="eager" decoding="async" width="768" height="432" />
<div class="watching-meta">
<p class="title"><strong>{{ movie.title }}</strong></p>
{% if movie.rating %}<p class="rating">{{ movie.rating }}</p>{% endif %}
{% if movie.lastWatched %}<p class="sub-meta">Last watched on: {{ movie.lastWatched | date: "%B %e, %Y" }}</p>{% endif %}
<p class="sub-meta"><a href="https://themoviedb.org/movie/{{ movie.id }}">View on TMDB</a></p>
</div>
{% if movie.review %}
<p>{{ movie.review | markdown }}</p>
<hr class="large-spacing" />
{% endif %}
{% if movie.description %}<p><em>{{ movie.description }}</em></p>{% endif %}
</article>

View file

@ -0,0 +1,27 @@
---
layout: default
pagination:
data: tv.shows
size: 1
alias: show
permalink: /shows/{{ show.tmdb_id }}/
schema: show
---
{%- capture alt -%}
{{ show.title }} • {{ show.year }}
{%- endcapture -%}
{% assign lastWatched = show | getLastWatched %}
<a class="back-link-header link-icon flex-centered" href="/watching">{% tablericon "arrow-left" "Go back" %} Go back</a>
<article class="watching-focus">
<img src="https://coryd.dev/.netlify/images/?url=https://coryd.dev/media/shows/backdrops/backdrop-{{ show.tmdb_id }}.jpg&fm=webp&q=85&w=768&h=432" alt="{{ alt }}" class="image-banner" loading="eager" decoding="async" width="768" height="432" />
<div class="watching-meta">
<p class="title"><strong>{{ show.title }}</strong></p>
{% if lastWatched %}<p class="sub-meta">Last watched on: {{ lastWatched | date: "%B %e, %Y" }}</p>{% endif %}
<p class="sub-meta"><a href="https://themoviedb.org/tv/{{ show.tmdb_id }}">View on TMDB</a></p>
</div>
{% if show.review %}
<p>{{ show.review | markdown }}</p>
<hr class="large-spacing" />
{% endif %}
{% if show.description %}<p><em>{{ show.description }}</em></p>{% endif %}
</article>

View file

@ -1,8 +1,8 @@
---
title: Referrals
title: Save
layout: default
permalink: /referrals.html
description: Referral links for services that I use.
permalink: /save.html
description: Save a little bit on services that I also use.
---
<h2 class="page-header">{{ title }}</h2>

View file

@ -0,0 +1,24 @@
---
date: 2024-05-22T08:47-08:00
title: Boring is good
description: Boring is good — often great. My favorite applications and tools are typically the most staid. The ones that change little or where there's a clear progression of minor versions leading to major versions.
tags:
- tech
---
Boring is good — often great. My favorite applications and tools are typically the most staid. The ones that change little or where there's a clear progression of minor versions leading to major versions.<!-- excerpt -->
Take, for example, [NetNewsWire](https://netnewswire.com). It's updated infrequently, does exactly what it sets out to do reliably and issues that are carefully considered and never disruptive. [Their app philosophy statement outlines this beautifully](https://netnewswire.com/philosophy.html):
> We believe that quality is more important than just piling on features; we believe that quality is the most important feature. And we believe that high quality is transformative — it makes for an app you never hesitate to reach for. You can rely on it, and you do, again and again.
That, to me, is the *best* kind of boring. If I'm investing in a tool, I want it to be developed in a way that best serves what it's intended to do. An RSS reader syncs feeds and displays them in a chronological order while making entries in the feed easy to read. NetNewsWire does that *perfectly*.
I see some of this attitude in Steph Ango's [file over app](https://stephango.com/file-over-app) philosophy. Files can be limiting, they can be boring but software — more than many other things — comes and goes. Files tend to be the boring, enduring output that software can (and should) enable. Applications and systems that abstract away file access are ones that tend to prevent access to data should they fail or fade away. That's not magic, that's lock-in or engineered precarity.
Email is boring by almost every possible measure or definition but it continues to work, continues to be open and allows access to data. If I send an email it generally just works (vagaries of ever-evolving spam filters aside).
Music used to only require audio files and a program to play them. We traded that boring simplicity for a model that — while arguably convenient for users — is utterly unpredictable. The album you had on repeat yesterday may be gone tomorrow.
New technology can offer exciting features that we think we need and it's easy to get caught up on the hype. When what's promised fails to be delivered or fails after it has been delivered (which is so often the case), it's hard to remain optimistic about new developments.
<strong class="highlight-text">Taking a steady, slower approach isn't bad — it's often much easier than navigating the peaks and troughs of hype and the disappointment that follows.</strong>