Files
classroomio/package.json
T
c0f82d9573 fix(auth): sync profile email verification with auth user (#726)
* fix(auth): sync profile email verification with auth user

Repair stale profile rows where user.email_verified is true but
profile.is_email_verified is false, which blocked the LMS with the
verify-email modal while send-verification-email returned
EMAIL_IS_ALREADY_VERIFIED.

Sync on session login, account fetch, and user update; update the
modal to respect session emailVerified and self-heal on that error.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* chore(db): add backfill script for stale profile email verification

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(db): document profile email verification backfill command

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(auth): never demote profile email verification on sync

Greptile: self-hosted first signup can verify profile before
user.email_verified is set. Sync now only promotes verification.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(auth): promote user.email_verified when profile is verified

Self-hosted bootstrap and other flows can set profile.is_email_verified
before user.email_verified. Sync and createProfileHook now update both
tables when promoting verification.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-11 06:38:28 +01:00

67 lines
2.6 KiB
JSON

{
"name": "classroomio",
"version": "0.1.13",
"scripts": {
"build": "turbo run build",
"start": "turbo run start",
"dev": "turbo prepare --concurrency 13 && turbo run dev",
"lint": "turbo run lint",
"clean": "turbo clean && rimraf --glob \"**/node_modules\"",
"clean:pnpm": "pnpm clean && pnpm store prune",
"format": "turbo run format",
"format:changed": "node scripts/format-changed.mjs --write",
"format:check": "node scripts/format-changed.mjs --staged --check",
"postinstall": "node scripts/postinstall.mjs",
"release": "standard-version",
"db:reset": "pnpm --filter @cio/db db:reset",
"db:studio": "pnpm --filter @cio/db db:studio",
"db:backfill-profile-email-verification": "pnpm --filter @cio/db db:backfill-profile-email-verification",
"dashboard:dev": "pnpm concurrently -n dashboard,ui -c blue,yellow \"pnpm --filter=@cio/dashboard run dev\" \"pnpm --filter=@cio/ui run dev\"",
"api:dev": "pnpm concurrently -n api,jobs -c blue,yellow \"pnpm --filter=@cio/api run dev\" \"pnpm --filter=@cio/jobs-worker run dev\"",
"jobs:dev": "pnpm --filter=@cio/jobs-worker run dev",
"docs:dev": "pnpm --filter @cio/docs dev",
"docs:build": "pnpm --filter @cio/docs build",
"docs:types:check": "pnpm --filter @cio/docs types:check",
"website:dev": "pnpm --filter=@cio/website run dev",
"embeds:dev": "pnpm --filter=@cio/embeds --filter=@cio/ui run dev",
"storybook:dev": "pnpm --filter=@cio/storybook --filter=@cio/ui --filter=@cio/question-types run dev",
"mcp:build": "pnpm --filter=@classroomio/mcp run build",
"db:push": "pnpm --filter @cio/db db push"
},
"license": "MIT",
"dependencies": {
"turbo": "^1.10.16"
},
"devDependencies": {
"@babel/plugin-syntax-jsx": "^7.28.6",
"@babel/preset-typescript": "^7.28.5",
"@cio/tsconfig": "workspace:*",
"@evilmartians/lefthook": "^1.13.6",
"concurrently": "^8.2.2",
"eslint": "^9.36.0",
"prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.1",
"prettier-plugin-tailwindcss": "^0.7.2",
"rimraf": "^6.0.1",
"standard-version": "^9.5.0",
"typescript": "^5.1.6"
},
"engines": {
"node": "^20.19.3"
},
"pnpm": {
"onlyBuiltDependencies": [
"esbuild",
"@tailwindcss/oxide"
],
"patchedDependencies": {
"layerchart@2.0.0-next.27": "patches/layerchart@2.0.0-next.27.patch"
},
"overrides": {
"zod": "4.2.1",
"miniflare>zod": "3.22.3"
}
},
"packageManager": "pnpm@10.19.0+sha512.c9fc7236e92adf5c8af42fd5bf1612df99c2ceb62f27047032f4720b33f8eacdde311865e91c411f2774f618d82f320808ecb51718bfa82c060c4ba7c76a32b8"
}