From 35ec418adc04dcac654ed54b4b22290e4dcc9b05 Mon Sep 17 00:00:00 2001 From: denizk0461 Date: Sat, 16 Aug 2025 14:26:33 +0200 Subject: [PATCH] added devlog 0816 and updated link to PCB/STL files for Daisy FM --- package-lock.json | 157 ++---------------- src/lib/devlog-posts.ts | 5 + src/lib/projects.ts | 12 +- .../projectn5/devlog/2025/0816/+page.svelte | 68 ++++++++ .../projectn5/devlog/previews/2025/0816.webp | Bin 0 -> 16014 bytes 5 files changed, 101 insertions(+), 141 deletions(-) create mode 100644 src/routes/projects/projectn5/devlog/2025/0816/+page.svelte create mode 100644 static/projects/projectn5/devlog/previews/2025/0816.webp diff --git a/package-lock.json b/package-lock.json index 41e7cd0..a227340 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" @@ -46,7 +45,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -63,7 +61,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -80,7 +77,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -97,7 +93,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -114,7 +109,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -131,7 +125,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -148,7 +141,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -165,7 +157,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -182,7 +173,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -199,7 +189,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -216,7 +205,6 @@ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -233,7 +221,6 @@ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -250,7 +237,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -267,7 +253,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -284,7 +269,6 @@ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -301,7 +285,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -318,7 +301,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -335,7 +317,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -352,7 +333,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -369,7 +349,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -386,7 +365,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openharmony" @@ -403,7 +381,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" @@ -420,7 +397,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -437,7 +413,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -454,7 +429,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -468,7 +442,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" @@ -479,7 +452,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -490,7 +462,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -499,15 +470,13 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.30", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -517,15 +486,13 @@ "version": "1.0.0-next.29", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@rollup/plugin-commonjs": { "version": "28.0.6", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.6.tgz", "integrity": "sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -552,7 +519,6 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0" }, @@ -573,7 +539,6 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -598,7 +563,6 @@ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -624,7 +588,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -638,7 +601,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -652,7 +614,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -666,7 +627,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -680,7 +640,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -694,7 +653,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -708,7 +666,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -722,7 +679,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -736,7 +692,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -750,7 +705,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -764,7 +718,6 @@ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -778,7 +731,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -792,7 +744,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -806,7 +757,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -820,7 +770,6 @@ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -834,7 +783,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -848,7 +796,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -862,7 +809,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -876,7 +822,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -890,7 +835,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -900,15 +844,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@sveltejs/acorn-typescript": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz", "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^8.9.0" } @@ -918,7 +860,6 @@ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.3.0.tgz", "integrity": "sha512-AacQ+m7GN2gcETb+PVknRzl/pSp+HSGaqSA2HVpUOqGYdW5I3r3dX/NAJ6j+3fY3dmeb9L0UgGwnl+aliNd4QQ==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-json": "^6.1.0", @@ -934,7 +875,6 @@ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.9.tgz", "integrity": "sha512-aytHXcMi7lb9ljsWUzXYQ0p5X1z9oWud2olu/EpmH7aCu4m84h7QLvb5Wp+CFirKcwoNnYvYWhyP/L8Vh1ztdw==", "dev": true, - "license": "MIT", "peerDependencies": { "@sveltejs/kit": "^2.0.0" } @@ -944,7 +884,6 @@ "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.31.0.tgz", "integrity": "sha512-XVuXtztIEDyfC8QcPSf6KO1WPdtqJ8P00t6j8db6KJRmY5mYmpC8G/waFw2FN99NcqZ+odPF3j8Qy6WBs4WLCQ==", "dev": true, - "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", @@ -983,7 +922,6 @@ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", "dev": true, - "license": "MIT", "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.1", @@ -1005,7 +943,6 @@ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.3.7" }, @@ -1022,29 +959,25 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1057,7 +990,6 @@ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -1067,7 +999,6 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -1077,7 +1008,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, - "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, @@ -1093,7 +1023,6 @@ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -1102,15 +1031,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -1120,7 +1047,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -1138,7 +1064,6 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1147,8 +1072,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/esbuild": { "version": "0.25.9", @@ -1156,7 +1080,6 @@ "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1196,15 +1119,13 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/esrap": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } @@ -1213,15 +1134,13 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -1240,7 +1159,6 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -1254,7 +1172,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1264,7 +1181,6 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1277,7 +1193,6 @@ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -1292,15 +1207,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -1310,7 +1223,6 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -1319,15 +1231,13 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -1335,15 +1245,13 @@ "node_modules/module-alias": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz", - "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==", - "license": "MIT" + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -1353,7 +1261,6 @@ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -1362,8 +1269,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/nanoid": { "version": "3.3.11", @@ -1376,7 +1282,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1388,22 +1293,19 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -1430,7 +1332,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -1445,7 +1346,6 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.18.0" }, @@ -1459,7 +1359,6 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -1480,7 +1379,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.8" }, @@ -1520,7 +1418,6 @@ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, - "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -1532,15 +1429,13 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/sirv": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", "dev": true, - "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -1555,7 +1450,6 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -1565,7 +1459,6 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1578,7 +1471,6 @@ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.38.1.tgz", "integrity": "sha512-fO6CLDfJYWHgfo6lQwkQU2vhCiHc2MBl6s3vEhK+sSZru17YL4R5s1v14ndRpqKAIkq8nCz6MTk1yZbESZWeyQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -1604,7 +1496,6 @@ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.1.tgz", "integrity": "sha512-lkh8gff5gpHLjxIV+IaApMxQhTGnir2pNUAqcNgeKkvK5bT/30Ey/nzBxNLDlkztCH4dP7PixkMt9SWEKFPBWg==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", @@ -1628,7 +1519,6 @@ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.6" } @@ -1638,7 +1528,6 @@ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, - "license": "MIT", "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" @@ -1655,7 +1544,6 @@ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -1665,7 +1553,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -1679,7 +1566,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -1754,12 +1640,6 @@ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", "dev": true, - "license": "MIT", - "workspaces": [ - "tests/deps/*", - "tests/projects/*", - "tests/projects/workspace/packages/*" - ], "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, @@ -1773,8 +1653,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", - "dev": true, - "license": "MIT" + "dev": true } } } diff --git a/src/lib/devlog-posts.ts b/src/lib/devlog-posts.ts index 1ccdf37..edcef55 100644 --- a/src/lib/devlog-posts.ts +++ b/src/lib/devlog-posts.ts @@ -5,6 +5,11 @@ export interface DevlogPost { }; export const posts: DevlogPost[] = [ + { + title: "Freeing the Past", + subtitle: "2025-08-16", + date: "2025/0816", + }, { title: "Remeshing and Recolouring", subtitle: "2025-07-13", diff --git a/src/lib/projects.ts b/src/lib/projects.ts index 0e1749f..70e2bb9 100644 --- a/src/lib/projects.ts +++ b/src/lib/projects.ts @@ -32,6 +32,14 @@ export const projects: Project[] = [ text: "View the development log", link: "/projects/projectn5/devlog", }, + { + text: "Play an old build (developed until 2025-05-16)", + link: "https://apps.denizk0461.dev/projectn5", + }, + { + text: "Download the old Windows builds", + link: "https://files.denizk0461.dev/projectn5", + }, ], }, { @@ -67,8 +75,8 @@ export const projects: Project[] = [ link: "/projects/daisyfm", }, { - text: "View the CAD and STL files (coming soon)", - link: "", + text: "Get the PCB and STL files", + link: "https://files.denizk0461.dev/daisyfm/", }, { text: "View the repository", diff --git a/src/routes/projects/projectn5/devlog/2025/0816/+page.svelte b/src/routes/projects/projectn5/devlog/2025/0816/+page.svelte new file mode 100644 index 0000000..c9ebb35 --- /dev/null +++ b/src/routes/projects/projectn5/devlog/2025/0816/+page.svelte @@ -0,0 +1,68 @@ + + + + Freeing the Past | denizk0461 + + + + + + + + +
+ +

This one's more of a heartbeat update rather than a progress display.

+ +

Update on the Progress Pause

+ +

What's become apparent through the infrequency of devlog updates is that I've slowed development recently. I've had to prepare for an abroad semester that starts in September, and I've also been busy writing a bachelor's thesis on school participation in the city – titled "The School as a Neighbourhood Actor".

+ +

The good news is that I'm done with all of this! The bachelor's thesis in particular robbed me of quite a lot of time, though I managed to power through in the week before submission. I finally submitted it on Monday and only have a colloquium left to pass, though since I only need to prepare a short presentation for this, it won't take nearly as much time away from my creative projects.

+ +

Play Project N5 (old)

+ +

I decided to upload some playable builds of Project N5! Now that the website is running on my own server instead of being hosted by GitHub or Codeberg, I have a lot more freedom here.

+ +

The game, in its state from 2025-05-16 (before the reboot), is available to play in-browser right here! It's not a terribly great experience, though. Loading times are significantly longer and shader compilation regularly freezes the game for longer than in a locally-saved copy. Some shaders are also not functioning as intended, though this only has a minor visual impact. The game was never optimised to work on the web, after all.

+ +

I've also uploaded old builds of the game here. You'll find the following builds, one for each protagonist:

+ + + +

The 2025-08-16 build has not seen work put into it after 2025-05-16, bar the build notice on the pause screen.

+ +

What's Next

+ +

More will follow soon!

+ +

Now that my bachelor's thesis is a thing of the past, I have much more free time to work on this game, and I want to use it. Starting Monday, I've told myself, I'll work on the game every day! I'm hoping this will not only yield more progress, but also that I'll be able to establish a routine, which will remove the requirement of random motivation to get things done.

+ +

Laura's 3D model is progressing well, for example, and I cannot wait to texture and animate her!

+ +
+
\ No newline at end of file diff --git a/static/projects/projectn5/devlog/previews/2025/0816.webp b/static/projects/projectn5/devlog/previews/2025/0816.webp new file mode 100644 index 0000000000000000000000000000000000000000..b3083496b1865c233f36e89827fea88a462a1031 GIT binary patch literal 16014 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 BYo`DJ literal 0 HcmV?d00001