From 34955a24ecf8ea11c6771646b77da1494235985a Mon Sep 17 00:00:00 2001 From: Ugur Aslan Date: Sun, 5 Jul 2026 22:35:13 +0200 Subject: [PATCH 1/5] fix: better browser cache handling for generated msdf files --- vite/msdfGenerator.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/vite/msdfGenerator.js b/vite/msdfGenerator.js index f730fe02..f0988704 100644 --- a/vite/msdfGenerator.js +++ b/vite/msdfGenerator.js @@ -145,12 +145,20 @@ export default function () { if (fs.existsSync(generatedFontFile)) { const fileContent = fs.readFileSync(generatedFontFile) + const etag = `"${generateHash(generatedFontFile)}"` // Check if headers have already been sent if (!res.headersSent) { res.setHeader('Content-Type', mimeType) - res.setHeader('Cache-Control', 'public, max-age=31536000, immutable') - res.end(fileContent) + res.setHeader('Cache-Control', 'no-cache') + res.setHeader('ETag', etag) + + if (req.headers['if-none-match'] === etag) { + res.statusCode = 304 + res.end() + } else { + res.end(fileContent) + } } else { // this should never happen except some edge cases console.error(`ERROR: Headers already sent for ${req.url}`, res.getHeaders()) From f0fa97419120ce9a90b7b240d8da9117e341ea3c Mon Sep 17 00:00:00 2001 From: Michiel van der Geest Date: Thu, 16 Jul 2026 09:24:18 +0200 Subject: [PATCH 2/5] Bumped renderer to 3.1.3. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1a0daa40..e890c18e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.7.0", "license": "Apache-2.0", "dependencies": { - "@lightningjs/renderer": "^3.0.6", + "@lightningjs/renderer": "^3.1.3", "magic-string": "^0.30.21" }, "bin": { @@ -752,9 +752,9 @@ } }, "node_modules/@lightningjs/renderer": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@lightningjs/renderer/-/renderer-3.0.6.tgz", - "integrity": "sha512-tGF32ewPBfPcutruHqINhJ93X/l5ujwJfYiAgrmCRvE/guvVjrBuE7ppFN/L5aKcGmBPFyXv3amPTFYckxyoWw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@lightningjs/renderer/-/renderer-3.1.3.tgz", + "integrity": "sha512-wvwlCdTDpeSjozZePm/Vc4zIW4h3RJSwYMzBSBB70HHsrHY8bgcbD4JV1dNDfcmJhEcd6YhNcY8fBpZ+YQaQPw==", "license": "Apache-2.0", "engines": { "node": ">= 18.0.0", diff --git a/package.json b/package.json index 3259cb75..189e5371 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "tape": "^5.5.0" }, "dependencies": { - "@lightningjs/renderer": "^3.0.6", + "@lightningjs/renderer": "^3.1.3", "magic-string": "^0.30.21" }, "repository": { From 98b6c694192d669dc1e2d56e08c8613f011b6f52 Mon Sep 17 00:00:00 2001 From: Michiel van der Geest Date: Thu, 16 Jul 2026 09:26:11 +0200 Subject: [PATCH 3/5] Removed test file. --- test-output.txt | Bin 53870 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test-output.txt diff --git a/test-output.txt b/test-output.txt deleted file mode 100644 index 0c713b556ac78bc98383550c11d50613dfc868eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53870 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 IbdQMt2QZ<$6951J From 7f168eaddb39caf7e2be5c46db54158115717194 Mon Sep 17 00:00:00 2001 From: Michiel van der Geest Date: Thu, 16 Jul 2026 09:27:00 +0200 Subject: [PATCH 4/5] Bumped version to 2.8.0 and updated changelog. --- CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47c9d49e..16a78460 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.8.0 + +_16 jul 2026_ + +- Bumped renderer to 3.1.3 + ## 2.7.0 _2 jul 2026_ diff --git a/package-lock.json b/package-lock.json index e890c18e..801cd7f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@lightningjs/blits", - "version": "2.7.0", + "version": "2.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@lightningjs/blits", - "version": "2.7.0", + "version": "2.8.0", "license": "Apache-2.0", "dependencies": { "@lightningjs/renderer": "^3.1.3", diff --git a/package.json b/package.json index 189e5371..ffbc6ad3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lightningjs/blits", - "version": "2.7.0", + "version": "2.8.0", "description": "Blits: The Lightning 3 App Development Framework", "bin": "bin/index.js", "exports": { From 82d64b7e3ebecb7b4d8e7828bd80fc7d993f7650 Mon Sep 17 00:00:00 2001 From: Michiel van der Geest Date: Thu, 16 Jul 2026 09:55:01 +0200 Subject: [PATCH 5/5] Updated changelog. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16a78460..6e1a660c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ _16 jul 2026_ - Bumped renderer to 3.1.3 +- Disabled caching of msdf fonts during dev ## 2.7.0