From d5db048ec631a194f0378f74af586c419d172c34 Mon Sep 17 00:00:00 2001 From: Jade Ellis Date: Sun, 24 Nov 2024 02:54:18 +0000 Subject: [PATCH] Upgrade to Svelte 5, some regressions :( --- deploy_website.nu | 2 +- packages/website/csp.js | 36 +- packages/website/package.json | 63 +- packages/website/src/lib/Callout.svelte | 28 +- packages/website/src/lib/Editor.svelte | 88 +- packages/website/src/lib/Footer.svelte | 2 +- .../website/src/lib/GhReleasesDownload.svelte | 6 +- packages/website/src/lib/Hero.svelte | 8 +- packages/website/src/lib/Toc.svelte | 13 +- packages/website/src/lib/TocItem.svelte | 9 +- .../blog/image => lib/assets}/Inter-Bold.ttf | Bin .../image => lib/assets}/Inter-Regular.ttf | Bin packages/website/src/lib/assets/fonts.js | 19 + .../website/src/lib/htmlComponents/img.svelte | 34 +- .../website/src/lib/mdlayouts/default.svelte | 9 +- .../routes/(tools)/bookmarklets/+page.svelte | 20 +- .../(tools)/javascript-minifier/+page.svelte | 23 +- packages/website/src/routes/+error.svelte | 8 +- packages/website/src/routes/+layout.svelte | 7 +- packages/website/src/routes/+page.svelte | 2 +- packages/website/src/routes/blog/+page.svelte | 6 +- .../routes/blog/[...date]/[slug]/+page.svelte | 39 +- .../src/routes/blog/[...date]/[slug]/+page.ts | 3 +- .../website/src/routes/blog/image/+server.ts | 19 +- packages/website/src/routes/blog/posts.ts | 13 +- .../src/routes/projects/[slug]/+page.svelte | 8 +- .../src/routes/projects/[slug]/+page.ts | 2 +- .../src/routes/projects/[slug]/projects.ts | 2 +- .../src/routes/sitemap[[page]].xml/+server.ts | 2 +- packages/website/vite.config.ts | 18 +- pnpm-lock.yaml | 3308 ++++++++--------- 31 files changed, 1894 insertions(+), 1903 deletions(-) rename packages/website/src/{routes/blog/image => lib/assets}/Inter-Bold.ttf (100%) rename packages/website/src/{routes/blog/image => lib/assets}/Inter-Regular.ttf (100%) create mode 100644 packages/website/src/lib/assets/fonts.js diff --git a/deploy_website.nu b/deploy_website.nu index cb4ea074..8252f2d3 100644 --- a/deploy_website.nu +++ b/deploy_website.nu @@ -1,2 +1,2 @@ podman build . -f packages/website/Dockerfile -t jade-website-frontend:latest; -podman save --format oci-archive jade-website-frontend:latest | gzip | ssh core@176.126.240.240 -T "zcat > /opt/images/jade-website-frontend" \ No newline at end of file +podman save --format oci-archive jade-website-frontend:latest | gzip | ssh fedora@213.32.25.24 -T "zcat > /opt/images/jade-website-frontend" \ No newline at end of file diff --git a/packages/website/csp.js b/packages/website/csp.js index b3013bc7..a3591438 100644 --- a/packages/website/csp.js +++ b/packages/website/csp.js @@ -5,28 +5,28 @@ import { SENTRY_REPORT_URL } from './src/lib/config.js'; * @type {import("@sveltejs/kit").CspDirectives} */ const cspDirectives = { - 'base-uri': ["'self'"], - 'child-src': ["'self'", "blob:"], - 'connect-src': ["'self'", "https://*.google-analytics.com", "https://" + SENTRY_HOST], - // 'connect-src': ["'self'", 'ws://localhost:*', 'https://hcaptcha.com', 'https://*.hcaptcha.com'], - 'img-src': ["'self'", 'data:', + 'base-uri': ["self"], + 'child-src': ["self", "blob:"], + 'connect-src': ["self", "https://*.google-analytics.com", "https://" + SENTRY_HOST], + // 'connect-src': ["self", 'ws://localhost:*', 'https://hcaptcha.com', 'https://*.hcaptcha.com'], + 'img-src': ["self", 'data:', 'https://*.googletagmanager.com'], - 'font-src': ["'self'", 'data:'], - 'form-action': ["'self'"], - 'frame-ancestors': ["'self'"], + 'font-src': ["self", 'data:'], + 'form-action': ["self"], + 'frame-ancestors': ["self"], 'frame-src': [ - "'self'", + "self", // "https://*.stripe.com", // "https://*.facebook.com", // "https://*.facebook.net", // 'https://hcaptcha.com', // 'https://*.hcaptcha.com', ], - 'manifest-src': ["'self'"], - 'media-src': ["'self'", 'data:'], - 'object-src': ["'none'"], - 'style-src': ["'self'", "'unsafe-inline'"], - // 'style-src': ["'self'", "'unsafe-inline'", 'https://hcaptcha.com', 'https://*.hcaptcha.com'], + 'manifest-src': ["self"], + 'media-src': ["self", 'data:'], + 'object-src': ["none"], + 'style-src': ["self", "unsafe-inline"], + // 'style-src': ["self", "'unsafe-inline'", 'https://hcaptcha.com', 'https://*.hcaptcha.com'], 'default-src': [ 'self', ...(rootDomain ? [rootDomain, `ws://${rootDomain}`] : []), @@ -42,8 +42,8 @@ const cspDirectives = { // 'https://*.sentry.io', ], 'script-src': [ - 'self', - 'unsafe-inline', // chrome suggestion + "self", + "unsafe-inline", // chrome suggestion 'https://*.googletagmanager.com' // 'https://*.stripe.com', // 'https://*.facebook.com', @@ -53,9 +53,9 @@ const cspDirectives = { // 'https://*.sentry.io', // 'https://polyfill.io', ], - 'worker-src': ["'self'", "blob:"], + 'worker-src': ["self", "blob:"], // remove report-to & report-uri if you do not want to use Sentry reporting - 'report-to': ["'csp-endpoint'"], + 'report-to': ["csp-endpoint"], 'report-uri': [ SENTRY_REPORT_URL, ], diff --git a/packages/website/package.json b/packages/website/package.json index 9787c274..1a5fb8c5 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -10,25 +10,25 @@ "fix": "biome lint --write . && biome format --write . && biome check . --write" }, "devDependencies": { - "@biomejs/biome": "1.9.0", + "@biomejs/biome": "1.9.4", "@bitmachina/highlighter": "1.0.0-alpha.6", - "@fontsource/fira-mono": "^5.0.14", + "@fontsource/fira-mono": "^5.1.0", "@json-feed-types/1_1": "^1.0.2", - "@rollup/pluginutils": "^5.1.0", - "@sentry/esbuild-plugin": "^2.22.2", - "@sveltejs/adapter-auto": "^3.2.4", - "@sveltejs/adapter-node": "^5.2.2", - "@sveltejs/kit": "^2.5.24", - "@sveltejs/vite-plugin-svelte": "^3.1.2", + "@rollup/pluginutils": "^5.1.3", + "@sentry/esbuild-plugin": "^2.22.6", + "@sveltejs/adapter-auto": "^3.3.1", + "@sveltejs/adapter-node": "^5.2.9", + "@sveltejs/kit": "^2.8.2", + "@sveltejs/vite-plugin-svelte": "^4.0.1", "@types/fnv-plus": "^1.3.2", - "@types/node": "^20.16.1", + "@types/node": "^20.17.7", "@types/polka": "^0.5.7", "@types/sharedworker": "^0.0.115", "dotenv": "^16.4.5", "esbuild": "^0.23.1", "github-slugger": "^2.0.0", "glob": "^10.4.5", - "hast-util-to-string": "^3.0.0", + "hast-util-to-string": "^3.0.1", "just-camel-case": "^6.2.0", "mdast-util-to-string": "^4.0.0", "mdsvex": "^0.11.2", @@ -43,56 +43,55 @@ "remark-math": "^3.0.1", "remark-reading-time": "^2.0.1", "remark-wiki-link": "^0.0.4", - "rollup": "^4.21.0", + "rollup": "^4.27.4", "rollup-plugin-type-as-json-schema": "^0.2.6", "rollup-plugin-visualizer": "^5.12.0", "schema-dts": "^1.1.2", "sharp": "^0.33.5", - "svelte": "^4.2.19", - "svelte-check": "^3.8.6", + "svelte": "^5.2.7", + "svelte-check": "^4.1.0", "svelte-seo": "^1.6.1", - "sveltekit-html-minifier": "^1.0.3", + "sveltekit-html-minifier": "^1.0.4", "svgo": "^3.3.2", - "tm-grammars": "^1.17.4", - "tslib": "^2.7.0", - "typescript": "^5.5.4", + "tm-grammars": "^1.19.5", + "tslib": "^2.8.1", + "typescript": "^5.7.2", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "vite": "^5.4.2", - "vite-plugin-dynamic-import": "^1.5.0", "vite-plugin-image-optimizer": "^1.1.8", "vite-plugin-thumbhash": "^0.1.6", "vite-plugin-thumbhash-svg": "workspace:^" }, "type": "module", "dependencies": { - "@babel/preset-typescript": "^7.24.7", - "@codemirror/commands": "^6.6.0", + "@babel/preset-typescript": "^7.26.0", + "@codemirror/commands": "^6.7.1", "@codemirror/lang-javascript": "^6.2.2", - "@codemirror/language": "^6.10.2", - "@codemirror/lint": "^6.8.1", + "@codemirror/language": "^6.10.3", + "@codemirror/lint": "^6.8.3", "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.33.0", + "@codemirror/view": "^6.35.0", "@isaacs/ttlcache": "^1.4.1", "@lezer/highlight": "^1.2.1", - "@octokit/types": "^13.5.0", + "@octokit/types": "^13.6.1", "@resvg/resvg-js": "^2.6.2", - "@sentry/sveltekit": "^8.26.0", - "@steeze-ui/svelte-icon": "^1.5.0", - "@tabler/icons-svelte": "^3.12.0", + "@sentry/sveltekit": "^8.40.0", + "@steeze-ui/svelte-icon": "^1.6.2", + "@tabler/icons-svelte": "^3.22.0", "@tusbar/cache-control": "^1.0.2", - "@uiw/codemirror-theme-github": "^4.23.0", + "@uiw/codemirror-theme-github": "^4.23.6", "Notes": "file:Notes-1.0.0.tgz", - "acorn": "^8.12.1", + "acorn": "^8.14.0", "codemirror": "^6.0.1", "fnv-plus": "^1.3.1", - "magic-string": "^0.30.11", + "magic-string": "^0.30.13", "octokit": "^3.2.1", "satori": "^0.10.14", "slugify": "^1.6.6", "super-sitemap": "^0.14.20", - "svelte-codemirror-editor": "^1.4.0", - "terser": "^5.31.6", + "svelte-codemirror-editor": "^1.4.1", + "terser": "^5.36.0", "xmlbuilder2": "^3.1.1" }, "targets": { diff --git a/packages/website/src/lib/Callout.svelte b/packages/website/src/lib/Callout.svelte index dcc51739..377df64c 100644 --- a/packages/website/src/lib/Callout.svelte +++ b/packages/website/src/lib/Callout.svelte @@ -1,27 +1,37 @@
- {#if $$slots.icon} -
+ {#if icon} +
{@render icon?.()}
{:else}
{/if}
- {calloutType.replace(/\w\S*/g, function (txt) { + {#if title}{@render title()}{:else}{calloutType.replace(/\w\S*/g, function (txt) { return ( txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase() ); - })} + })}{/if}
- {#if $$slots.body} -
+ {#if body} +
{@render body?.()}
{/if}
diff --git a/packages/website/src/lib/Editor.svelte b/packages/website/src/lib/Editor.svelte index be62a29c..ee324fe9 100644 --- a/packages/website/src/lib/Editor.svelte +++ b/packages/website/src/lib/Editor.svelte @@ -1,4 +1,4 @@ - -
- {#if $$slots.header} +
+ {#if header}
- + {@render header?.()}
{/if} {#if is_browser} -
+
{:else}
-
+

Loading editor...

{value}
diff --git a/packages/website/src/lib/Footer.svelte b/packages/website/src/lib/Footer.svelte index e435a52f..ff69f7b1 100644 --- a/packages/website/src/lib/Footer.svelte +++ b/packages/website/src/lib/Footer.svelte @@ -51,7 +51,7 @@ Jade Ellis - +
{#each Object.entries(links) as [title, inner_links]} diff --git a/packages/website/src/lib/GhReleasesDownload.svelte b/packages/website/src/lib/GhReleasesDownload.svelte index 6ec8b5e7..802ef227 100644 --- a/packages/website/src/lib/GhReleasesDownload.svelte +++ b/packages/website/src/lib/GhReleasesDownload.svelte @@ -1,8 +1,12 @@ diff --git a/packages/website/src/lib/Hero.svelte b/packages/website/src/lib/Hero.svelte index 90b7cb93..c002a93a 100644 --- a/packages/website/src/lib/Hero.svelte +++ b/packages/website/src/lib/Hero.svelte @@ -1,7 +1,9 @@ {#if headings?.length > 0} -