Complete Astro migration - PDPA compliant website

- Migrated all pages from Next.js to Astro
- Added PDPA-compliant Privacy Policy (Thai)
- Added PDPA-compliant Terms & Conditions (Thai)
- Added Cookie Policy with disclosure (Thai)
- Implemented cookie consent banner (client-side)
- Integrated Umami Analytics placeholder
- Blog system with 3 posts
- Optimized Docker configuration for production
- Static site build (184KB, 11 pages)
- Ready for Easypanel deployment

Backup: /Users/kunthawatgreethong/Gitea/dealplustech-backup-nextjs-20260309.tar.gz
This commit is contained in:
Kunthawat Greethong
2026-03-09 18:28:01 +07:00
parent 668f69048f
commit 6402d885f9
6183 changed files with 463899 additions and 1913 deletions

View File

@@ -0,0 +1,49 @@
import { sql } from "../sql.js";
function toSql(value) {
return JSON.stringify(value);
}
function l2Distance(column, value) {
if (Array.isArray(value)) {
return sql`${column} <-> ${toSql(value)}`;
}
return sql`${column} <-> ${value}`;
}
function l1Distance(column, value) {
if (Array.isArray(value)) {
return sql`${column} <+> ${toSql(value)}`;
}
return sql`${column} <+> ${value}`;
}
function innerProduct(column, value) {
if (Array.isArray(value)) {
return sql`${column} <#> ${toSql(value)}`;
}
return sql`${column} <#> ${value}`;
}
function cosineDistance(column, value) {
if (Array.isArray(value)) {
return sql`${column} <=> ${toSql(value)}`;
}
return sql`${column} <=> ${value}`;
}
function hammingDistance(column, value) {
if (Array.isArray(value)) {
return sql`${column} <~> ${toSql(value)}`;
}
return sql`${column} <~> ${value}`;
}
function jaccardDistance(column, value) {
if (Array.isArray(value)) {
return sql`${column} <%> ${toSql(value)}`;
}
return sql`${column} <%> ${value}`;
}
export {
cosineDistance,
hammingDistance,
innerProduct,
jaccardDistance,
l1Distance,
l2Distance
};
//# sourceMappingURL=vector.js.map