* feat: extract tRPC verification logic to platform libraries and create v2 atoms endpoints - Extract verifyCodeUnAuthenticated, verifyCodeAuthenticated, and sendVerifyEmailCode logic from tRPC handlers into reusable platform library functions - Create VerificationAtomsService and AtomsVerificationController following atoms pattern - Add v2 endpoints: /atoms/verification/email/send-code, /atoms/verification/email/verify-code, /atoms/verification/email/verify-code-authenticated - Update useVerifyEmail and useVerifyCode hooks to use new v2 endpoints instead of verified-resources endpoints - Export verification functions from @calcom/platform-libraries following getPublicEvent pattern - Integrate platform-specific verification hooks into BookerPlatformWrapper Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * feat: update platform hooks to use v2 verification endpoints - Update useVerifyEmail hook to use correct response type for v2 endpoint - Update useVerifyCode hook to use v2 verification endpoint - All verification functions now properly exported from platform libraries - Type checking passes with no errors Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * fix: update v2 API to use workspace version of platform-libraries - Change package.json dependency from pinned version to workspace version - Add proper error handling to verification service with NestJS HTTP exceptions - Convert generic Error objects to BadRequestException and UnauthorizedException - Ensure verification endpoints return proper HTTP status codes instead of 500 errors Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * chore: update auto-generated files after package.json changes - Update OpenAPI documentation for v2 verification endpoints - Update yarn.lock after changing platform-libraries dependency Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * refactor: extract verification logic from tRPC handlers into exportable functions - Refactor sendVerifyEmailCode.handler.ts to extract core logic into sendVerifyEmailCode function - Refactor verifyCodeUnAuthenticated.handler.ts to extract core logic into verifyCodeUnAuthenticated function - Refactor organizations/verifyCode.handler.ts to extract core logic into verifyCodeAuthenticated function - Update platform/libraries/index.ts to import from refactored handler files instead of standalone verification.ts - Remove standalone verification.ts file as requested by user - Keep original tRPC handlers as wrappers that call the extracted functions - Maintain backward compatibility for existing tRPC endpoints Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * extract logic into seperate functions * Update index.ts * refactor: remove unused type imports from verification-atom service * feat: create v2 atoms input/output types for verification endpoints - Add SendVerificationEmailInput and VerifyEmailCodeInput with validation decorators - Add SendVerificationEmailOutput and VerifyEmailCodeOutput following v2 atoms patterns - Update atoms verification controller to use custom types instead of platform types - Auto-update openapi.json with new type definitions Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * fix: add missing type imports to verification service - Import ZVerifyCodeInputSchema from @calcom/prisma/zod-utils - Import VerifyCodeAuthenticatedInput from organizations handler - Import TSendVerifyEmailCodeSchema from sendVerifyEmailCode schema - Resolves CI build failure in API v2 tests Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * feat: add email verification check endpoint and refactor verification flow * added Throttle * added chagelog * chore: update platform libraries to 0.0.317 * refactor: remove unused context and update email verification query key dependencies * chore: bump @calcom/platform-libraries from 0.0.318 to 0.0.319 * Update verifyCode.handler.ts * chore: bump @calcom/platform-libraries from 0.0.319 to 0.0.320 --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
120 lines
5.0 KiB
JSON
120 lines
5.0 KiB
JSON
{
|
|
"name": "@calcom/api-v2",
|
|
"version": "0.0.1",
|
|
"description": "Platform API for Cal.com",
|
|
"author": "Cal.com Inc.",
|
|
"license": "UNLICENSED",
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "yarn dev:build && nest build",
|
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"start": "nest start",
|
|
"dev:build:watch": "concurrently --names \"libraries,lru-fix,constants,enums,utils,types\" \"yarn _dev:build:watch:libraries\" \"yarn _dev:build:watch:libraries:lru-fix\" \"yarn _dev:build:watch:constants\" \"yarn _dev:build:watch:enums\" \"yarn _dev:build:watch:utils\" \"yarn _dev:build:watch:types\"",
|
|
"_dev:build:watch:libraries": "yarn workspace @calcom/platform-libraries build:watch",
|
|
"_dev:build:watch:libraries:lru-fix": "yarn workspace @calcom/platform-libraries watch-lru-fix",
|
|
"_dev:build:watch:constants": "yarn workspace @calcom/platform-constants build:watch",
|
|
"_dev:build:watch:enums": "yarn workspace @calcom/platform-enums build:watch",
|
|
"_dev:build:watch:utils": "yarn workspace @calcom/platform-utils build:watch",
|
|
"_dev:build:watch:types": "yarn workspace @calcom/platform-types build:watch",
|
|
"dev:build": "yarn workspace @calcom/platform-constants build && yarn workspace @calcom/platform-enums build && yarn workspace @calcom/platform-utils build && yarn workspace @calcom/platform-types build",
|
|
"dev": "yarn dev:build && ts-node scripts/docker-start.ts && yarn copy-swagger-module && yarn start --watch",
|
|
"dev:no-docker": "yarn dev:build && yarn copy-swagger-module && yarn start --watch",
|
|
"start:debug": "nest start --debug --watch",
|
|
"start:prod": "node ./dist/apps/api/v2/src/main.js",
|
|
"test": "yarn dev:build && jest",
|
|
"test:watch": "yarn dev:build && jest --watch",
|
|
"test:cov": "yarn dev:build && jest --coverage",
|
|
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
|
"test:e2e": "yarn dev:build && NODE_OPTIONS='--max_old_space_size=8192 --experimental-vm-modules' jest --ci --forceExit --config ./jest-e2e.ts",
|
|
"test:e2e:local": "yarn test:e2e --maxWorkers=4",
|
|
"test:e2e:watch": "yarn dev:build && jest --runInBand --detectOpenHandles --forceExit --config ./jest-e2e.ts --watch",
|
|
"prisma": "yarn workspace @calcom/prisma prisma",
|
|
"generate-schemas": "yarn prisma generate && yarn prisma format",
|
|
"copy-swagger-module": "ts-node -r tsconfig-paths/register swagger/copy-swagger-module.ts",
|
|
"prepare": "yarn run snyk-protect",
|
|
"snyk-protect": "snyk-protect"
|
|
},
|
|
"dependencies": {
|
|
"@axiomhq/winston": "^1.2.0",
|
|
"@calcom/platform-constants": "*",
|
|
"@calcom/platform-enums": "*",
|
|
"@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.320",
|
|
"@calcom/platform-types": "*",
|
|
"@calcom/platform-utils": "*",
|
|
"@calcom/prisma": "*",
|
|
"@golevelup/ts-jest": "^0.4.0",
|
|
"@microsoft/microsoft-graph-types-beta": "^0.42.0-preview",
|
|
"@nest-lab/throttler-storage-redis": "1.0.0",
|
|
"@nestjs/axios": "^4.0.0",
|
|
"@nestjs/bull": "^10.1.1",
|
|
"@nestjs/common": "^10.0.0",
|
|
"@nestjs/config": "^3.1.1",
|
|
"@nestjs/core": "^10.0.0",
|
|
"@nestjs/jwt": "^10.2.0",
|
|
"@nestjs/passport": "^10.0.2",
|
|
"@nestjs/platform-express": "^10.0.0",
|
|
"@nestjs/swagger": "^7.3.0",
|
|
"@nestjs/throttler": "6.2.1",
|
|
"@sentry/nestjs": "^8.37.1",
|
|
"@sentry/node": "^8.8.0",
|
|
"@sentry/profiling-node": "^8.37.1",
|
|
"@snyk/protect": "latest",
|
|
"body-parser": "^1.20.2",
|
|
"bull": "^4.12.4",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.0",
|
|
"concurrently": "^9.1.2",
|
|
"cookie-parser": "^1.4.6",
|
|
"dotenv": "^16.3.1",
|
|
"fs-extra": "^11.2.0",
|
|
"googleapis": "^84.0.0",
|
|
"helmet": "^7.1.0",
|
|
"ioredis": "^5.3.2",
|
|
"jsforce": "^1.11.0",
|
|
"lodash": "^4.17.21",
|
|
"luxon": "^3.4.4",
|
|
"nest-winston": "^1.9.4",
|
|
"next-auth": "^4.22.1",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"qs-stringify": "^1.2.1",
|
|
"querystring": "^0.2.1",
|
|
"reflect-metadata": "^0.1.13",
|
|
"rxjs": "^7.8.1",
|
|
"stripe": "^15.3.0",
|
|
"uuid": "^8.3.2",
|
|
"winston": "^3.13.0",
|
|
"winston-transport": "^4.7.0",
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.0.0",
|
|
"@nestjs/schematics": "^10.0.0",
|
|
"@nestjs/testing": "^10.0.0",
|
|
"@types/cookie-parser": "^1.4.6",
|
|
"@types/express": "^4.17.21",
|
|
"@types/fs-extra": "^11.0.4",
|
|
"@types/jest": "^29.5.10",
|
|
"@types/luxon": "^3.3.7",
|
|
"@types/passport-jwt": "^3.0.13",
|
|
"@types/supertest": "^2.0.12",
|
|
"@typescript-eslint/eslint-plugin": "^6",
|
|
"@typescript-eslint/parser": "^6",
|
|
"jest": "^29.7.0",
|
|
"jest-date-mock": "^1.0.10",
|
|
"node-mocks-http": "^1.16.2",
|
|
"prettier": "^2.8.6",
|
|
"source-map-support": "^0.5.21",
|
|
"supertest": "^6.3.3",
|
|
"ts-jest": "^29.1.1",
|
|
"ts-loader": "^9.4.3",
|
|
"ts-node": "^10.9.1",
|
|
"tsconfig-paths": "^4.1.0",
|
|
"typescript": "^5.9.0-beta"
|
|
},
|
|
"prisma": {
|
|
"schema": "../../../packages/prisma/schema.prisma"
|
|
},
|
|
"snyk": true
|
|
}
|