Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret

GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_CLIENT_SECRET=your-google-client-secret

NEXT_PUBLIC_DEV_MODE=true
22 changes: 20 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
pull_request:
branches:
- main
- development
workflow_dispatch: # Allows manual triggering

jobs:
Expand All @@ -24,9 +25,26 @@ jobs:
- run: pnpm install
- run: pnpm lint

typecheck:
name: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
- run: pnpm install
# Copy the example custom-seeds file to satisfy TypeScript during CI
- name: Create custom-seeds.ts from example for typecheck
run: cp src/lib/db/seeds/custom-seeds.example.ts src/lib/db/seeds/custom-seeds.ts
- run: pnpm typecheck

build:
name: Build
needs: lint
needs: [lint, typecheck]
if: github.ref == 'refs/heads/main' || github.event.pull_request.base.ref == 'main'
runs-on: ubuntu-latest
steps:
Expand All @@ -38,4 +56,4 @@ jobs:
with:
node-version: 20
- run: pnpm install
- run: pnpm build
- run: pnpm build
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,6 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts

# drizzle
/drizzle
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"files.associations": {
"*.css": "tailwindcss",
"globals.css": "tailwindcss",
"markdown.css": "tailwindcss",
"*.scss": "tailwindcss"
}
}
278 changes: 278 additions & 0 deletions docs/permissions.md

Large diffs are not rendered by default.

99 changes: 66 additions & 33 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,81 +2,114 @@
"name": "next-wiki",
"version": "0.1.0",
"private": true,
"packageManager": "pnpm@9.14.2",
"packageManager": "pnpm@10.8.1",
"type": "module",
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc --noEmit",
"db:generate": "drizzle-kit generate",
"db:push": "drizzle-kit push",
"db:migrate": "tsx src/lib/db/migrate.ts",
"db:setup": "node scripts/setup-db.js",
"db:setup": "tsx scripts/setup-db.ts",
"db:seed": "env-cmd -f .env NODE_ENV=development tsx src/lib/db/seed.ts",
"db:studio": "drizzle-kit studio",
"rebuild-rendered-html": "env-cmd -f .env tsx scripts/rebuildRenderedHtml.ts",
"watch-css": "tailwindcss -i ./src/styles/globals.css -o ./public/output.css --watch"
},
"dependencies": {
"@auth/drizzle-adapter": "^1.8.0",
"@codemirror/lang-markdown": "^6.3.2",
"@codemirror/language": "^6.11.0",
"@codemirror/language-data": "^6.5.1",
"@codemirror/state": "^6.5.2",
"@neondatabase/serverless": "^0.10.4",
"@radix-ui/react-popover": "^1.1.6",
"@radix-ui/react-tabs": "^1.1.3",
"@tailwindcss/cli": "^4.0.15",
"@heroicons/react": "^2.2.0",
"@lezer/highlight": "^1.2.1",
"@neondatabase/serverless": "^1.0.0",
"@radix-ui/react-dialog": "^1.1.10",
"@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-label": "^2.1.3",
"@radix-ui/react-popover": "^1.1.7",
"@radix-ui/react-scroll-area": "^1.2.4",
"@radix-ui/react-select": "^2.1.7",
"@radix-ui/react-tabs": "^1.1.4",
"@radix-ui/react-tooltip": "^1.2.0",
"@t3-oss/env-nextjs": "^0.12.0",
"@tailwindcss/cli": "^4.1.4",
"@tailwindcss/typography": "^0.5.16",
"@tanstack/react-query": "^5.69.0",
"@trpc/client": "^11.0.0",
"@trpc/next": "^11.0.0",
"@trpc/react-query": "^11.0.0",
"@trpc/server": "^11.0.0",
"@types/pg": "^8.11.11",
"@tanstack/react-query": "^5.74.4",
"@tanstack/react-query-devtools": "^5.74.4",
"@trpc/client": "^11.1.0",
"@trpc/next": "^11.1.0",
"@trpc/react-query": "^11.1.0",
"@trpc/server": "^11.1.0",
"@trpc/tanstack-react-query": "^11.1.0",
"@types/pg": "^8.11.13",
"@types/react-syntax-highlighter": "^15.5.13",
"@uiw/codemirror-theme-tokyo-night-storm": "^4.23.10",
"@uiw/codemirror-theme-xcode": "^4.23.10",
"@uiw/codemirror-themes": "^4.23.10",
"@uiw/react-codemirror": "^4.23.10",
"bcrypt": "^5.1.1",
"cmdk": "^1.1.1",
"date-fns": "^4.1.0",
"dotenv": "^16.4.7",
"drizzle-orm": "^0.41.0",
"dotenv": "^16.5.0",
"drizzle-orm": "^0.42.0",
"highlight.js": "^11.11.1",
"next": "15.2.3",
"next": "15.3.1",
"next-auth": "^4.24.11",
"pg": "^8.14.1",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^15.6.1",
"rehype-highlight": "^7.0.2",
"rehype-stringify": "^10.0.1",
"remark": "^15.0.1",
"remark-breaks": "^4.0.0",
"remark-directive": "^4.0.0",
"remark-directive-rehype": "^0.4.2",
"remark-emoji": "^5.0.1",
"remark-gfm": "^4.0.1",
"sonner": "^2.0.1",
"trpc": "^0.10.4",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"server-only": "^0.0.1",
"sonner": "^2.0.3",
"trpc": "^0.11.3",
"unified": "^11.0.5",
"unist": "^0.0.1",
"unist-util-visit": "^5.0.0",
"zod": "^3.24.2"
"zod": "^3.24.3"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
"@radix-ui/react-slot": "^1.1.2",
"@eslint/eslintrc": "^3.3.1",
"@next/eslint-plugin-next": "^15.3.1",
"@radix-ui/react-slot": "^1.2.0",
"@shadcn/ui": "^0.0.4",
"@tailwindcss/postcss": "^4",
"@tailwindcss/postcss": "^4.1.4",
"@types/bcrypt": "^5.0.2",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@types/hast": "^3.0.4",
"@types/node": "^22.14.1",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2",
"@types/unist": "^3.0.3",
"autoprefixer": "^10.4.21",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"drizzle-kit": "^0.30.5",
"drizzle-kit": "^0.31.0",
"env-cmd": "^10.1.0",
"eslint": "^9",
"eslint-config-next": "15.2.3",
"lucide-react": "^0.483.0",
"eslint": "^9.24.0",
"eslint-config-next": "15.3.1",
"eslint-plugin-react-hooks": "^5.2.0",
"gray-matter": "^4.0.3",
"lucide-react": "^0.488.0",
"postcss": "^8.5.3",
"tailwind-merge": "^3.0.2",
"tailwindcss": "^4.0.15",
"tailwind-merge": "^3.2.0",
"tailwindcss": "^4.1.4",
"trpc-ui": "^1.0.15",
"tsx": "^4.19.3",
"typescript": "^5"
"typescript": "^5.8.3"
}
}
Loading
Loading