feat: add monorepo configuration and shared packages structure

Root-level setup:
- package.json with Turborepo scripts
- pnpm-workspace.yaml for workspace management
- turbo.json for build pipeline
- Common config files (.nvmrc, .prettierrc, .editorconfig)

Shared packages (packages/):
- @manacore/shared-types - Common TypeScript types
- @manacore/shared-supabase - Unified Supabase client
- @manacore/shared-utils - Date, string, async utilities
- @manacore/shared-ui - React Native UI components (placeholder)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Till-JS 2025-11-22 23:41:52 +01:00
parent e7f5f942f3
commit 2c58d03f63
23 changed files with 738 additions and 0 deletions

View file

@ -0,0 +1,18 @@
{
"name": "@manacore/shared-types",
"version": "0.1.0",
"private": true,
"description": "Shared TypeScript types for Manacore monorepo",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"type-check": "tsc --noEmit",
"clean": "rm -rf dist"
},
"devDependencies": {
"typescript": "^5.9.2"
}
}

View file

@ -0,0 +1,47 @@
/**
* Shared types for Manacore monorepo
*
* This package contains common TypeScript types used across all projects.
*/
// Common user types
export interface User {
id: string;
email: string;
created_at: string;
updated_at: string;
}
// Common API response types
export interface ApiResponse<T> {
data: T | null;
error: ApiError | null;
}
export interface ApiError {
message: string;
code?: string;
status?: number;
}
// Pagination types
export interface PaginationParams {
page?: number;
limit?: number;
offset?: number;
}
export interface PaginatedResponse<T> {
data: T[];
total: number;
page: number;
limit: number;
hasMore: boolean;
}
// Supabase common types
export interface SupabaseConfig {
url: string;
anonKey: string;
serviceRoleKey?: string;
}

View file

@ -0,0 +1,17 @@
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"lib": ["ES2020"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"declaration": true,
"declarationMap": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}