feat: Add complete PDPA compliance pages
- Admin dashboard (/admin/consent-logs) with password auth - Consent API (/api/consent) with SQLite + IP hashing - Privacy Policy (Thai) - PDPA Section 36 compliant - Terms & Conditions (Thai) - 9 standard clauses - .env.example template with Umami placeholder All pages preserve current design system.
This commit is contained in:
100
dealplustech-astro/node_modules/@libsql/hrana-client/lib-cjs/encoding/protobuf/encode.js
generated
vendored
Normal file
100
dealplustech-astro/node_modules/@libsql/hrana-client/lib-cjs/encoding/protobuf/encode.js
generated
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.writeProtobufMessage = exports.MessageWriter = void 0;
|
||||
const util_js_1 = require("./util.js");
|
||||
class MessageWriter {
|
||||
#buf;
|
||||
#array;
|
||||
#view;
|
||||
#pos;
|
||||
constructor() {
|
||||
this.#buf = new ArrayBuffer(256);
|
||||
this.#array = new Uint8Array(this.#buf);
|
||||
this.#view = new DataView(this.#buf);
|
||||
this.#pos = 0;
|
||||
}
|
||||
#ensure(extra) {
|
||||
if (this.#pos + extra <= this.#buf.byteLength) {
|
||||
return;
|
||||
}
|
||||
let newCap = this.#buf.byteLength;
|
||||
while (newCap < this.#pos + extra) {
|
||||
newCap *= 2;
|
||||
}
|
||||
const newBuf = new ArrayBuffer(newCap);
|
||||
const newArray = new Uint8Array(newBuf);
|
||||
const newView = new DataView(newBuf);
|
||||
newArray.set(new Uint8Array(this.#buf, 0, this.#pos));
|
||||
this.#buf = newBuf;
|
||||
this.#array = newArray;
|
||||
this.#view = newView;
|
||||
}
|
||||
#varint(value) {
|
||||
this.#ensure(5);
|
||||
value = 0 | value;
|
||||
do {
|
||||
let byte = value & 0x7f;
|
||||
value >>>= 7;
|
||||
byte |= (value ? 0x80 : 0);
|
||||
this.#array[this.#pos++] = byte;
|
||||
} while (value);
|
||||
}
|
||||
#varintBig(value) {
|
||||
this.#ensure(10);
|
||||
value = value & 0xffffffffffffffffn;
|
||||
do {
|
||||
let byte = Number(value & 0x7fn);
|
||||
value >>= 7n;
|
||||
byte |= (value ? 0x80 : 0);
|
||||
this.#array[this.#pos++] = byte;
|
||||
} while (value);
|
||||
}
|
||||
#tag(tag, wireType) {
|
||||
this.#varint((tag << 3) | wireType);
|
||||
}
|
||||
bytes(tag, value) {
|
||||
this.#tag(tag, util_js_1.LENGTH_DELIMITED);
|
||||
this.#varint(value.byteLength);
|
||||
this.#ensure(value.byteLength);
|
||||
this.#array.set(value, this.#pos);
|
||||
this.#pos += value.byteLength;
|
||||
}
|
||||
string(tag, value) {
|
||||
this.bytes(tag, new TextEncoder().encode(value));
|
||||
}
|
||||
message(tag, value, fun) {
|
||||
const writer = new MessageWriter();
|
||||
fun(writer, value);
|
||||
this.bytes(tag, writer.data());
|
||||
}
|
||||
int32(tag, value) {
|
||||
this.#tag(tag, util_js_1.VARINT);
|
||||
this.#varint(value);
|
||||
}
|
||||
uint32(tag, value) {
|
||||
this.int32(tag, value);
|
||||
}
|
||||
bool(tag, value) {
|
||||
this.int32(tag, value ? 1 : 0);
|
||||
}
|
||||
sint64(tag, value) {
|
||||
this.#tag(tag, util_js_1.VARINT);
|
||||
this.#varintBig((value << 1n) ^ (value >> 63n));
|
||||
}
|
||||
double(tag, value) {
|
||||
this.#tag(tag, util_js_1.FIXED_64);
|
||||
this.#ensure(8);
|
||||
this.#view.setFloat64(this.#pos, value, true);
|
||||
this.#pos += 8;
|
||||
}
|
||||
data() {
|
||||
return new Uint8Array(this.#buf, 0, this.#pos);
|
||||
}
|
||||
}
|
||||
exports.MessageWriter = MessageWriter;
|
||||
function writeProtobufMessage(value, fun) {
|
||||
const w = new MessageWriter();
|
||||
fun(w, value);
|
||||
return w.data();
|
||||
}
|
||||
exports.writeProtobufMessage = writeProtobufMessage;
|
||||
Reference in New Issue
Block a user