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,36 @@
import { viteID } from "../core/util.js";
import { getAstroMetadata } from "../vite-plugin-astro/index.js";
import { crawlGraph } from "./vite.js";
async function getComponentMetadata(filePath, loader) {
const map = /* @__PURE__ */ new Map();
const rootID = viteID(filePath);
addMetadata(map, loader.getModuleInfo(rootID));
for await (const moduleNode of crawlGraph(loader, rootID, true)) {
const id = moduleNode.id;
if (id) {
addMetadata(map, loader.getModuleInfo(id));
}
}
return map;
}
function addMetadata(map, modInfo) {
if (modInfo) {
const astro = getAstroMetadata(modInfo);
if (astro) {
let metadata = {
containsHead: false,
propagation: "none"
};
if (astro.propagation) {
metadata.propagation = astro.propagation;
}
if (astro.containsHead) {
metadata.containsHead = astro.containsHead;
}
map.set(modInfo.id, metadata);
}
}
}
export {
getComponentMetadata
};