From 987ca95974d124371c897c5751c9049491c3aa32 Mon Sep 17 00:00:00 2001 From: Albert Date: Mon, 19 Aug 2024 18:45:18 +0930 Subject: [PATCH] New Lumina website --- .github/workflows/main.yml | 2 +- README.md | 2 +- bun.lockb | Bin 203339 -> 203523 bytes eslint.config.js | 5 +- package.json | 28 +- database_schema.surql => schema.surql | 0 src/app.d.ts | 6 +- src/hooks.server.ts | 8 +- src/lib/blocks/Special/Special.svelte | 4 +- src/lib/controls/Button.svelte | 10 +- src/lib/controls/IconButton.svelte | 7 +- src/lib/display/Icon.svelte | 16 +- src/lib/pojo_surreal.ts | 94 +++++ src/lib/queries.ts | 58 +++ src/lib/queries/surreal_queries.ts | 362 ------------------ src/lib/stores/database.ts | 12 +- src/lib/stores/surrealdb_admin.ts | 4 +- src/lib/utils/jwt.ts | 2 +- src/lib/utils/login.svelte.ts | 2 +- src/routes/(site)/(home)/+page.svelte | 1 + src/routes/(site)/(home)/+page.ts | 4 +- src/routes/(site)/AccountPopout.svelte | 2 +- src/routes/(site)/AppBar.svelte | 2 +- src/routes/(site)/Header.svelte | 2 +- src/routes/(site)/NavLink.svelte | 2 - src/routes/(site)/Sidebar.svelte | 28 +- src/routes/(site)/[...page]/+page.svelte | 15 +- src/routes/(site)/citizenship/+page.svelte | 2 + .../(site)/citizenship/FormComponent.svelte | 5 +- .../(site)/citizenship/StatusCard.svelte | 19 +- .../(site)/citizenship/StatusComponent.svelte | 7 +- .../(site)/town-hall/(town-hall)/+page.svelte | 2 - .../(site)/town-hall/(town-hall)/+page.ts | 4 +- .../(town-hall)/AddDiscussion.svelte | 2 +- .../town-hall/s/[statement]/+page.svelte | 4 +- .../(site)/town-hall/s/[statement]/+page.ts | 10 +- .../s/[statement]/AddStatement.svelte | 4 +- .../s/[statement]/RatingModal.svelte | 8 +- .../town-hall/s/[statement]/Statement.svelte | 6 +- src/routes/+layout.ts | 2 +- src/routes/AlertBar.svelte | 2 +- src/routes/api/forgot-password/+server.ts | 12 +- src/routes/api/login/+server.ts | 18 +- src/routes/api/reset-password/+server.ts | 14 +- src/routes/auth/Authorize.svelte | 2 +- src/routes/auth/CreateAccount.svelte | 11 +- src/routes/auth/Select.svelte | 2 +- src/routes/normalise.css | 1 - .../lib/queries => surql}/add_statement.surql | 0 surql/create_application.surql | 1 + {src/lib/queries => surql}/create_user.surql | 0 {src/lib/queries => surql}/get_user.surql | 0 {src/lib/queries => surql}/globals.surql | 0 .../queries => surql}/load_town_hall.surql | 0 .../password_reset_get_user.surql | 0 .../queries => surql}/reset_password.surql | 0 .../queries => surql}/statement_page.surql | 0 .../update_statement_vote.surql | 0 {src/lib/queries => surql}/user_count.surql | 0 {src/lib/queries => surql}/user_login.surql | 0 .../vote_for_statement.surql | 0 61 files changed, 314 insertions(+), 502 deletions(-) rename database_schema.surql => schema.surql (100%) create mode 100644 src/lib/pojo_surreal.ts create mode 100644 src/lib/queries.ts delete mode 100644 src/lib/queries/surreal_queries.ts rename {src/lib/queries => surql}/add_statement.surql (100%) create mode 100644 surql/create_application.surql rename {src/lib/queries => surql}/create_user.surql (100%) rename {src/lib/queries => surql}/get_user.surql (100%) rename {src/lib/queries => surql}/globals.surql (100%) rename {src/lib/queries => surql}/load_town_hall.surql (100%) rename {src/lib/queries => surql}/password_reset_get_user.surql (100%) rename {src/lib/queries => surql}/reset_password.surql (100%) rename {src/lib/queries => surql}/statement_page.surql (100%) rename {src/lib/queries => surql}/update_statement_vote.surql (100%) rename {src/lib/queries => surql}/user_count.surql (100%) rename {src/lib/queries => surql}/user_login.surql (100%) rename {src/lib/queries => surql}/vote_for_statement.surql (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 69642f7..224de63 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -64,7 +64,7 @@ jobs: -p $SURREAL_PASS \ --ns $PUBLIC_SURREAL_NAMESPACE \ --db lumina \ - database_schema.surql + schema.surql # Define the token using echo to pipe the SQL command echo "DEFINE TOKEN lumina_token ON SCOPE users TYPE HS256 VALUE '$AUTH_SECRET'" | \ diff --git a/README.md b/README.md index 406455b..1646851 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ DEFINE SCOPE users; DEFINE TOKEN lumina_token on SCOPE users type HS256 VALUE "RANDOM_SECRET_KEY_HEX"; ``` -1. Run the following command to import the database schema from `database_schema.surql` from this project directory +1. Run the following command to import the database schema from `schema.surql` from this project directory ```sh bun sync diff --git a/bun.lockb b/bun.lockb index d7eb59cddb897d95a3fd25232719f559a82ee926..653bb7bdcaaf5cebd83cafd62d936bbba4f86e7f 100755 GIT binary patch delta 34875 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 Ae*gdg delta 35050 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 diff --git a/eslint.config.js b/eslint.config.js index 07e623e..26448ec 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -3,7 +3,7 @@ import stylisticTs from "@stylistic/eslint-plugin-ts" import ts from "typescript-eslint" import svelte from "eslint-plugin-svelte" import globals from "globals" -import sveltets from "svelte-ts" +// import sveltets from "svelte-ts" /** @type {import('eslint').Linter.Config[]} */ @@ -27,7 +27,6 @@ export default [ projectService: { allowDefaultProject: ["*.svelte"] }, - // tsconfigRootDir: import.meta.dirname, parser: ts.parser, ecmaVersion: "latest", extraFileExtensions: [".svelte"], @@ -56,7 +55,7 @@ export default [ { plugins: { "@stylistic/ts": stylisticTs, - "@svelte-ts": sveltets, + // "@svelte-ts": sveltets, }, }, { diff --git a/package.json b/package.json index 9d44e97..632ffc0 100644 --- a/package.json +++ b/package.json @@ -8,25 +8,25 @@ "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "sync:queries": "surreal-codegen --dir './src/lib/queries/' --schema './database_schema.surql' --output './src/lib/queries/surreal_queries.ts'", - "sync": "surreal import database_schema.surql --endpoint http://127.0.0.1:8000 -u root -p root --ns development --db lumina", + "sync:queries": "surreal-codegen --dir './surql/' --schema './schema.surql' --output './src/lib/queries.ts' --header 'import { type RecordId, Surreal } from \"$lib/pojo_surreal\"'", + "sync": "surreal import schema.surql --endpoint http://127.0.0.1:8000 -u root -p root --ns development --db lumina", "lint": "eslint .", "lint:fix": "eslint . --fix" }, "devDependencies": { - "@sveltejs/adapter-auto": "^3.2.2", - "@sveltejs/kit": "^2.5.20", + "@sveltejs/adapter-auto": "^3.2.4", + "@sveltejs/kit": "^2.5.22", "@sveltejs/vite-plugin-svelte": "^3.1.1", "@types/eslint": "^9.6.0", - "eslint": "^9.8.0", + "eslint": "^9.9.0", "eslint-plugin-svelte": "^2.43.0", "globals": "^15.9.0", - "svelte": "5.0.0-next.220", + "svelte": "5.0.0-next.225", "svelte-check": "^3.8.5", "tslib": "^2.6.3", "typescript": "^5.5.4", - "typescript-eslint": "^8.0.1", - "vite": "^5.4.0" + "typescript-eslint": "^8.1.0", + "vite": "^5.4.1" }, "type": "module", "dependencies": { @@ -35,11 +35,11 @@ "@builder.io/sdk-svelte": "^2.0.3", "@resvg/resvg-js": "^2.6.2", "@sendgrid/mail": "^8.1.3", - "@stylistic/eslint-plugin-ts": "^2.6.2", - "@sveltejs/adapter-vercel": "^5.4.1", + "@stylistic/eslint-plugin-ts": "^2.6.4", + "@sveltejs/adapter-vercel": "^5.4.3", "@types/mdast": "^4.0.4", "@types/mixpanel-browser": "^2.49.1", - "@types/node": "^22.1.0", + "@types/node": "^22.4.1", "@types/three": "^0.167.1", "dedent": "^1.5.3", "highlight.js": "^11.10.0", @@ -53,15 +53,15 @@ "micromark-extension-gfm-strikethrough": "^2.1.0", "micromark-extension-gfm-table": "^2.1.0", "mixpanel-browser": "^2.55.0", - "runed": "^0.15.0", + "runed": "^0.15.1", "satori": "^0.10.14", "satori-html": "^0.3.2", "schema-dts": "^1.1.2", - "surrealdb.js": "^1.0.0-beta.9", + "surrealdb.js": "1.0.0-beta.18", "svelte-material-icons": "^3.0.5", "three": "^0.167.1", "three-globe": "^2.31.1", - "vite-plugin-arraybuffer": "0.0.2", + "vite-plugin-arraybuffer": "0.0.8", "zod": "^3.23.8" } } diff --git a/database_schema.surql b/schema.surql similarity index 100% rename from database_schema.surql rename to schema.surql diff --git a/src/app.d.ts b/src/app.d.ts index bbc4c21..eff709a 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,6 +1,6 @@ -import type { GetUserResult } from "$lib/queries/surreal_queries" +import type { GetUserResult, TypedSurreal } from "$lib/queries" import type { AlertsStore } from "$lib/stores/alerts" -import type { Surreal } from "surrealdb.js" +import type { TypedSurreal } from "$lib/queries" // import type { Session } from "@auth/core/types" // See https://kit.svelte.dev/docs/types#app @@ -16,7 +16,7 @@ declare global { interface PageData { // Safe client-authenticated SurrealDB - db: Surreal; + db: TypedSurreal; alerts: AlertsStore; user: GetUserResult[0][0] | null } diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 7299e39..790bc49 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -3,11 +3,11 @@ import { sequence } from "@sveltejs/kit/hooks" import { AsyncLocalStorage } from "node:async_hooks" import { isolated_global } from "./lib/stores/database" import { create_resolver } from "$lib/utils/resolver" -import type Surreal from "surrealdb.js" +import type { TypedSurreal } from "$lib/queries" const local_storage = new AsyncLocalStorage<{ - db: Promise - resolve_db: (db: Surreal | PromiseLike) => void + db: Promise + resolve_db: (db: TypedSurreal | PromiseLike) => void }>() isolated_global.getStore = () => local_storage.getStore()! @@ -38,7 +38,7 @@ export async function handleError({ error }) { async function create_async_local_storage({ event, resolve }: Parameters[0]) { - const resolver = create_resolver() + const resolver = create_resolver() // let safe_surreal_db_client(event.locals.token) return local_storage.run({ diff --git a/src/lib/blocks/Special/Special.svelte b/src/lib/blocks/Special/Special.svelte index 6744ee1..c624936 100644 --- a/src/lib/blocks/Special/Special.svelte +++ b/src/lib/blocks/Special/Special.svelte @@ -11,5 +11,7 @@ let { const components: Record = { beacon: Beacon, } + +let Special = $derived(components[type]) - \ No newline at end of file + \ No newline at end of file diff --git a/src/lib/controls/Button.svelte b/src/lib/controls/Button.svelte index 209e722..e4b9dc1 100644 --- a/src/lib/controls/Button.svelte +++ b/src/lib/controls/Button.svelte @@ -9,6 +9,7 @@ let { hug = true, disabled, label, + target, onclick, }: { href?: string @@ -16,6 +17,7 @@ let { right_icon?: IconComponent | string style?: "translucent" | "transparent" | "branded" hug?: boolean + target?: "_blank" disabled?: boolean label?: string onclick?: (e: Event) => void @@ -34,6 +36,9 @@ function handle_keyup(e: KeyboardEvent) { } } +let LeftIcon = $derived(typeof left_icon === "string" ? null : left_icon) +let RightIcon = $derived(typeof right_icon === "string" ? null : right_icon) + {#if left_icon} {#if typeof left_icon !== "string"} - + {:else if typeof left_icon === "string"} {@html left_icon} @@ -65,7 +71,7 @@ function handle_keyup(e: KeyboardEvent) { {#if right_icon} {#if typeof right_icon !== "string"} - + {:else if typeof right_icon === "string"} {@html right_icon} diff --git a/src/lib/controls/IconButton.svelte b/src/lib/controls/IconButton.svelte index 8da60c4..daec601 100644 --- a/src/lib/controls/IconButton.svelte +++ b/src/lib/controls/IconButton.svelte @@ -1,4 +1,5 @@ - +