mirror of
https://github.com/immich-app/immich.git
synced 2025-12-24 09:14:58 +03:00
We would like to move away from the concept of finding and removing pending jobs. The only place this is used is for album update notifications, and this is done so that users who initially uploaded assets to an album will also receive a notification if someone else then adds assets to the same album. This can also be achieved with a job for each recipient. Multiple jobs also has the advantage that it will scale better for albums with many users, it's possible to send notifications concurrently, retries are possible without sending duplicate notifications, and it's clear what recipient a job failed for.
163 lines
5.5 KiB
JSON
163 lines
5.5 KiB
JSON
{
|
|
"name": "immich",
|
|
"version": "1.132.3",
|
|
"description": "",
|
|
"author": "",
|
|
"private": true,
|
|
"license": "GNU Affero General Public License version 3",
|
|
"scripts": {
|
|
"build": "nest build",
|
|
"format": "prettier --check .",
|
|
"format:fix": "prettier --write .",
|
|
"start": "npm run start:dev",
|
|
"nest": "nest",
|
|
"start:dev": "nest start --watch --",
|
|
"start:debug": "nest start --debug 0.0.0.0:9230 --watch --",
|
|
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\" --max-warnings 0",
|
|
"lint:fix": "npm run lint -- --fix",
|
|
"check": "tsc --noEmit",
|
|
"check:code": "npm run format && npm run lint && npm run check",
|
|
"check:all": "npm run check:code && npm run test:cov",
|
|
"test": "vitest --config test/vitest.config.mjs",
|
|
"test:cov": "vitest --config test/vitest.config.mjs --coverage",
|
|
"test:medium": "vitest --config test/vitest.config.medium.mjs",
|
|
"typeorm": "typeorm",
|
|
"lifecycle": "node ./dist/utils/lifecycle.js",
|
|
"migrations:generate": "node ./dist/bin/migrations.js generate",
|
|
"migrations:create": "node ./dist/bin/migrations.js create",
|
|
"migrations:run": "node ./dist/bin/migrations.js run",
|
|
"schema:drop": "node ./dist/bin/migrations.js query 'DROP schema public cascade; CREATE schema public;'",
|
|
"schema:reset": "npm run schema:drop && npm run migrations:run",
|
|
"kysely:codegen": "npx kysely-codegen --include-pattern=\"(public|vectors).*\" --dialect postgres --url postgres://postgres:postgres@localhost/immich --log-level debug --out-file=./src/db.d.ts",
|
|
"sync:open-api": "node ./dist/bin/sync-open-api.js",
|
|
"sync:sql": "node ./dist/bin/sync-sql.js",
|
|
"email:dev": "email dev -p 3050 --dir src/emails",
|
|
"postinstall": "patch-package"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/bullmq": "^11.0.1",
|
|
"@nestjs/common": "^11.0.4",
|
|
"@nestjs/core": "^11.0.4",
|
|
"@nestjs/event-emitter": "^3.0.0",
|
|
"@nestjs/platform-express": "^11.0.4",
|
|
"@nestjs/platform-socket.io": "^11.0.4",
|
|
"@nestjs/schedule": "^5.0.0",
|
|
"@nestjs/swagger": "^11.0.2",
|
|
"@nestjs/websockets": "^11.0.4",
|
|
"@opentelemetry/auto-instrumentations-node": "^0.58.0",
|
|
"@opentelemetry/context-async-hooks": "^2.0.0",
|
|
"@opentelemetry/exporter-prometheus": "^0.200.0",
|
|
"@opentelemetry/sdk-node": "^0.200.0",
|
|
"@react-email/components": "^0.0.36",
|
|
"@socket.io/redis-adapter": "^8.3.0",
|
|
"archiver": "^7.0.0",
|
|
"async-lock": "^1.4.0",
|
|
"bcrypt": "^5.1.1",
|
|
"bullmq": "^5.51.0",
|
|
"chokidar": "^3.5.3",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.0",
|
|
"compression": "^1.8.0",
|
|
"cookie": "^1.0.2",
|
|
"cookie-parser": "^1.4.7",
|
|
"exiftool-vendored": "^28.3.1",
|
|
"fast-glob": "^3.3.2",
|
|
"fluent-ffmpeg": "^2.1.2",
|
|
"geo-tz": "^8.0.0",
|
|
"handlebars": "^4.7.8",
|
|
"i18n-iso-countries": "^7.6.0",
|
|
"ioredis": "^5.3.2",
|
|
"joi": "^17.10.0",
|
|
"js-yaml": "^4.1.0",
|
|
"kysely": "^0.28.0",
|
|
"kysely-postgres-js": "^2.0.0",
|
|
"lodash": "^4.17.21",
|
|
"luxon": "^3.4.2",
|
|
"nest-commander": "^3.16.0",
|
|
"nestjs-cls": "^5.0.0",
|
|
"nestjs-kysely": "^1.1.0",
|
|
"nestjs-otel": "^6.0.0",
|
|
"nodemailer": "^6.9.13",
|
|
"openid-client": "^6.3.3",
|
|
"pg": "^8.11.3",
|
|
"picomatch": "^4.0.2",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-email": "^3.0.4",
|
|
"reflect-metadata": "^0.2.0",
|
|
"rxjs": "^7.8.1",
|
|
"sanitize-filename": "^1.6.3",
|
|
"sanitize-html": "^2.14.0",
|
|
"semver": "^7.6.2",
|
|
"sharp": "^0.34.0",
|
|
"sirv": "^3.0.0",
|
|
"tailwindcss-preset-email": "^1.3.2",
|
|
"thumbhash": "^0.1.1",
|
|
"typeorm": "^0.3.17",
|
|
"ua-parser-js": "^2.0.0",
|
|
"validator": "^13.12.0"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.1.0",
|
|
"@eslint/js": "^9.8.0",
|
|
"@nestjs/cli": "^11.0.2",
|
|
"@nestjs/schematics": "^11.0.0",
|
|
"@nestjs/testing": "^11.0.4",
|
|
"@swc/core": "^1.4.14",
|
|
"@testcontainers/postgresql": "^10.2.1",
|
|
"@testcontainers/redis": "^10.18.0",
|
|
"@types/archiver": "^6.0.0",
|
|
"@types/async-lock": "^1.4.2",
|
|
"@types/bcrypt": "^5.0.0",
|
|
"@types/compression": "^1.7.5",
|
|
"@types/cookie-parser": "^1.4.8",
|
|
"@types/express": "^4.17.17",
|
|
"@types/fluent-ffmpeg": "^2.1.21",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/lodash": "^4.14.197",
|
|
"@types/mock-fs": "^4.13.1",
|
|
"@types/multer": "^1.4.7",
|
|
"@types/node": "^22.14.1",
|
|
"@types/nodemailer": "^6.4.14",
|
|
"@types/picomatch": "^3.0.0",
|
|
"@types/pngjs": "^6.0.5",
|
|
"@types/react": "^19.0.0",
|
|
"@types/sanitize-html": "^2.13.0",
|
|
"@types/semver": "^7.5.8",
|
|
"@types/supertest": "^6.0.0",
|
|
"@types/ua-parser-js": "^0.7.36",
|
|
"@vitest/coverage-v8": "^3.0.0",
|
|
"eslint": "^9.14.0",
|
|
"eslint-config-prettier": "^10.0.0",
|
|
"eslint-plugin-prettier": "^5.1.3",
|
|
"eslint-plugin-unicorn": "^57.0.0",
|
|
"globals": "^16.0.0",
|
|
"jsdom": "^26.1.0",
|
|
"mock-fs": "^5.2.0",
|
|
"node-addon-api": "^8.3.1",
|
|
"node-gyp": "^11.2.0",
|
|
"patch-package": "^8.0.0",
|
|
"pngjs": "^7.0.0",
|
|
"prettier": "^3.0.2",
|
|
"prettier-plugin-organize-imports": "^4.0.0",
|
|
"rimraf": "^6.0.0",
|
|
"source-map-support": "^0.5.21",
|
|
"sql-formatter": "^15.0.0",
|
|
"supertest": "^7.1.0",
|
|
"testcontainers": "^10.18.0",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"typescript": "^5.3.3",
|
|
"typescript-eslint": "^8.28.0",
|
|
"unplugin-swc": "^1.4.5",
|
|
"utimes": "^5.2.1",
|
|
"vite-tsconfig-paths": "^5.0.0",
|
|
"vitest": "^3.0.0"
|
|
},
|
|
"volta": {
|
|
"node": "22.14.0"
|
|
},
|
|
"overrides": {
|
|
"sharp": "^0.34.0"
|
|
}
|
|
}
|