✅ 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:
71
dealplustech-astro/node_modules/@libsql/hrana-client/lib-esm/shared/json_encode.js
generated
vendored
Normal file
71
dealplustech-astro/node_modules/@libsql/hrana-client/lib-esm/shared/json_encode.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
import { Base64 } from "js-base64";
|
||||
import { impossible } from "../util.js";
|
||||
export function Stmt(w, msg) {
|
||||
if (msg.sql !== undefined) {
|
||||
w.string("sql", msg.sql);
|
||||
}
|
||||
if (msg.sqlId !== undefined) {
|
||||
w.number("sql_id", msg.sqlId);
|
||||
}
|
||||
w.arrayObjects("args", msg.args, Value);
|
||||
w.arrayObjects("named_args", msg.namedArgs, NamedArg);
|
||||
w.boolean("want_rows", msg.wantRows);
|
||||
}
|
||||
function NamedArg(w, msg) {
|
||||
w.string("name", msg.name);
|
||||
w.object("value", msg.value, Value);
|
||||
}
|
||||
export function Batch(w, msg) {
|
||||
w.arrayObjects("steps", msg.steps, BatchStep);
|
||||
}
|
||||
function BatchStep(w, msg) {
|
||||
if (msg.condition !== undefined) {
|
||||
w.object("condition", msg.condition, BatchCond);
|
||||
}
|
||||
w.object("stmt", msg.stmt, Stmt);
|
||||
}
|
||||
function BatchCond(w, msg) {
|
||||
w.stringRaw("type", msg.type);
|
||||
if (msg.type === "ok" || msg.type === "error") {
|
||||
w.number("step", msg.step);
|
||||
}
|
||||
else if (msg.type === "not") {
|
||||
w.object("cond", msg.cond, BatchCond);
|
||||
}
|
||||
else if (msg.type === "and" || msg.type === "or") {
|
||||
w.arrayObjects("conds", msg.conds, BatchCond);
|
||||
}
|
||||
else if (msg.type === "is_autocommit") {
|
||||
// do nothing
|
||||
}
|
||||
else {
|
||||
throw impossible(msg, "Impossible type of BatchCond");
|
||||
}
|
||||
}
|
||||
function Value(w, msg) {
|
||||
if (msg === null) {
|
||||
w.stringRaw("type", "null");
|
||||
}
|
||||
else if (typeof msg === "bigint") {
|
||||
w.stringRaw("type", "integer");
|
||||
w.stringRaw("value", "" + msg);
|
||||
}
|
||||
else if (typeof msg === "number") {
|
||||
w.stringRaw("type", "float");
|
||||
w.number("value", msg);
|
||||
}
|
||||
else if (typeof msg === "string") {
|
||||
w.stringRaw("type", "text");
|
||||
w.string("value", msg);
|
||||
}
|
||||
else if (msg instanceof Uint8Array) {
|
||||
w.stringRaw("type", "blob");
|
||||
w.stringRaw("base64", Base64.fromUint8Array(msg));
|
||||
}
|
||||
else if (msg === undefined) {
|
||||
// do nothing
|
||||
}
|
||||
else {
|
||||
throw impossible(msg, "Impossible type of Value");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user