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:
Kunthawat
2026-03-10 21:28:23 +07:00
parent e98b9f2bff
commit b2e427791b
3282 changed files with 302503 additions and 435 deletions

View File

@@ -0,0 +1,15 @@
/** Result of parsing a libsql URL using {@link parseLibsqlUrl}. */
export interface ParsedLibsqlUrl {
/** A WebSocket URL that can be used with {@link openWs} to open a {@link WsClient}. It is `undefined`
* if the parsed URL specified HTTP explicitly. */
hranaWsUrl: string | undefined;
/** A HTTP URL that can be used with {@link openHttp} to open a {@link HttpClient}. It is `undefined`
* if the parsed URL specified WebSockets explicitly. */
hranaHttpUrl: string | undefined;
/** The optional `authToken` query parameter that should be passed as `jwt` to
* {@link openWs}/{@link openHttp}. */
authToken: string | undefined;
}
/** Parses a URL compatible with the libsql client (`@libsql/client`). This URL may have the "libsql:" scheme
* and may contain query parameters. */
export declare function parseLibsqlUrl(urlStr: string): ParsedLibsqlUrl;