v0.2.0 1301099

package.json RawHistoryFolder

1{
2	"name": "pdraim",
3	"private": true,
4	"version": "0.2.0",
5	"type": "module",
6	"engines": {
7		"node": ">=22.13.0"
8	},
9	"scripts": {
10		"dev": "vite dev",
11		"build": "vite build",
12		"preview": "vite preview",
13		"prepare": "svelte-kit sync || echo ''",
14		"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
15		"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
16		"format": "prettier --write .",
17		"lint": "prettier --check . && eslint .",
18		"test:unit": "vitest",
19		"test": "npm run test:unit -- --run",
20		"db:generate": "npx drizzle-kit generate",
21		"db:push": "npx drizzle-kit push",
22		"db:push-prod": "bash -c 'source .env && TURSO_DATABASE_URL=\"$TURSO_DATABASE_URL_PROD\" TURSO_AUTH_TOKEN=\"$TURSO_AUTH_TOKEN_PROD\" npx drizzle-kit push'",
23		"db:flush": "tsx utils/db-flush.ts"
24	},
25	"devDependencies": {
26		"@eslint/compat": "^1.3.1",
27		"@eslint/js": "^9.30.1",
28		"@sveltejs/adapter-cloudflare": "^5.1.0",
29		"@sveltejs/kit": "^2.22.2",
30		"@sveltejs/vite-plugin-svelte": "^5.1.0",
31		"@tailwindcss/container-queries": "^0.1.1",
32		"@tailwindcss/forms": "^0.5.10",
33		"@tailwindcss/typography": "^0.5.16",
34		"@types/node": "^22.16.0",
35		"autoprefixer": "^10.4.21",
36		"drizzle-kit": "^0.30.6",
37		"eslint": "^9.30.1",
38		"eslint-config-prettier": "^10.1.5",
39		"eslint-plugin-svelte": "^2.46.1",
40		"globals": "^15.15.0",
41		"jsdom": "^26.1.0",
42		"prettier": "^3.6.2",
43		"prettier-plugin-svelte": "^3.4.0",
44		"prettier-plugin-tailwindcss": "^0.6.13",
45		"svelte": "^5.35.2",
46		"svelte-check": "^4.2.2",
47		"tailwindcss": "^3.4.17",
48		"terser": "^5.43.1",
49		"tsx": "^4.20.3",
50		"typescript": "^5.8.3",
51		"typescript-eslint": "^8.35.1",
52		"vite": "^6.3.5",
53		"vitest": "^3.2.4"
54	},
55	"dependencies": {
56		"@libsql/client": "^0.14.0",
57		"dotenv": "^16.6.1",
58		"drizzle-orm": "^0.39.3",
59		"pino": "^9.7.0",
60		"pino-pretty": "^13.0.0",
61		"rehype": "^13.0.2",
62		"rehype-sanitize": "^6.0.0",
63		"rehype-stringify": "^10.0.1",
64		"remark-parse": "^11.0.0",
65		"remark-rehype": "^11.1.2",
66		"unified": "^11.0.5",
67		"uuid": "^11.1.0",
68		"xp.css": "^0.2.6",
69		"zod": "^3.25.71"
70	}
71}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 3

Tags 8

↑↓ moveenter openesc close