mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 21:01:08 +02:00
Local dev secrets like MANA_STT_API_KEY had no persistent home — they lived only in the gitignored, generator-overwritten per-app .env files. Every `pnpm setup:env` wiped them, so devs had to re-paste keys after any env regeneration. Same recurring friction for MANA_LLM_API_KEY, MANA_AUTH_KEK, OAuth keys, etc. New layer: `.env.secrets` at the repo root. - Gitignored, optional, never required for the build to pass - Read by generate-env.mjs AFTER .env.development; non-empty values override the matching key, so the merged result drives every per-app .env the generator writes - Empty values fall through to the .env.development defaults — a freshly-copied .env.secrets.example is a no-op - One source of truth for all dev secrets, propagated to every app with one `pnpm setup:env` Files: - `.env.secrets.example` — committed template documenting all known secret keys (mana-stt, mana-llm, auth KEK, sync JWT, MinIO, third- party APIs). Devs `cp .env.secrets.example .env.secrets` and fill in. - `.gitignore` — ignores .env.secrets, allows .env.secrets.example - `scripts/generate-env.mjs` — loads .env.secrets if present, prints "Loaded N secrets from .env.secrets" so devs see the override taking effect - `scripts/setup-secrets.mjs` + `pnpm setup:secrets` — convenience script that SSHes to mana-server, greps the prod .env for the keys defined in .env.secrets.example, and writes them locally. Confirms before overwriting an existing .env.secrets unless --force is set; reports which keys couldn't be found on the remote so devs know what's left to fill manually - `docs/LOCAL_DEVELOPMENT.md` + `docs/ENVIRONMENT_VARIABLES.md` — walk-through and architecture diagram update Verified end-to-end: - `rm .env.secrets apps/mana/apps/web/.env && pnpm setup:env` → STT key empty (no regression for devs who haven't opted in) - `pnpm setup:secrets --force && pnpm setup:env` → STT key propagated, "Loaded 3 secrets from .env.secrets" in output - POST /api/v1/voice/transcribe with a real audio file → full transcript back via gpu-stt.mana.how, end-to-end working Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
301 lines
22 KiB
JSON
301 lines
22 KiB
JSON
{
|
|
"name": "mana-monorepo",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Mana Monorepo containing mana, cards, picture, chat, zitare, and presi",
|
|
"scripts": {
|
|
"dev": "turbo run dev",
|
|
"build": "turbo run build",
|
|
"test": "turbo run test",
|
|
"lint": "turbo run lint",
|
|
"lint:root": "eslint . --cache",
|
|
"lint:fix": "eslint . --fix --cache",
|
|
"type-check": "turbo run type-check --filter='./apps/**' --filter='./packages/**' --filter='./services/**'",
|
|
"type-check:all": "turbo run type-check",
|
|
"clean": "turbo run clean",
|
|
"format": "prettier --config .prettierrc.json --write \"**/*.{ts,tsx,js,jsx,json,md,svelte,astro}\"",
|
|
"format:check": "prettier --config .prettierrc.json --check \"**/*.{ts,tsx,js,jsx,json,md,svelte,astro}\"",
|
|
"check:status": "bash scripts/check-status.sh",
|
|
"validate:dockerfiles": "node scripts/validate-dockerfiles.mjs",
|
|
"audit:deps": "node scripts/audit-workspace-deps.mjs",
|
|
"generate:dockerfiles": "node scripts/generate-dockerfiles.mjs",
|
|
"setup:env": "node scripts/generate-env.mjs",
|
|
"setup:secrets": "node scripts/setup-secrets.mjs",
|
|
"setup:db": "./scripts/setup-databases.sh",
|
|
"setup:db:chat": "./scripts/setup-databases.sh chat",
|
|
"setup:db:auth": "./scripts/setup-databases.sh auth",
|
|
"seed:dev-user": "pnpm --filter @mana/auth db:seed:dev",
|
|
"build:packages": "pnpm --filter '@mana/*' build",
|
|
"postinstall": "node scripts/generate-env.mjs || true && pnpm run build:packages || true",
|
|
"mana:dev": "turbo run dev --filter=mana...",
|
|
"cards:dev": "turbo run dev --filter=cards...",
|
|
"picture:dev": "turbo run dev --filter=picture...",
|
|
"chat:dev": "turbo run dev --filter=chat...",
|
|
"dev:mana:web": "pnpm --filter @mana/web dev",
|
|
"dev:mana:landing": "pnpm --filter @mana/landing dev",
|
|
"dev:mana:mobile": "pnpm --filter @mana/mobile dev",
|
|
"dev:mana:app": "pnpm --filter @mana/web dev",
|
|
"dev:mana:full": "concurrently -n web,servers -c cyan,yellow \"pnpm dev:mana:web\" \"pnpm dev:mana:servers\"",
|
|
"dev:mana:all": "pnpm docker:up && pnpm setup:db && pnpm dev:mana:full",
|
|
"dev:cards:web": "pnpm --filter @cards/web dev",
|
|
"dev:cards:landing": "pnpm --filter @cards/landing dev",
|
|
"dev:cards:mobile": "pnpm --filter @cards/mobile dev",
|
|
"dev:cards:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:cards:web\"",
|
|
"dev:picture:web": "pnpm --filter @picture/web dev",
|
|
"dev:picture:landing": "pnpm --filter @picture/landing dev",
|
|
"dev:picture:mobile": "pnpm --filter @picture/mobile dev",
|
|
"dev:picture:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:picture:web\"",
|
|
"dev:picture:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:chat:mobile": "pnpm --filter @chat/mobile dev",
|
|
"dev:chat:web": "pnpm --filter @chat/web dev",
|
|
"dev:chat:landing": "pnpm --filter @chat/landing dev",
|
|
"dev:chat:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:chat:web\"",
|
|
"dev:auth": "cd services/mana-auth && bun run --watch src/index.ts",
|
|
"dev:events": "cd services/mana-events && bun run --watch src/index.ts",
|
|
"dev:sync": "cd services/mana-sync && JWKS_URL=http://localhost:3001/api/auth/jwks DATABASE_URL=postgresql://mana:devpassword@localhost:5432/mana_sync ./server",
|
|
"dev:sync:build": "cd services/mana-sync && go build -o server ./cmd/server",
|
|
"dev:chat:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"memoro:dev": "turbo run dev --filter=memoro...",
|
|
"dev:memoro:mobile": "pnpm --filter @memoro/mobile start",
|
|
"dev:memoro:landing": "pnpm --filter @memoro/landing dev",
|
|
"zitare:dev": "turbo run dev --filter=zitare...",
|
|
"dev:zitare:mobile": "pnpm --filter @zitare/mobile dev",
|
|
"dev:zitare:web": "pnpm --filter @zitare/web dev",
|
|
"dev:zitare:landing": "pnpm --filter @zitare/landing dev",
|
|
"dev:zitare:app": "pnpm dev:zitare:web",
|
|
"dev:zitare:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:zitare:web\"",
|
|
"contacts:dev": "turbo run dev --filter=contacts...",
|
|
"dev:contacts:mobile": "pnpm --filter @contacts/mobile dev",
|
|
"dev:contacts:web": "pnpm --filter @contacts/web dev",
|
|
"dev:contacts:landing": "pnpm --filter @contacts/landing dev",
|
|
"dev:contacts:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:contacts:web\"",
|
|
"dev:contacts:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"calendar:dev": "turbo run dev --filter=calendar...",
|
|
"dev:calendar:mobile": "pnpm --filter @calendar/mobile dev",
|
|
"dev:calendar:web": "pnpm --filter @calendar/web dev",
|
|
"dev:calendar:landing": "pnpm --filter @calendar/landing dev",
|
|
"dev:calendar:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:calendar:web\"",
|
|
"dev:calendar:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"mail:dev": "turbo run dev --filter=mail...",
|
|
"dev:mail:mobile": "pnpm --filter @mail/mobile dev",
|
|
"dev:mail:web": "pnpm --filter @mail/web dev",
|
|
"dev:mail:landing": "pnpm --filter @mail/landing dev",
|
|
"todo:dev": "turbo run dev --filter=todo...",
|
|
"dev:todo:web": "pnpm --filter @todo/web dev",
|
|
"dev:todo:landing": "pnpm --filter @todo/landing dev",
|
|
"dev:todo:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:todo:web\"",
|
|
"dev:todo:full": "./scripts/setup-databases.sh auth && concurrently -n auth,sync,api,web -c blue,magenta,yellow,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\" \"pnpm dev:todo:web\"",
|
|
"dev:todo:local": "concurrently -n sync,api,web -c magenta,yellow,cyan \"pnpm dev:sync\" \"pnpm dev:api\" \"pnpm dev:todo:web\"",
|
|
"dev:memoro:web": "pnpm --filter @memoro/web dev",
|
|
"dev:memoro:server": "cd apps/memoro/apps/server && bun run --watch src/index.ts",
|
|
"dev:memoro:audio-server": "cd apps/memoro/apps/audio-server && bun run --watch src/index.ts",
|
|
"dev:memoro:app": "concurrently -n server,audio,web -c yellow,green,cyan \"pnpm dev:memoro:server\" \"pnpm dev:memoro:audio-server\" \"pnpm dev:memoro:web\"",
|
|
"dev:memoro:full": "concurrently -n auth,server,audio,web -c blue,yellow,green,cyan \"pnpm dev:auth\" \"pnpm dev:memoro:server\" \"pnpm dev:memoro:audio-server\" \"pnpm dev:memoro:web\"",
|
|
"dev:uload:web": "pnpm --filter @uload/web dev",
|
|
"dev:uload:server": "cd apps/uload/apps/server && bun run --watch src/index.ts",
|
|
"dev:uload:landing": "pnpm --filter @uload/landing dev",
|
|
"dev:uload:local": "concurrently -n sync,server,web -c magenta,yellow,cyan \"pnpm dev:sync\" \"pnpm dev:uload:server\" \"pnpm dev:uload:web\"",
|
|
"dev:uload:full": "./scripts/setup-databases.sh uload && ./scripts/setup-databases.sh auth && concurrently -n auth,sync,server,web -c blue,magenta,yellow,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:uload:server\" \"pnpm dev:uload:web\"",
|
|
"dev:moodlit:web": "pnpm --filter @moodlit/web dev",
|
|
"dev:moodlit:landing": "pnpm --filter @moodlit/landing dev",
|
|
"dev:moodlit:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:news:web": "pnpm --filter @news/web dev",
|
|
"dev:news:landing": "pnpm --filter @news/landing dev",
|
|
"dev:news:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:news:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"photos:dev": "turbo run dev --filter=photos...",
|
|
"dev:photos:web": "pnpm --filter @photos/web dev",
|
|
"dev:photos:app": "pnpm dev:photos:web",
|
|
"dev:photos:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:photos:web\"",
|
|
"dev:tags-test": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"inventar:dev": "turbo run dev --filter=inventar...",
|
|
"dev:inventar:web": "pnpm --filter @inventar/web dev",
|
|
"times:dev": "turbo run dev --filter=times...",
|
|
"dev:times:web": "pnpm --filter @times/web dev",
|
|
"dev:times:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:times:web\"",
|
|
"manavoxel:dev": "turbo run dev --filter=manavoxel...",
|
|
"dev:manavoxel:web": "pnpm --filter @manavoxel/web dev",
|
|
"dev:manavoxel:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:manavoxel:web\"",
|
|
"calc:dev": "turbo run dev --filter=calc...",
|
|
"dev:calc:web": "pnpm --filter @calc/web dev",
|
|
"dev:calc:app": "pnpm dev:calc:web",
|
|
"dev:calc:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:calc:web\"",
|
|
"guides:dev": "turbo run dev --filter=guides...",
|
|
"dev:guides:web": "pnpm --filter @guides/web dev",
|
|
"dev:guides:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:guides:web\"",
|
|
"dev:guides:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:guides:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"moodlit:dev": "turbo run dev --filter=moodlit...",
|
|
"dev:moodlit:mobile": "pnpm --filter @moodlit/mobile dev",
|
|
"dev:moodlit:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:moodlit:web\"",
|
|
"finance:dev": "turbo run dev --filter=finance...",
|
|
"dev:finance:web": "pnpm --filter @finance/web dev",
|
|
"dev:finance:mobile": "pnpm --filter @finance/mobile dev",
|
|
"dev:finance:landing": "pnpm --filter @finance/landing dev",
|
|
"voxel-lava:dev": "turbo run dev --filter=@voxel-lava/web",
|
|
"dev:voxel-lava:web": "pnpm --filter @voxel-lava/web dev",
|
|
"arcade:dev": "turbo run dev --filter=arcade...",
|
|
"dev:arcade:web": "pnpm --filter @arcade/web dev",
|
|
"dev:arcade:server": "pnpm --filter @arcade/server dev",
|
|
"dev:arcade:app": "turbo run dev --filter=@arcade/web --filter=@arcade/server",
|
|
"figgos:dev": "turbo run dev --filter=figgos...",
|
|
"dev:figgos:mobile": "pnpm --filter @figgos/mobile dev",
|
|
"dev:figgos:web": "pnpm --filter @figgos/web dev",
|
|
"dev:figgos:ios": "pnpm --filter @figgos/mobile ios",
|
|
"dev:figgos:android": "pnpm --filter @figgos/mobile android",
|
|
"worldream:dev": "turbo run dev --filter=worldream...",
|
|
"dev:worldream:web": "pnpm --filter @worldream/web dev",
|
|
"context:dev": "turbo run dev --filter=context...",
|
|
"dev:context:mobile": "pnpm --filter @context/mobile dev",
|
|
"dev:context:web": "pnpm --filter @context/web dev",
|
|
"dev:context:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:context:web\"",
|
|
"dev:context:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"setup:db:context": "./scripts/setup-databases.sh context",
|
|
"citycorners:dev": "turbo run dev --filter=citycorners...",
|
|
"dev:citycorners:landing": "pnpm --filter @citycorners/landing dev",
|
|
"dev:citycorners:web": "pnpm --filter @citycorners/web dev",
|
|
"dev:citycorners:app": "pnpm dev:citycorners:web",
|
|
"dev:citycorners:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:citycorners:web\"",
|
|
"deploy:landing:citycorners": "pnpm --filter @citycorners/landing build && npx wrangler pages deploy apps/citycorners/apps/landing/dist --project-name=citycorners-landing",
|
|
"planta:dev": "turbo run dev --filter=planta...",
|
|
"dev:planta:web": "pnpm --filter @planta/web dev",
|
|
"dev:planta:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:planta:web\"",
|
|
"dev:planta:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"nutriphi:dev": "turbo run dev --filter=nutriphi...",
|
|
"dev:nutriphi:web": "pnpm --filter @nutriphi/web dev",
|
|
"dev:nutriphi:landing": "pnpm --filter @nutriphi/landing dev",
|
|
"dev:nutriphi:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:nutriphi:web\"",
|
|
"dev:nutriphi:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"deploy:landing:nutriphi": "pnpm --filter @nutriphi/landing build && npx wrangler pages deploy apps/nutriphi/apps/landing/dist --project-name=nutriphi-landing",
|
|
"presi:dev": "turbo run dev --filter=presi...",
|
|
"dev:presi:web": "pnpm --filter @presi/web dev",
|
|
"dev:presi:landing": "pnpm --filter @presi/landing dev",
|
|
"dev:presi:app": "pnpm dev:presi:web",
|
|
"dev:presi:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"storage:dev": "turbo run dev --filter=storage...",
|
|
"dev:storage:web": "pnpm --filter @storage/web dev",
|
|
"dev:storage:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:storage:web\"",
|
|
"dev:storage:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"music:dev": "turbo run dev --filter=music...",
|
|
"dev:music:web": "pnpm --filter @music/web dev",
|
|
"dev:music:landing": "pnpm --filter @music/landing dev",
|
|
"dev:music:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:music:web\"",
|
|
"dev:music:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"traces:dev": "turbo run dev --filter=traces...",
|
|
"dev:traces:mobile": "pnpm --filter @traces/mobile dev",
|
|
"dev:traces:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:landing-builder": "pnpm --filter @mana-landing-builder/service start:dev",
|
|
"docker:up": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis minio minio-init",
|
|
"docker:up:infra": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis minio minio-init",
|
|
"docker:up:db": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis",
|
|
"docker:up:auth": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile auth up -d",
|
|
"docker:up:chat": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile chat up -d",
|
|
"docker:up:all": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile all up -d",
|
|
"docker:down": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile all down",
|
|
"docker:logs": "docker compose -f docker-compose.dev.yml --env-file .env.development logs -f",
|
|
"docker:logs:auth": "docker compose -f docker-compose.dev.yml --env-file .env.development logs -f mana-auth",
|
|
"docker:logs:chat": "docker compose -f docker-compose.dev.yml --env-file .env.development logs -f chat-backend",
|
|
"docker:ps": "docker compose -f docker-compose.dev.yml --env-file .env.development ps -a",
|
|
"docker:clean": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile all down -v",
|
|
"deploy:landing:uload": "pnpm --filter @uload/landing build && npx wrangler pages deploy apps/uload/apps/landing/dist --project-name=uload-landing",
|
|
"deploy:landing:todo": "pnpm --filter @todo/landing build && npx wrangler pages deploy apps/todo/apps/landing/dist --project-name=todo-landing",
|
|
"deploy:landing:contacts": "pnpm --filter @contacts/landing build && npx wrangler pages deploy apps/contacts/apps/landing/dist --project-name=contacts-landing",
|
|
"deploy:landing:calendar": "pnpm --filter @calendar/landing build && npx wrangler pages deploy apps/calendar/apps/landing/dist --project-name=calendars-landing",
|
|
"deploy:landing:chat": "pnpm --filter @chat/landing build && npx wrangler pages deploy apps/chat/apps/landing/dist --project-name=chat-landing",
|
|
"deploy:landing:picture": "pnpm --filter @picture/landing build && npx wrangler pages deploy apps/picture/apps/landing/dist --project-name=picture-landing",
|
|
"deploy:landing:mana": "pnpm --filter @mana/landing build && npx wrangler pages deploy apps/mana/apps/landing/dist --project-name=mana-landing",
|
|
"deploy:landing:cards": "pnpm --filter @cards/landing build && npx wrangler pages deploy apps/cards/apps/landing/dist --project-name=cards-landing",
|
|
"deploy:landing:zitare": "pnpm --filter @zitare/landing build && npx wrangler pages deploy apps/zitare/apps/landing/dist --project-name=zitare-landing",
|
|
"deploy:landing:presi": "pnpm --filter @presi/landing build && npx wrangler pages deploy apps/presi/apps/landing/dist --project-name=presi-landing",
|
|
"deploy:landing:mail": "pnpm --filter @mail/landing build && npx wrangler pages deploy apps/mail/apps/landing/dist --project-name=mail-landing",
|
|
"deploy:landing:moodlit": "pnpm --filter @moodlit/landing build && npx wrangler pages deploy apps/moodlit/apps/landing/dist --project-name=moodlit-landing",
|
|
"deploy:landing:it": "pnpm --filter @mana/it-landing build && npx wrangler pages deploy services/it-landing/dist --project-name=it-landing",
|
|
"deploy:landing:all": "pnpm deploy:landing:calendar && pnpm deploy:landing:chat && pnpm deploy:landing:picture && pnpm deploy:landing:mana && pnpm deploy:landing:cards && pnpm deploy:landing:zitare && pnpm deploy:landing:presi && pnpm deploy:landing:mail && pnpm deploy:landing:nutriphi && pnpm deploy:landing:contacts && pnpm deploy:landing:todo",
|
|
"dev:docs": "pnpm --filter @mana/docs dev",
|
|
"build:docs": "pnpm --filter @mana/docs build",
|
|
"deploy:docs": "pnpm --filter @mana/docs build && npx wrangler pages deploy apps/docs/dist --project-name=mana-docs",
|
|
"cf:login": "npx wrangler login",
|
|
"cf:projects:list": "npx wrangler pages project list",
|
|
"cf:projects:create": "echo 'Creating Cloudflare Pages projects...' && npx wrangler pages project create chat-landing --production-branch=main && npx wrangler pages project create picture-landing --production-branch=main && npx wrangler pages project create mana-landing --production-branch=main && npx wrangler pages project create cards-landing --production-branch=main && npx wrangler pages project create zitare-landing --production-branch=main",
|
|
"dev:search": "cd services/mana-search && go run ./cmd/server",
|
|
"dev:crawler": "cd services/mana-crawler && go run ./cmd/server",
|
|
"dev:notify": "cd services/mana-notify && go run ./cmd/server",
|
|
"questions:dev": "turbo run dev --filter=questions...",
|
|
"dev:questions:web": "pnpm --filter @questions/web dev",
|
|
"dev:questions:app": "concurrently -n api,web -c yellow,cyan \"pnpm dev:api\" \"pnpm dev:questions:web\"",
|
|
"dev:questions:full": "concurrently -n auth,sync,api -c blue,magenta,yellow \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:skilltree:web": "pnpm --filter @skilltree/web dev",
|
|
"dev:skilltree:app": "pnpm dev:skilltree:web",
|
|
"dev:skilltree:full": "concurrently -n auth,sync,web -c blue,magenta,cyan \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:skilltree:web\"",
|
|
"dev:llm-playground": "pnpm --filter @mana-llm/playground dev",
|
|
"build:llm-playground": "pnpm --filter @mana-llm/playground build",
|
|
"prepare": "husky",
|
|
"dev:api": "cd apps/api && bun run --hot src/index.ts",
|
|
"dev:calendar:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:chat:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:contacts:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:context:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:cards:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:music:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:nutriphi:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:picture:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:planta:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:questions:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:storage:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:presi:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:traces:local": "concurrently -n sync,api -c magenta,yellow \"pnpm dev:sync\" \"pnpm dev:api\"",
|
|
"dev:zitare:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:zitare:web\"",
|
|
"dev:skilltree:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:skilltree:web\"",
|
|
"dev:photos:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:photos:web\"",
|
|
"dev:citycorners:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:citycorners:web\"",
|
|
"dev:inventar:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:inventar:web\"",
|
|
"dev:times:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:times:web\"",
|
|
"dev:calc:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:calc:web\"",
|
|
"dev:manavoxel:local": "concurrently -n sync,web -c magenta,cyan \"pnpm dev:sync\" \"pnpm dev:manavoxel:web\"",
|
|
"dev:media": "cd services/mana-media && pnpm dev",
|
|
"dev:mana:servers": "concurrently -n auth,sync,api,media -c blue,magenta,yellow,green \"pnpm dev:auth\" \"pnpm dev:sync\" \"pnpm dev:api\" \"pnpm dev:media\""
|
|
},
|
|
"devDependencies": {
|
|
"@mana/eslint-config": "workspace:*",
|
|
"@eslint/js": "^9.39.1",
|
|
"concurrently": "^9.2.0",
|
|
"eslint": "^9.39.1",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-prettier": "^5.5.4",
|
|
"globals": "^16.5.0",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^16.2.7",
|
|
"prettier": "^3.3.3",
|
|
"prettier-plugin-astro": "^0.14.1",
|
|
"prettier-plugin-svelte": "^3.4.0",
|
|
"turbo": "^2.3.0",
|
|
"typescript": "^5.9.3",
|
|
"typescript-eslint": "^8.48.1",
|
|
"wrangler": "^4.51.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
},
|
|
"packageManager": "pnpm@9.15.0",
|
|
"pnpm": {
|
|
"peerDependencyRules": {
|
|
"allowedVersions": {
|
|
"react-native>react": ">=18.0.0",
|
|
"react-native>@types/react": ">=18.0.0",
|
|
"@sveltejs/vite-plugin-svelte>vite": ">=6.0.0",
|
|
"@sveltejs/vite-plugin-svelte-inspector>vite": ">=6.0.0"
|
|
}
|
|
},
|
|
"neverBuiltDependencies": [
|
|
"cpu-features",
|
|
"ssh2",
|
|
"sharp"
|
|
],
|
|
"patchedDependencies": {},
|
|
"overrides": {
|
|
"cpu-features": "npm:empty-npm-package@1.0.0",
|
|
"ssh2": "npm:empty-npm-package@1.0.0"
|
|
}
|
|
}
|
|
}
|