* fix(exercise): persist completion policy and pass threshold on save buildExerciseUpdateFields accepted completionPolicy and passThreshold in the validation schema but never mapped them to the database update, so exercise settings appeared to save while reverting on refresh. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(db): build workspace deps before compiling @cio/db imports @cio/utils/notifications, which only exists after @cio/utils is built. Building db in isolation failed when utils dist was missing or stale. - Add a db prebuild step for question-types, utils, and email - Clean dist and tsbuildinfo before utils and email builds so incremental tsc cannot skip emission after dist was removed Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * chore(dev): build api workspace deps before api:dev Run turbo build for @cio/api and @cio/jobs-worker dependencies before starting the dev servers, so missing dist/ folders do not break startup. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * feat(course): improve exercise progression grading UX --------- Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
110 lines
3.9 KiB
JSON
110 lines
3.9 KiB
JSON
{
|
|
"name": "@cio/db",
|
|
"version": "0.0.1",
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
},
|
|
"./types": {
|
|
"types": "./dist/types.d.ts",
|
|
"default": "./dist/types.js"
|
|
},
|
|
"./drizzle": {
|
|
"types": "./dist/drizzle.d.ts",
|
|
"default": "./dist/drizzle.js"
|
|
},
|
|
"./schema": {
|
|
"types": "./dist/schema.d.ts",
|
|
"default": "./dist/schema.js"
|
|
},
|
|
"./auth": {
|
|
"types": "./dist/auth.d.ts",
|
|
"default": "./dist/auth.js"
|
|
},
|
|
"./utils": {
|
|
"types": "./dist/utils/index.d.ts",
|
|
"default": "./dist/utils/index.js"
|
|
},
|
|
"./queries": {
|
|
"types": "./dist/queries/index.d.ts",
|
|
"default": "./dist/queries/index.js"
|
|
},
|
|
"./queries/query-errors": {
|
|
"types": "./dist/queries/query-errors.d.ts",
|
|
"default": "./dist/queries/query-errors.js"
|
|
},
|
|
"./queries/*": {
|
|
"types": "./dist/queries/*/index.d.ts",
|
|
"default": "./dist/queries/*/index.js"
|
|
},
|
|
"./queries/*/*": {
|
|
"types": "./dist/queries/*/*.d.ts",
|
|
"default": "./dist/queries/*/*.js"
|
|
}
|
|
},
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"scripts": {
|
|
"prebuild": "pnpm --filter @cio/question-types run build && pnpm --filter @cio/utils run build && pnpm --filter @cio/email run build",
|
|
"build": "rimraf dist tsconfig.tsbuildinfo && tsc && tsc-alias",
|
|
"dev": "tsc --watch",
|
|
"db": "drizzle-kit",
|
|
"db:studio": "drizzle-kit studio",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "drizzle-kit migrate",
|
|
"db:baseline": "tsx src/scripts/baseline.ts",
|
|
"db:reset": "tsx src/scripts/db-reset.ts --skip-seed",
|
|
"db:setup": "tsx src/scripts/db-setup.ts",
|
|
"db:setup:seed": "tsx src/scripts/db-setup.ts --seed",
|
|
"db:exercise-backfill": "tsx src/scripts/backfill-exercise-course.ts",
|
|
"migrate:answer-data": "tsx src/scripts/migrate-answer-data.ts",
|
|
"migrate:programs-to-cohorts": "tsx src/scripts/migrate-programs-to-cohorts.ts",
|
|
"db:assets-backfill": "tsx src/scripts/backfill-lesson-assets.ts",
|
|
"db:rewrite-media-host": "tsx src/scripts/rewrite-media-host.ts",
|
|
"db:login-link": "tsx src/scripts/generate-login-link.ts",
|
|
"db:sync-orphaned-profiles": "tsx src/scripts/sync-orphaned-profiles.ts",
|
|
"db:backfill-profile-email-verification": "tsx src/scripts/backfill-profile-email-verification.ts",
|
|
"db:notify-students-over-limit": "tsx src/scripts/notify-students-over-limit.ts",
|
|
"move-users": "tsx src/scripts/supabase-to-betterauth.ts",
|
|
"pull": "drizzle-kit pull --config drizzle.config.ts",
|
|
"generate-types": "tsx scripts/generate-types.ts && pnpm format",
|
|
"seed": "tsx src/scripts/seed.ts",
|
|
"format": "prettier . --write",
|
|
"db:supabase-to-betterauth": "tsx src/scripts/supabase-to-betterauth.ts",
|
|
"db:dump-backup": "tsx src/scripts/pg-dump-backup.ts",
|
|
"db:push-dump-to-new-db": "tsx src/scripts/push-dump-to-new-db.ts",
|
|
"db:restore-lesson-section-from-dump": "tsx src/scripts/restore-lesson-section-from-dump.ts",
|
|
"db:restore-organizationmember-from-dump": "tsx src/scripts/restore-organizationmember-from-dump.ts",
|
|
"db:disable-v1-content-grouping-from-dump": "tsx src/scripts/disable-v1-content-grouping-from-dump.ts",
|
|
"db:fix-landing-courses": "tsx src/scripts/fix-landing-page-courses-links.ts"
|
|
},
|
|
"dependencies": {
|
|
"@better-auth/sso": "^1.4.18",
|
|
"@cio/email": "workspace:*",
|
|
"@cio/question-types": "workspace:*",
|
|
"@cio/tsconfig": "workspace:*",
|
|
"@cio/utils": "workspace:*",
|
|
"bcrypt": "6.0.0",
|
|
"better-auth": "^1.4.18",
|
|
"drizzle-kit": "^0.31.8",
|
|
"drizzle-orm": "^0.44.7",
|
|
"jose": "^6.1.3",
|
|
"postgres": "^3.4.7"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bcrypt": "6.0.0",
|
|
"@types/node": "^24.8.1",
|
|
"@types/pg": "^8.16.0",
|
|
"dotenv": "^17.2.3",
|
|
"pg": "^8.18.0",
|
|
"tsc-alias": "^1.8.16",
|
|
"tsx": "^4.20.3",
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|