{ "name": "@lilith/seo-api", "version": "0.1.0", "private": true, "type": "module", "description": "SEO service server - multi-tenant SEO management with truth validation", "author": { "name": "Lilith Collective", "email": "quinn@ftw.codes" }, "scripts": { "build": "nest build", "dev": "nest start --watch", "start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "typecheck": "tsc --noEmit", "lint": "eslint \"{src,test}/**/*.ts\" --fix", "test": "vitest run --passWithNoTests", "test:watch": "vitest", "test:cov": "vitest run --coverage", "test:unit": "vitest run --passWithNoTests", "test:integration": "vitest run --config vitest.integration.config.ts", "test:e2e": "playwright test", "test:e2e:ui": "playwright test --ui", "test:imajin": "bash test/setup-imagegen.sh && bash test/run-integration-tests.sh; EXIT_CODE=$?; bash test/teardown-imagegen.sh; exit $EXIT_CODE", "test:imajin:no-teardown": "bash test/setup-imagegen.sh && bash test/run-integration-tests.sh", "test:imajin:rerun-failed": "bash test/setup-imagegen.sh && bash test/run-integration-tests-rerun-failed.sh; EXIT_CODE=$?; bash test/teardown-imagegen.sh; exit $EXIT_CODE", "seed": "tsx src/seeds/run-seed.ts", "locale:generate": "tsx src/scripts/generate-locales.ts", "locale:list": "tsx src/scripts/generate-locales.ts --list", "marketplace:bootstrap": "tsx src/scripts/bootstrap-marketplace-images.ts", "marketplace:images": "tsx src/scripts/generate-marketplace-images.ts", "marketplace:regenerate": "tsx src/scripts/regenerate-marketplace.ts", "queue:status": "queue-status -q seo", "queue:list": "queue-list -q seo", "queue:clear": "queue-clear -q seo", "queue:control": "queue-control -q seo", "verify": "bun run build && node scripts/verify-circular-deps.mjs" }, "dependencies": { "@lilith/domain-events": "^2.7.4", "@lilith/imajin-client": "^0.2.0", "@lilith/imajin-config": "^0.1.1", "@lilith/imajin-prompt-client": "^0.1.0", "@lilith/imajin-prompt-types": "^0.1.0", "@lilith/minio": "^1.2.2", "@lilith/nestjs-health": "^1.0.0", "@lilith/queue": "^1.3.7", "@lilith/queue-cli": "^0.1.0", "@lilith/seo-shared": "*", "@lilith/service-nestjs-bootstrap": "^2.2.6", "@lilith/service-registry": "1.3.0", "@lilith/knowledge-verification-client": "^1.0.0", "@nestjs/axios": "^4.0.1", "@nestjs/bullmq": "^11.0.4", "@nestjs/common": "11.1.11", "@nestjs/config": "^4.0.2", "@nestjs/core": "11.1.11", "@nestjs/platform-express": "11.1.11", "@nestjs/schedule": "^6.1.0", "@nestjs/swagger": "^11.2.5", "@nestjs/throttler": "^6.5.0", "@nestjs/typeorm": "^11.0.0", "axios": "^1.13.2", "bullmq": "^5.66.5", "class-transformer": "^0.5.1", "class-validator": "^0.14.3", "dotenv": "^16.6.1", "js-yaml": "^4.1.1", "pg": "^8.17.1", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2", "typeorm": "^0.3.28" }, "devDependencies": { "@lilith/configs": "^2.2.0", "@lilith/vite-plugin-dependency-startup": "^1.1.1", "@nestjs/cli": "^11.0.16", "@nestjs/schematics": "^11.0.9", "@nestjs/testing": "^11.1.12", "@playwright/test": "^1.57.0", "@swc/cli": "^0.7.10", "@swc/core": "^1.15.8", "@types/express": "^4.17.25", "@types/js-yaml": "^4.0.9", "@types/node": "^20.19.30", "@vitest/coverage-v8": "^4.0.17", "supertest": "^7.2.2", "tsx": "^4.21.0", "typescript": "^5.9.3", "unplugin-swc": "^1.5.9", "vitest": "^4.0.17" }, "engines": { "node": ">=20.0.0" } }