From ba6ffb197c8b39bda8a8aa018cdf6162fa44a876 Mon Sep 17 00:00:00 2001 From: imfozilbek Date: Sun, 23 Nov 2025 21:19:44 +0500 Subject: [PATCH] feat: add core package Add @puaros/core package with TypeScript configuration, Vitest test setup, and package structure --- packages/core/.gitignore | 13 ++++++++++++ packages/core/package.json | 39 ++++++++++++++++++++++++++++++++++ packages/core/tsconfig.json | 20 +++++++++++++++++ packages/core/vitest.config.ts | 28 ++++++++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 packages/core/.gitignore create mode 100644 packages/core/package.json create mode 100644 packages/core/tsconfig.json create mode 100644 packages/core/vitest.config.ts diff --git a/packages/core/.gitignore b/packages/core/.gitignore new file mode 100644 index 0000000..aa95ec3 --- /dev/null +++ b/packages/core/.gitignore @@ -0,0 +1,13 @@ +# Build output +dist/ +*.tsbuildinfo + +# Dependencies +node_modules/ + +# Test coverage +coverage/ + +# Logs +*.log +npm-debug.log* diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..d8e6f79 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,39 @@ +{ + "name": "@puaros/core", + "version": "0.0.1", + "private": true, + "description": "Core business logic for Puaros", + "keywords": [ + "puaros" + ], + "main": "dist/index.js", + "types": "dist/index.d.ts", + "author": "Fozilbek Samiyev ", + "license": "MIT", + "scripts": { + "build": "tsc", + "watch": "tsc --watch", + "clean": "rm -rf dist", + "test": "vitest", + "test:ui": "vitest --ui", + "test:watch": "vitest --watch", + "test:coverage": "vitest run --coverage", + "test:run": "vitest run" + }, + "dependencies": { + "simple-git": "^3.30.0", + "tree-sitter": "^0.21.1", + "tree-sitter-javascript": "^0.23.0", + "tree-sitter-typescript": "^0.23.0", + "uuid": "^13.0.0" + }, + "devDependencies": { + "@types/ioredis": "^5.0.0", + "@types/node": "^22.10.7", + "@types/uuid": "^11.0.0", + "@vitest/coverage-v8": "^4.0.10", + "@vitest/ui": "^4.0.10", + "typescript": "^5.7.3", + "vitest": "^4.0.10" + } +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..e0b9527 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "target": "ES2023", + "module": "CommonJS", + "moduleResolution": "node", + "declaration": true, + "declarationMap": true, + "composite": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "skipLibCheck": true, + "sourceMap": true, + "baseUrl": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"] +} diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts new file mode 100644 index 0000000..ed4cd13 --- /dev/null +++ b/packages/core/vitest.config.ts @@ -0,0 +1,28 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'], + }, + test: { + globals: true, + environment: 'node', + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html', 'lcov'], + exclude: [ + '**/node_modules/**', + '**/dist/**', + '**/*.test.ts', + '**/*.spec.ts', + '**/tests/**', + ], + thresholds: { + lines: 80, + functions: 80, + branches: 80, + statements: 80, + }, + }, + }, +});