Files
code-crispies/package.json
Michael Czechowski b0b39e2f02 feat: add authentication, cloud sync, and GDPR compliance
Authentication & Cloud Sync:
- Add Supabase integration for auth (email/password, Google, GitHub OAuth)
- Add cloud progress sync for logged-in users
- Add account deletion feature with confirmation dialog
- Auth is optional - anonymous users can still use localStorage

UI Improvements:
- Add dark-themed account section in sidebar
- Show user email in header when logged in
- Add signup success feedback message
- Update landing page: remove cloud sync from Coming Soon, add Code Challenges
- Update benefit text to mention optional cloud sync

GDPR Compliance:
- Add Privacy Policy dialog with full GDPR-compliant content
- Add Imprint dialog with legal contact information
- Add footer links for Privacy and Imprint
- All legal content translated to 6 languages (en, de, pl, es, ar, uk)

Files added:
- src/supabase.js - Supabase client with auth and progress sync helpers
- src/auth.js - Authentication logic and form handlers
- supabase-setup.sql - Database schema and RLS policies
2026-01-16 12:37:22 +01:00

49 lines
1.3 KiB
JSON

{
"name": "code-crispies",
"version": "1.0.0",
"description": "An interactive platform for learning CSS through practical challenges",
"type": "module",
"scripts": {
"start": "npm run dev",
"dev": "vite --host",
"build": "vite build",
"preview": "vite preview --debug",
"test": "vitest run",
"test.watch": "vitest watch",
"test.coverage": "vitest run --coverage",
"format": "prettier --write src/ tests/ schemas/ package.json vite.config.js vitest.config.js",
"format.lessons": "prettier --write 'lessons/**/*.json'"
},
"keywords": [
"css",
"html",
"learning",
"interactive",
"education"
],
"author": "Michael Czechowski <mail@dailysh.it>",
"license": "Copyright 2026 (c) Michael Czechowski",
"devDependencies": {
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@vitest/coverage-v8": "^3.1.3",
"jsdom": "^26.1.0",
"prettier": "^3.5.3",
"vite": "^6.3.5",
"vitest": "^3.1.3"
},
"dependencies": {
"@codemirror/autocomplete": "^6.20.0",
"@codemirror/commands": "^6.10.1",
"@codemirror/lang-css": "^6.3.1",
"@codemirror/lang-html": "^6.4.11",
"@codemirror/state": "^6.5.2",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.39.4",
"@emmetio/codemirror6-plugin": "^0.4.0",
"@supabase/supabase-js": "^2.90.1",
"codemirror": "^6.0.2",
"whatwg-fetch": "^3.6.20"
}
}