From c3f66d1b71f16d737e451105f59561d732d954a0 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Thu, 12 Mar 2026 20:09:40 -0500 Subject: [PATCH] feat(P0-001): scaffold monorepo structure pnpm workspaces, Turborepo, TypeScript strict, ESLint flat config, Prettier, Vitest, husky + lint-staged. Placeholder packages for all 16 packages + 2 apps + 2 plugins. Closes #1 Co-Authored-By: Claude Opus 4.6 --- .gitignore | 9 +++++++ .husky/pre-commit | 4 +++ .husky/pre-push | 4 +++ .lintstagedrc | 9 +++++++ .npmrc | 1 + .prettierrc | 6 +++++ apps/gateway/package.json | 26 ++++++++++++++++++++ apps/gateway/src/app.module.ts | 7 ++++++ apps/gateway/src/health/health.controller.ts | 9 +++++++ apps/gateway/src/main.ts | 16 ++++++++++++ apps/gateway/tsconfig.json | 13 ++++++++++ apps/gateway/vitest.config.ts | 8 ++++++ apps/web/next.config.ts | 7 ++++++ apps/web/package.json | 26 ++++++++++++++++++++ apps/web/src/app/layout.tsx | 14 +++++++++++ apps/web/src/app/page.tsx | 7 ++++++ apps/web/tailwind.config.ts | 11 +++++++++ apps/web/tsconfig.json | 16 ++++++++++++ apps/web/vitest.config.ts | 8 ++++++ docker/gateway.Dockerfile | 22 +++++++++++++++++ docker/init-db.sql | 1 + docker/web.Dockerfile | 22 +++++++++++++++++ eslint.config.mjs | 26 ++++++++++++++++++++ package.json | 26 ++++++++++++++++++++ packages/agent/package.json | 25 +++++++++++++++++++ packages/agent/src/index.ts | 1 + packages/agent/tsconfig.json | 9 +++++++ packages/agent/vitest.config.ts | 8 ++++++ packages/auth/package.json | 22 +++++++++++++++++ packages/auth/src/index.ts | 1 + packages/auth/tsconfig.json | 9 +++++++ packages/auth/vitest.config.ts | 8 ++++++ packages/brain/package.json | 25 +++++++++++++++++++ packages/brain/src/index.ts | 1 + packages/brain/tsconfig.json | 9 +++++++ packages/brain/vitest.config.ts | 8 ++++++ packages/cli/package.json | 25 +++++++++++++++++++ packages/cli/src/index.ts | 1 + packages/cli/tsconfig.json | 9 +++++++ packages/cli/vitest.config.ts | 8 ++++++ packages/coord/package.json | 25 +++++++++++++++++++ packages/coord/src/index.ts | 1 + packages/coord/tsconfig.json | 9 +++++++ packages/coord/vitest.config.ts | 8 ++++++ packages/db/package.json | 22 +++++++++++++++++ packages/db/src/index.ts | 1 + packages/db/tsconfig.json | 9 +++++++ packages/db/vitest.config.ts | 8 ++++++ packages/design-tokens/package.json | 22 +++++++++++++++++ packages/design-tokens/src/index.ts | 1 + packages/design-tokens/tsconfig.json | 9 +++++++ packages/design-tokens/vitest.config.ts | 8 ++++++ packages/log/package.json | 22 +++++++++++++++++ packages/log/src/index.ts | 1 + packages/log/tsconfig.json | 9 +++++++ packages/log/vitest.config.ts | 8 ++++++ packages/memory/package.json | 25 +++++++++++++++++++ packages/memory/src/index.ts | 1 + packages/memory/tsconfig.json | 9 +++++++ packages/memory/vitest.config.ts | 8 ++++++ packages/mosaic/package.json | 22 +++++++++++++++++ packages/mosaic/src/index.ts | 1 + packages/mosaic/tsconfig.json | 9 +++++++ packages/mosaic/vitest.config.ts | 8 ++++++ packages/prdy/package.json | 22 +++++++++++++++++ packages/prdy/src/index.ts | 1 + packages/prdy/tsconfig.json | 9 +++++++ packages/prdy/vitest.config.ts | 8 ++++++ packages/quality-rails/package.json | 22 +++++++++++++++++ packages/quality-rails/src/index.ts | 1 + packages/quality-rails/tsconfig.json | 9 +++++++ packages/quality-rails/vitest.config.ts | 8 ++++++ packages/queue/package.json | 25 +++++++++++++++++++ packages/queue/src/index.ts | 1 + packages/queue/tsconfig.json | 9 +++++++ packages/queue/vitest.config.ts | 8 ++++++ packages/types/package.json | 22 +++++++++++++++++ packages/types/src/index.ts | 1 + packages/types/tsconfig.json | 9 +++++++ packages/types/vitest.config.ts | 8 ++++++ plugins/discord/package.json | 22 +++++++++++++++++ plugins/discord/src/index.ts | 1 + plugins/discord/tsconfig.json | 9 +++++++ plugins/discord/vitest.config.ts | 8 ++++++ plugins/telegram/package.json | 22 +++++++++++++++++ plugins/telegram/src/index.ts | 1 + plugins/telegram/tsconfig.json | 9 +++++++ plugins/telegram/vitest.config.ts | 8 ++++++ pnpm-workspace.yaml | 4 +++ tsconfig.base.json | 23 +++++++++++++++++ turbo.json | 26 ++++++++++++++++++++ vitest.workspace.ts | 7 ++++++ 92 files changed, 1016 insertions(+) create mode 100755 .husky/pre-commit create mode 100755 .husky/pre-push create mode 100644 .lintstagedrc create mode 100644 .npmrc create mode 100644 .prettierrc create mode 100644 apps/gateway/package.json create mode 100644 apps/gateway/src/app.module.ts create mode 100644 apps/gateway/src/health/health.controller.ts create mode 100644 apps/gateway/src/main.ts create mode 100644 apps/gateway/tsconfig.json create mode 100644 apps/gateway/vitest.config.ts create mode 100644 apps/web/next.config.ts create mode 100644 apps/web/package.json create mode 100644 apps/web/src/app/layout.tsx create mode 100644 apps/web/src/app/page.tsx create mode 100644 apps/web/tailwind.config.ts create mode 100644 apps/web/tsconfig.json create mode 100644 apps/web/vitest.config.ts create mode 100644 docker/gateway.Dockerfile create mode 100644 docker/init-db.sql create mode 100644 docker/web.Dockerfile create mode 100644 eslint.config.mjs create mode 100644 package.json create mode 100644 packages/agent/package.json create mode 100644 packages/agent/src/index.ts create mode 100644 packages/agent/tsconfig.json create mode 100644 packages/agent/vitest.config.ts create mode 100644 packages/auth/package.json create mode 100644 packages/auth/src/index.ts create mode 100644 packages/auth/tsconfig.json create mode 100644 packages/auth/vitest.config.ts create mode 100644 packages/brain/package.json create mode 100644 packages/brain/src/index.ts create mode 100644 packages/brain/tsconfig.json create mode 100644 packages/brain/vitest.config.ts create mode 100644 packages/cli/package.json create mode 100644 packages/cli/src/index.ts create mode 100644 packages/cli/tsconfig.json create mode 100644 packages/cli/vitest.config.ts create mode 100644 packages/coord/package.json create mode 100644 packages/coord/src/index.ts create mode 100644 packages/coord/tsconfig.json create mode 100644 packages/coord/vitest.config.ts create mode 100644 packages/db/package.json create mode 100644 packages/db/src/index.ts create mode 100644 packages/db/tsconfig.json create mode 100644 packages/db/vitest.config.ts create mode 100644 packages/design-tokens/package.json create mode 100644 packages/design-tokens/src/index.ts create mode 100644 packages/design-tokens/tsconfig.json create mode 100644 packages/design-tokens/vitest.config.ts create mode 100644 packages/log/package.json create mode 100644 packages/log/src/index.ts create mode 100644 packages/log/tsconfig.json create mode 100644 packages/log/vitest.config.ts create mode 100644 packages/memory/package.json create mode 100644 packages/memory/src/index.ts create mode 100644 packages/memory/tsconfig.json create mode 100644 packages/memory/vitest.config.ts create mode 100644 packages/mosaic/package.json create mode 100644 packages/mosaic/src/index.ts create mode 100644 packages/mosaic/tsconfig.json create mode 100644 packages/mosaic/vitest.config.ts create mode 100644 packages/prdy/package.json create mode 100644 packages/prdy/src/index.ts create mode 100644 packages/prdy/tsconfig.json create mode 100644 packages/prdy/vitest.config.ts create mode 100644 packages/quality-rails/package.json create mode 100644 packages/quality-rails/src/index.ts create mode 100644 packages/quality-rails/tsconfig.json create mode 100644 packages/quality-rails/vitest.config.ts create mode 100644 packages/queue/package.json create mode 100644 packages/queue/src/index.ts create mode 100644 packages/queue/tsconfig.json create mode 100644 packages/queue/vitest.config.ts create mode 100644 packages/types/package.json create mode 100644 packages/types/src/index.ts create mode 100644 packages/types/tsconfig.json create mode 100644 packages/types/vitest.config.ts create mode 100644 plugins/discord/package.json create mode 100644 plugins/discord/src/index.ts create mode 100644 plugins/discord/tsconfig.json create mode 100644 plugins/discord/vitest.config.ts create mode 100644 plugins/telegram/package.json create mode 100644 plugins/telegram/src/index.ts create mode 100644 plugins/telegram/tsconfig.json create mode 100644 plugins/telegram/vitest.config.ts create mode 100644 pnpm-workspace.yaml create mode 100644 tsconfig.base.json create mode 100644 turbo.json create mode 100644 vitest.workspace.ts diff --git a/.gitignore b/.gitignore index 333c1e9..28ff9f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,10 @@ logs/ +node_modules +dist +.turbo +.next +coverage +.env +.env.local +*.tsbuildinfo +.pnpm-store diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..36af219 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 0000000..9fe9487 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +pnpm typecheck && pnpm lint && pnpm format:check diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 0000000..b495411 --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,9 @@ +{ + "**/*.{ts,tsx,js,jsx}": [ + "prettier --write", + "eslint --fix" + ], + "**/*.{json,md,yaml,yml}": [ + "prettier --write" + ] +} diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..95b2744 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +@mosaic:registry=https://git.mosaicstack.dev/api/packages/mosaic/npm/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..6fc6d66 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "semi": true, + "printWidth": 100 +} diff --git a/apps/gateway/package.json b/apps/gateway/package.json new file mode 100644 index 0000000..f8dd1bd --- /dev/null +++ b/apps/gateway/package.json @@ -0,0 +1,26 @@ +{ + "name": "@mosaic/gateway", + "version": "0.0.0", + "private": true, + "main": "dist/main.js", + "scripts": { + "build": "tsc", + "dev": "tsc --watch", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@nestjs/common": "^11.0.0", + "@nestjs/core": "^11.0.0", + "@nestjs/platform-fastify": "^11.0.0", + "fastify": "^5.0.0", + "reflect-metadata": "^0.2.0", + "rxjs": "^7.8.0" + }, + "devDependencies": { + "@types/node": "^22.0.0", + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/apps/gateway/src/app.module.ts b/apps/gateway/src/app.module.ts new file mode 100644 index 0000000..5cd6de4 --- /dev/null +++ b/apps/gateway/src/app.module.ts @@ -0,0 +1,7 @@ +import { Module } from '@nestjs/common'; +import { HealthController } from './health/health.controller.js'; + +@Module({ + controllers: [HealthController], +}) +export class AppModule {} diff --git a/apps/gateway/src/health/health.controller.ts b/apps/gateway/src/health/health.controller.ts new file mode 100644 index 0000000..c3d14da --- /dev/null +++ b/apps/gateway/src/health/health.controller.ts @@ -0,0 +1,9 @@ +import { Controller, Get } from '@nestjs/common'; + +@Controller('health') +export class HealthController { + @Get() + check(): { status: string } { + return { status: 'ok' }; + } +} diff --git a/apps/gateway/src/main.ts b/apps/gateway/src/main.ts new file mode 100644 index 0000000..2fa94c2 --- /dev/null +++ b/apps/gateway/src/main.ts @@ -0,0 +1,16 @@ +import 'reflect-metadata'; +import { NestFactory } from '@nestjs/core'; +import { FastifyAdapter, type NestFastifyApplication } from '@nestjs/platform-fastify'; +import { AppModule } from './app.module.js'; + +async function bootstrap(): Promise { + const app = await NestFactory.create(AppModule, new FastifyAdapter()); + + await app.listen(4000, '0.0.0.0'); + console.log('Gateway listening on port 4000'); +} + +bootstrap().catch((err: unknown) => { + console.error(err); + process.exit(1); +}); diff --git a/apps/gateway/tsconfig.json b/apps/gateway/tsconfig.json new file mode 100644 index 0000000..119fbee --- /dev/null +++ b/apps/gateway/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "module": "CommonJS", + "moduleResolution": "Node" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/apps/gateway/vitest.config.ts b/apps/gateway/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/apps/gateway/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/apps/web/next.config.ts b/apps/web/next.config.ts new file mode 100644 index 0000000..94647ad --- /dev/null +++ b/apps/web/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from 'next'; + +const nextConfig: NextConfig = { + output: 'standalone', +}; + +export default nextConfig; diff --git a/apps/web/package.json b/apps/web/package.json new file mode 100644 index 0000000..348db9b --- /dev/null +++ b/apps/web/package.json @@ -0,0 +1,26 @@ +{ + "name": "@mosaic/web", + "version": "0.0.0", + "private": true, + "scripts": { + "build": "next build", + "dev": "next dev", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run", + "start": "next start" + }, + "dependencies": { + "next": "^16.0.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@types/node": "^22.0.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "tailwindcss": "^4.0.0", + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx new file mode 100644 index 0000000..0d1bcc9 --- /dev/null +++ b/apps/web/src/app/layout.tsx @@ -0,0 +1,14 @@ +import type { ReactNode } from 'react'; + +export const metadata = { + title: 'Mosaic', + description: 'Mosaic Stack Dashboard', +}; + +export default function RootLayout({ children }: { children: ReactNode }): ReactNode { + return ( + + {children} + + ); +} diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx new file mode 100644 index 0000000..2621ebd --- /dev/null +++ b/apps/web/src/app/page.tsx @@ -0,0 +1,7 @@ +export default function HomePage(): React.ReactElement { + return ( +
+

Mosaic Stack

+
+ ); +} diff --git a/apps/web/tailwind.config.ts b/apps/web/tailwind.config.ts new file mode 100644 index 0000000..375a236 --- /dev/null +++ b/apps/web/tailwind.config.ts @@ -0,0 +1,11 @@ +import type { Config } from 'tailwindcss'; + +const config: Config = { + content: ['./src/**/*.{ts,tsx}'], + theme: { + extend: {}, + }, + plugins: [], +}; + +export default config; diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json new file mode 100644 index 0000000..66bd438 --- /dev/null +++ b/apps/web/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "ES2022"], + "module": "ESNext", + "moduleResolution": "Bundler", + "jsx": "preserve", + "plugins": [{ "name": "next" }], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/web/vitest.config.ts b/apps/web/vitest.config.ts new file mode 100644 index 0000000..5270893 --- /dev/null +++ b/apps/web/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'jsdom', + }, +}); diff --git a/docker/gateway.Dockerfile b/docker/gateway.Dockerfile new file mode 100644 index 0000000..39b7a5b --- /dev/null +++ b/docker/gateway.Dockerfile @@ -0,0 +1,22 @@ +FROM node:22-alpine AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + +FROM base AS builder +WORKDIR /app +COPY pnpm-workspace.yaml pnpm-lock.yaml package.json ./ +COPY apps/gateway/package.json ./apps/gateway/ +COPY packages/ ./packages/ +RUN pnpm install --frozen-lockfile +COPY . . +RUN pnpm --filter @mosaic/gateway build + +FROM base AS runner +WORKDIR /app +ENV NODE_ENV=production +COPY --from=builder /app/apps/gateway/dist ./dist +COPY --from=builder /app/apps/gateway/package.json ./package.json +COPY --from=builder /app/node_modules ./node_modules +EXPOSE 4000 +CMD ["node", "dist/main.js"] diff --git a/docker/init-db.sql b/docker/init-db.sql new file mode 100644 index 0000000..0aa0fc2 --- /dev/null +++ b/docker/init-db.sql @@ -0,0 +1 @@ +CREATE EXTENSION IF NOT EXISTS vector; diff --git a/docker/web.Dockerfile b/docker/web.Dockerfile new file mode 100644 index 0000000..4d92b4f --- /dev/null +++ b/docker/web.Dockerfile @@ -0,0 +1,22 @@ +FROM node:22-alpine AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + +FROM base AS builder +WORKDIR /app +COPY pnpm-workspace.yaml pnpm-lock.yaml package.json ./ +COPY apps/web/package.json ./apps/web/ +COPY packages/ ./packages/ +RUN pnpm install --frozen-lockfile +COPY . . +RUN pnpm --filter @mosaic/web build + +FROM base AS runner +WORKDIR /app +ENV NODE_ENV=production +COPY --from=builder /app/apps/web/.next/standalone ./ +COPY --from=builder /app/apps/web/.next/static ./apps/web/.next/static +COPY --from=builder /app/apps/web/public ./apps/web/public +EXPOSE 3000 +CMD ["node", "apps/web/server.js"] diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..d8bf589 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,26 @@ +import tseslint from 'typescript-eslint'; +import tsPlugin from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; + +export default tseslint.config( + { + ignores: ['**/dist/**', '**/node_modules/**', '**/.next/**', '**/coverage/**'], + }, + { + files: ['**/*.{ts,tsx}'], + plugins: { + '@typescript-eslint': tsPlugin, + }, + languageOptions: { + parser: tsParser, + parserOptions: { + projectService: true, + }, + }, + rules: { + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/consistent-type-imports': 'error', + }, + }, +); diff --git a/package.json b/package.json new file mode 100644 index 0000000..4b0ec68 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "mosaic-stack", + "private": true, + "packageManager": "pnpm@10.6.2", + "scripts": { + "build": "turbo run build", + "dev": "turbo run dev", + "lint": "turbo run lint", + "typecheck": "turbo run typecheck", + "test": "turbo run test", + "format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"", + "format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,json,md}\"", + "prepare": "husky" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", + "eslint": "^9.0.0", + "husky": "^9.0.0", + "lint-staged": "^15.0.0", + "prettier": "^3.0.0", + "turbo": "^2.0.0", + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/agent/package.json b/packages/agent/package.json new file mode 100644 index 0000000..551b218 --- /dev/null +++ b/packages/agent/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mosaic/agent", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@mosaic/types": "workspace:*" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/agent/src/index.ts b/packages/agent/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/agent/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/agent/tsconfig.json b/packages/agent/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/agent/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/agent/vitest.config.ts b/packages/agent/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/agent/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/auth/package.json b/packages/auth/package.json new file mode 100644 index 0000000..f01d91b --- /dev/null +++ b/packages/auth/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/auth", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/auth/src/index.ts b/packages/auth/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/auth/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/auth/tsconfig.json b/packages/auth/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/auth/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/auth/vitest.config.ts b/packages/auth/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/auth/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/brain/package.json b/packages/brain/package.json new file mode 100644 index 0000000..42f6a7f --- /dev/null +++ b/packages/brain/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mosaic/brain", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@mosaic/types": "workspace:*" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/brain/src/index.ts b/packages/brain/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/brain/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/brain/tsconfig.json b/packages/brain/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/brain/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/brain/vitest.config.ts b/packages/brain/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/brain/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/cli/package.json b/packages/cli/package.json new file mode 100644 index 0000000..3b11023 --- /dev/null +++ b/packages/cli/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mosaic/cli", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "bin": { + "mosaic": "dist/index.js" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/cli/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/cli/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/cli/vitest.config.ts b/packages/cli/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/cli/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/coord/package.json b/packages/coord/package.json new file mode 100644 index 0000000..5b453fb --- /dev/null +++ b/packages/coord/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mosaic/coord", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@mosaic/types": "workspace:*" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/coord/src/index.ts b/packages/coord/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/coord/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/coord/tsconfig.json b/packages/coord/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/coord/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/coord/vitest.config.ts b/packages/coord/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/coord/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/db/package.json b/packages/db/package.json new file mode 100644 index 0000000..8144db7 --- /dev/null +++ b/packages/db/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/db", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/db/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/db/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/db/vitest.config.ts b/packages/db/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/db/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/design-tokens/package.json b/packages/design-tokens/package.json new file mode 100644 index 0000000..2bb5dbe --- /dev/null +++ b/packages/design-tokens/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/design-tokens", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/design-tokens/src/index.ts b/packages/design-tokens/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/design-tokens/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/design-tokens/tsconfig.json b/packages/design-tokens/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/design-tokens/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/design-tokens/vitest.config.ts b/packages/design-tokens/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/design-tokens/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/log/package.json b/packages/log/package.json new file mode 100644 index 0000000..45c1e30 --- /dev/null +++ b/packages/log/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/log", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/log/src/index.ts b/packages/log/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/log/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/log/tsconfig.json b/packages/log/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/log/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/log/vitest.config.ts b/packages/log/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/log/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/memory/package.json b/packages/memory/package.json new file mode 100644 index 0000000..2c56925 --- /dev/null +++ b/packages/memory/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mosaic/memory", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@mosaic/types": "workspace:*" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/memory/src/index.ts b/packages/memory/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/memory/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/memory/tsconfig.json b/packages/memory/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/memory/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/memory/vitest.config.ts b/packages/memory/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/memory/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/mosaic/package.json b/packages/mosaic/package.json new file mode 100644 index 0000000..13714b0 --- /dev/null +++ b/packages/mosaic/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/mosaic", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/mosaic/src/index.ts b/packages/mosaic/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/mosaic/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/mosaic/tsconfig.json b/packages/mosaic/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/mosaic/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/mosaic/vitest.config.ts b/packages/mosaic/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/mosaic/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/prdy/package.json b/packages/prdy/package.json new file mode 100644 index 0000000..a90d2cc --- /dev/null +++ b/packages/prdy/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/prdy", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/prdy/src/index.ts b/packages/prdy/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/prdy/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/prdy/tsconfig.json b/packages/prdy/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/prdy/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/prdy/vitest.config.ts b/packages/prdy/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/prdy/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/quality-rails/package.json b/packages/quality-rails/package.json new file mode 100644 index 0000000..96bc17a --- /dev/null +++ b/packages/quality-rails/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/quality-rails", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/quality-rails/src/index.ts b/packages/quality-rails/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/quality-rails/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/quality-rails/tsconfig.json b/packages/quality-rails/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/quality-rails/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/quality-rails/vitest.config.ts b/packages/quality-rails/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/quality-rails/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/queue/package.json b/packages/queue/package.json new file mode 100644 index 0000000..ad53891 --- /dev/null +++ b/packages/queue/package.json @@ -0,0 +1,25 @@ +{ + "name": "@mosaic/queue", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@mosaic/types": "workspace:*" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/queue/src/index.ts b/packages/queue/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/queue/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/queue/tsconfig.json b/packages/queue/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/queue/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/queue/vitest.config.ts b/packages/queue/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/queue/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/packages/types/package.json b/packages/types/package.json new file mode 100644 index 0000000..5db2a70 --- /dev/null +++ b/packages/types/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/types", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/packages/types/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/packages/types/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/types/vitest.config.ts b/packages/types/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/packages/types/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/plugins/discord/package.json b/plugins/discord/package.json new file mode 100644 index 0000000..9816027 --- /dev/null +++ b/plugins/discord/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/discord-plugin", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/plugins/discord/src/index.ts b/plugins/discord/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/plugins/discord/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/plugins/discord/tsconfig.json b/plugins/discord/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/plugins/discord/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/plugins/discord/vitest.config.ts b/plugins/discord/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/plugins/discord/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/plugins/telegram/package.json b/plugins/telegram/package.json new file mode 100644 index 0000000..4dcdc8b --- /dev/null +++ b/plugins/telegram/package.json @@ -0,0 +1,22 @@ +{ + "name": "@mosaic/telegram-plugin", + "version": "0.0.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint src", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "devDependencies": { + "typescript": "^5.8.0", + "vitest": "^2.0.0" + } +} diff --git a/plugins/telegram/src/index.ts b/plugins/telegram/src/index.ts new file mode 100644 index 0000000..0c18d5d --- /dev/null +++ b/plugins/telegram/src/index.ts @@ -0,0 +1 @@ +export const VERSION = '0.0.0'; diff --git a/plugins/telegram/tsconfig.json b/plugins/telegram/tsconfig.json new file mode 100644 index 0000000..c973386 --- /dev/null +++ b/plugins/telegram/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/plugins/telegram/vitest.config.ts b/plugins/telegram/vitest.config.ts new file mode 100644 index 0000000..8e730d5 --- /dev/null +++ b/plugins/telegram/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + }, +}); diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..93e6fa0 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - 'apps/*' + - 'packages/*' + - 'plugins/*' diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..519b744 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "strict": true, + "target": "ES2022", + "lib": ["ES2022"], + "module": "NodeNext", + "moduleResolution": "NodeNext", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "incremental": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noUncheckedIndexedAccess": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "exclude": ["node_modules", "dist"] +} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..7646c1f --- /dev/null +++ b/turbo.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://turbo.build/schema.json", + "ui": "tui", + "tasks": { + "build": { + "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$", ".env*"], + "outputs": ["dist/**"] + }, + "lint": { + "dependsOn": ["^lint"] + }, + "typecheck": { + "dependsOn": ["^typecheck"] + }, + "test": { + "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$"], + "outputs": ["coverage/**"] + }, + "dev": { + "cache": false, + "persistent": true + } + } +} diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 0000000..8849cbb --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,7 @@ +import { defineWorkspace } from 'vitest/config'; + +export default defineWorkspace([ + 'packages/*/vitest.config.ts', + 'apps/*/vitest.config.ts', + 'plugins/*/vitest.config.ts', +]);