diff --git a/nest-cli.json b/nest-cli.json index 2e3084a..f9aa683 100644 --- a/nest-cli.json +++ b/nest-cli.json @@ -3,10 +3,6 @@ "collection": "@nestjs/schematics", "sourceRoot": "src", "compilerOptions": { - "deleteOutDir": true, - "assets": [ - "generated/prisma/package.json" - ], - "watchAssets": true + "deleteOutDir": true } } diff --git a/package-lock.json b/package-lock.json index 267a385..a61746a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pandektes-challenge", - "version": "0.0.1", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pandektes-challenge", - "version": "0.0.1", + "version": "1.0.0", "hasInstallScript": true, "license": "UNLICENSED", "dependencies": { @@ -67,6 +67,9 @@ "tsconfig-paths": "^4.2.0", "typescript": "^5.7.3", "typescript-eslint": "^8.20.0" + }, + "engines": { + "node": ">=20" } }, "node_modules/@angular-devkit/core": { diff --git a/package.json b/package.json index 7b82cf2..7e531fa 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,15 @@ { "name": "pandektes-challenge", - "version": "0.0.1", - "description": "", - "author": "", + "version": "1.0.0", + "description": "Legal document parsing API — extracts case law metadata from PDF/HTML using Gemini AI", + "author": "George W.", "private": true, "license": "UNLICENSED", "scripts": { - "build": "nest build", - "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "build": "nest build && cp src/generated/prisma/package.json dist/src/generated/prisma/package.json", "start": "nest start", "start:dev": "nest start --watch", - "start:debug": "nest start --debug --watch", - "start:prod": "node dist/main", - "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", - "test": "jest", - "test:watch": "jest --watch", - "test:cov": "jest --coverage", - "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", - "test:e2e": "jest --config ./test/jest-e2e.json", + "start:prod": "npm run build && nest start", "postinstall": "prisma generate" }, "dependencies": { @@ -79,6 +71,9 @@ "typescript": "^5.7.3", "typescript-eslint": "^8.20.0" }, + "engines": { + "node": ">=20" + }, "jest": { "moduleFileExtensions": [ "js", diff --git a/src/cases/cases.resolver.ts b/src/cases/cases.resolver.ts index 695acc5..d27bdcc 100644 --- a/src/cases/cases.resolver.ts +++ b/src/cases/cases.resolver.ts @@ -3,8 +3,8 @@ import { GraphQLUpload } from 'graphql-upload-ts'; import type { FileUpload } from 'graphql-upload-ts'; import { CasesService } from './cases.service'; import { CaseLaw } from './entities/case-law.entity'; -import { StorageService } from '../common/storage/storage.service'; -import { CaseFileValidationPipe } from '../common/pipes/file-validation.pipe'; +import { StorageService } from '@app/common/storage/storage.service'; +import { CaseFileValidationPipe } from '@app/common/pipes/file-validation.pipe'; import { CaseStatus } from '../generated/prisma/client.js'; @Resolver(() => CaseLaw) diff --git a/src/cases/cases.service.ts b/src/cases/cases.service.ts index 0dd7c94..87b9914 100644 --- a/src/cases/cases.service.ts +++ b/src/cases/cases.service.ts @@ -1,10 +1,10 @@ import { Injectable, NotFoundException, BadRequestException, Logger, Inject } from '@nestjs/common'; -import { PRISMA_CLIENT, type PrismaClientInstance } from '../common/prisma/prisma.service'; -import { isUuid } from 'src/common/utils/string.utils'; +import { PRISMA_CLIENT, type PrismaClientInstance } from '@app/common/prisma/prisma.service'; +import { isUuid } from '@app/common/utils/string.utils'; import { Queue } from 'bullmq'; -import { StorageService } from 'src/common/storage/storage.service'; +import { StorageService } from '@app/common/storage/storage.service'; import { InjectQueue } from '@nestjs/bullmq'; -import { CaseStatus } from 'src/generated/prisma/enums'; +import { CaseStatus } from '../generated/prisma/client.js'; @Injectable() export class CasesService { diff --git a/src/cases/processors/case-queue.listener.ts b/src/cases/processors/case-queue.listener.ts index 324c387..f82d719 100644 --- a/src/cases/processors/case-queue.listener.ts +++ b/src/cases/processors/case-queue.listener.ts @@ -1,6 +1,6 @@ import { QueueEventsListener, QueueEventsHost, OnQueueEvent, InjectQueue } from '@nestjs/bullmq'; import { Queue } from 'bullmq'; -import { PRISMA_CLIENT, type PrismaClientInstance } from '../../common/prisma/prisma.service'; +import { PRISMA_CLIENT, type PrismaClientInstance } from '@app/common/prisma/prisma.service'; import { CaseStatus } from '../../generated/prisma/client.js'; import { Logger, Inject } from '@nestjs/common'; diff --git a/src/common/prisma/prisma.module.ts b/src/common/prisma/prisma.module.ts index 57abed0..d7156fc 100644 --- a/src/common/prisma/prisma.module.ts +++ b/src/common/prisma/prisma.module.ts @@ -2,7 +2,7 @@ import { Global, Module } from '@nestjs/common'; import { PrismaService, PRISMA_CLIENT, -} from './prisma.service.js'; +} from './prisma.service'; @Global() @Module({ diff --git a/tsconfig.json b/tsconfig.json index 13d19b6..13a47b1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,11 @@ "sourceMap": true, "outDir": "./dist", "baseUrl": "./", - "paths": {}, + "paths": { + "@app/*": [ + "./src/*" + ] + }, "incremental": true, "skipLibCheck": true, "strictNullChecks": true,