diff --git a/.phase.json b/.phase.json new file mode 100644 index 0000000..ff21d81 --- /dev/null +++ b/.phase.json @@ -0,0 +1,8 @@ +{ + "version": "2", + "phaseApp": "wishlist", + "appId": "a4d85c7a-8df9-462b-9b91-5cb2957cdcd3", + "defaultEnv": "Production", + "envId": "496d0105-f2b4-424d-a1a1-a60602fc2252", + "monorepoSupport": false +} \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..28dc54b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,15 @@ +# Ignore files for Prettier + +build +.svelte-kit +dist +node_modules + +# Ignore generated files +drizzle/meta + +# Ignore lock files +bun.lock +package-lock.json +yarn.lock +pnpm-lock.yaml diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..a605ba9 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,9 @@ +{ + "useTabs": false, + "tabWidth": 2, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/drizzle.config.ts b/drizzle.config.ts index afffa74..e9817a2 100644 --- a/drizzle.config.ts +++ b/drizzle.config.ts @@ -1,7 +1,7 @@ import type { Config } from 'drizzle-kit'; export default { - schema: './src/lib/server/schema.ts', + schema: './src/lib/db/schema.ts', out: './drizzle', dialect: 'postgresql', dbCredentials: { diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..4c98b8e --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,30 @@ +import js from '@eslint/js'; +import ts from 'typescript-eslint'; +import svelte from 'eslint-plugin-svelte'; +import globals from 'globals'; + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs['flat/recommended'], + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node + } + } + }, + { + files: ['**/*.svelte'], + languageOptions: { + parserOptions: { + parser: ts.parser + } + } + }, + { + ignores: ['build/', '.svelte-kit/', 'dist/'] + } +]; diff --git a/package.json b/package.json index ddd9c90..5a317a6 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,12 @@ "db:generate": "drizzle-kit generate", "db:migrate": "drizzle-kit migrate", "db:push": "drizzle-kit push", - "db:studio": "drizzle-kit studio" + "db:studio": "drizzle-kit studio", + "lint": "prettier --check . && eslint .", + "format": "prettier --write ." }, "devDependencies": { + "@eslint/js": "^9.25.0", "@lucide/svelte": "^0.544.0", "@sveltejs/adapter-auto": "^7.0.0", "@sveltejs/adapter-node": "^5.4.0", @@ -25,13 +28,19 @@ "@tailwindcss/vite": "^4.1.17", "@types/bcrypt": "^6.0.0", "drizzle-kit": "^0.31.7", + "eslint": "^9.25.0", + "eslint-plugin-svelte": "^3.5.1", + "globals": "^16.0.0", "patch-package": "^8.0.1", "postinstall-postinstall": "^2.1.0", + "prettier": "^3.5.3", + "prettier-plugin-svelte": "^3.3.3", "svelte": "^5.43.8", "svelte-check": "^4.3.4", "tailwindcss": "^4.1.17", "tw-animate-css": "^1.4.0", "typescript": "^5.9.3", + "typescript-eslint": "^8.31.0", "vite": "^7.2.2" }, "dependencies": { @@ -44,7 +53,7 @@ "bits-ui": "^2.14.4", "clsx": "^2.1.1", "drizzle-orm": "^0.44.7", - "lucide-svelte": "^0.554.0", + "postgres": "^3.4.7", "svelte-dnd-action": "^0.9.67", "tailwind-merge": "^3.4.0", diff --git a/src/auth.ts b/src/auth.ts index 19b0e61..0c73276 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -4,7 +4,7 @@ import Credentials from '@auth/core/providers/credentials'; import Google from '@auth/core/providers/google'; import type { OAuthConfig } from '@auth/core/providers'; import { db } from '$lib/server/db'; -import { users } from '$lib/server/schema'; +import { users } from '$lib/db/schema'; import { eq } from 'drizzle-orm'; import bcrypt from 'bcrypt'; import { env } from '$env/dynamic/private'; diff --git a/src/lib/components/dashboard/LocalWishlistsSection.svelte b/src/lib/components/dashboard/LocalWishlistsSection.svelte index 158a270..5e8d711 100644 --- a/src/lib/components/dashboard/LocalWishlistsSection.svelte +++ b/src/lib/components/dashboard/LocalWishlistsSection.svelte @@ -3,7 +3,7 @@ import WishlistSection from '$lib/components/dashboard/WishlistSection.svelte'; import { getLocalWishlists, forgetLocalWishlist, toggleLocalFavorite, type LocalWishlist } from '$lib/utils/localWishlists'; import { languageStore } from '$lib/stores/language.svelte'; - import { Star } from 'lucide-svelte'; + import { Star } from '@lucide/svelte'; import { onMount } from 'svelte'; let { diff --git a/src/lib/components/dashboard/WishlistSection.svelte b/src/lib/components/dashboard/WishlistSection.svelte index 10d5a78..4761db7 100644 --- a/src/lib/components/dashboard/WishlistSection.svelte +++ b/src/lib/components/dashboard/WishlistSection.svelte @@ -3,7 +3,7 @@ import WishlistGrid from '$lib/components/dashboard/WishlistGrid.svelte'; import WishlistCard from '$lib/components/dashboard/WishlistCard.svelte'; import { enhance } from '$app/forms'; - import { Star } from 'lucide-svelte'; + import { Star } from '@lucide/svelte'; import { languageStore } from '$lib/stores/language.svelte'; import SearchBar from '$lib/components/ui/SearchBar.svelte'; import UnlockButton from '$lib/components/ui/UnlockButton.svelte'; diff --git a/src/lib/components/layout/Navigation.svelte b/src/lib/components/layout/Navigation.svelte index a8c452a..65c5007 100644 --- a/src/lib/components/layout/Navigation.svelte +++ b/src/lib/components/layout/Navigation.svelte @@ -2,7 +2,7 @@ import { Button } from '$lib/components/ui/button'; import { ThemeToggle } from '$lib/components/ui/theme-toggle'; import { LanguageToggle } from '$lib/components/ui/language-toggle'; - import { LayoutDashboard } from 'lucide-svelte'; + import { LayoutDashboard } from '@lucide/svelte'; import { languageStore } from '$lib/stores/language.svelte'; let { diff --git a/src/lib/components/ui/ColorPicker.svelte b/src/lib/components/ui/ColorPicker.svelte index 0e3860d..bd449de 100644 --- a/src/lib/components/ui/ColorPicker.svelte +++ b/src/lib/components/ui/ColorPicker.svelte @@ -1,5 +1,5 @@