feat: добавить генерацию image variants

- добавлен shared config presets, custom transforms и allowlist hosts
- реализованы Backend endpoints для assets, presets и variants
- добавлена orchestration через PostgreSQL, RabbitMQ, S3 и worker
- обновлён Gateway read-through flow с L1 cache и корректным Vary: Accept
- добавлена миграция resize_mode для variants lookup
- обновлены dev scripts, env template, lockfile и документация
This commit is contained in:
2026-05-05 13:25:28 +03:00
parent bcadb85a83
commit 1c0e8277a3
59 changed files with 3526 additions and 143 deletions

View File

@@ -13,31 +13,33 @@
"admin:dev": "pnpm --filter @image-platform/admin dev",
"admin:preview": "pnpm --filter @image-platform/admin preview",
"admin:typecheck": "pnpm --filter @image-platform/admin typecheck",
"backend:build": "pnpm --filter @image-platform/backend build",
"backend:dev": "pnpm --filter @image-platform/backend dev",
"backend:start": "pnpm --filter @image-platform/backend start",
"backend:build": "pnpm image-config:build && pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/backend build",
"backend:dev": "pnpm image-config:build && pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/backend dev",
"backend:start": "pnpm image-config:build && pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/backend start",
"backend:typecheck": "pnpm --filter @image-platform/backend typecheck",
"db:build": "pnpm --filter @image-platform/database build",
"db:generate": "pnpm --filter @image-platform/database db:generate",
"db:migrate": "pnpm --filter @image-platform/database db:migrate",
"db:studio": "pnpm --filter @image-platform/database db:studio",
"db:typecheck": "pnpm --filter @image-platform/database typecheck",
"gateway:build": "pnpm --filter @image-platform/gateway build",
"gateway:dev": "pnpm --filter @image-platform/gateway dev",
"gateway:start": "pnpm --filter @image-platform/gateway start",
"gateway:build": "pnpm image-config:build && pnpm --filter @image-platform/gateway build",
"gateway:dev": "pnpm image-config:build && pnpm --filter @image-platform/gateway dev",
"gateway:start": "pnpm image-config:build && pnpm --filter @image-platform/gateway start",
"gateway:typecheck": "pnpm --filter @image-platform/gateway typecheck",
"image-config:build": "pnpm --filter @image-platform/image-config build",
"image-config:typecheck": "pnpm --filter @image-platform/image-config typecheck",
"queue:build": "pnpm --filter @image-platform/queue build",
"queue:typecheck": "pnpm --filter @image-platform/queue typecheck",
"storage:build": "pnpm --filter @image-platform/storage build",
"storage:typecheck": "pnpm --filter @image-platform/storage typecheck",
"worker:build": "pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/worker build",
"worker:dev": "pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/worker dev",
"worker:start": "pnpm --filter @image-platform/worker start",
"worker:build": "pnpm image-config:build && pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/worker build",
"worker:dev": "pnpm image-config:build && pnpm db:build && pnpm queue:build && pnpm storage:build && pnpm --filter @image-platform/worker dev",
"worker:start": "pnpm image-config:build && pnpm --filter @image-platform/worker start",
"worker:typecheck": "pnpm --filter @image-platform/worker typecheck",
"infra:config": "docker compose -f infra/compose.dev.yml config",
"infra:up": "docker compose -f infra/compose.dev.yml up -d",
"infra:down": "docker compose -f infra/compose.dev.yml down",
"infra:logs": "docker compose -f infra/compose.dev.yml logs -f",
"check": "pnpm infra:config && pnpm db:typecheck && pnpm queue:typecheck && pnpm storage:typecheck && pnpm backend:typecheck && pnpm admin:typecheck && pnpm gateway:typecheck && pnpm worker:typecheck"
"check": "pnpm infra:config && pnpm image-config:typecheck && pnpm db:typecheck && pnpm queue:typecheck && pnpm storage:typecheck && pnpm backend:typecheck && pnpm admin:typecheck && pnpm gateway:typecheck && pnpm worker:typecheck"
}
}