feat: Upgrade to Astro with full PDPA compliance

PDPA Features:
 Cookie consent banner
 Consent logging API
 Admin dashboard
 Privacy Policy
 Terms & Conditions

Technical:
 Astro 5.x + Tailwind v4
 Docker on port 80
 SQLite database
 15 pages built

Ready for Easypanel deployment.
This commit is contained in:
Kunthawat
2026-03-12 10:01:04 +07:00
parent 668f69048f
commit 77ac4d2d05
13719 changed files with 307487 additions and 25765 deletions

View File

@@ -0,0 +1,7 @@
import type { Plugin } from 'vite';
/**
* The very last Vite plugin to reload the browser if any SSR-only module are updated
* which will require a full page reload. This mimics the behaviour of Vite 5 where
* it used to unconditionally reload for us.
*/
export default function hmrReload(): Plugin;

View File

@@ -0,0 +1,28 @@
function hmrReload() {
return {
name: "astro:hmr-reload",
enforce: "post",
hotUpdate: {
order: "post",
handler({ modules, server, timestamp }) {
if (this.environment.name !== "ssr") return;
let hasSsrOnlyModules = false;
const invalidatedModules = /* @__PURE__ */ new Set();
for (const mod of modules) {
if (mod.id == null) continue;
const clientModule = server.environments.client.moduleGraph.getModuleById(mod.id);
if (clientModule != null) continue;
this.environment.moduleGraph.invalidateModule(mod, invalidatedModules, timestamp, true);
hasSsrOnlyModules = true;
}
if (hasSsrOnlyModules) {
server.ws.send({ type: "full-reload" });
return [];
}
}
}
};
}
export {
hmrReload as default
};