From 530cbdf14dc66ea0f3ca4ab520d1f441f43f129e Mon Sep 17 00:00:00 2001 From: imfozilbek Date: Sun, 23 Nov 2025 21:19:24 +0500 Subject: [PATCH] chore: configure monorepo workspace Add pnpm workspace configuration, Node version specification, root package.json with build/test/lint scripts, and shared TypeScript configuration --- .nvmrc | 1 + package.json | 40 ++++++++++++++++++++++++++++++++++++++++ pnpm-workspace.yaml | 2 ++ tsconfig.base.json | 26 ++++++++++++++++++++++++++ tsconfig.json | 16 ++++++++++++++++ 5 files changed, 85 insertions(+) create mode 100644 .nvmrc create mode 100644 package.json create mode 100644 pnpm-workspace.yaml create mode 100644 tsconfig.base.json create mode 100644 tsconfig.json diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..89b93fd --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22.18.0 \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..2af0446 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "puaros-monorepo", + "version": "0.0.1", + "description": "Puaros", + "author": "Fozilbek Samiyev ", + "private": true, + "license": "MIT", + "scripts": { + "build:all": "pnpm -r build", + "clean:all": "pnpm -r clean", + "format": "prettier --write \"packages/**/*.ts\"", + "lint": "eslint \"packages/**/*.ts\" --fix", + "test": "pnpm -r test" + }, + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.18.0", + "@nestjs/cli": "^11.0.0", + "@nestjs/schematics": "^11.0.0", + "@nestjs/testing": "^11.0.1", + "@types/express": "^5.0.0", + "@types/jest": "^30.0.0", + "@types/node": "^22.10.7", + "@types/supertest": "^6.0.2", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2", + "globals": "^16.0.0", + "jest": "^30.0.0", + "prettier": "^3.4.2", + "source-map-support": "^0.5.21", + "supertest": "^7.0.0", + "ts-jest": "^29.2.5", + "ts-loader": "^9.5.2", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.7.3", + "typescript-eslint": "^8.20.0" + } +} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..18ec407 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'packages/*' diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..d5c01cf --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "module": "nodenext", + "moduleResolution": "nodenext", + "resolvePackageJsonExports": true, + "esModuleInterop": true, + "isolatedModules": true, + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2023", + "sourceMap": true, + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": false, + "strictBindCallApply": false, + "noFallthroughCasesInSwitch": false, + "jsx": "react", + "jsxFactory": "React.createElement", + "jsxFragmentFactory": "React.Fragment" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a81a40a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist", + "baseUrl": "./" + }, + "references": [ + { "path": "./packages/core" }, + { "path": "./packages/server" }, + { "path": "./packages/cli" }, + { "path": "./packages/sdk" }, + { "path": "./packages/mcp" }, + { "path": "./packages/vscode" } + ], + "files": [] +}