{ "name": "immich-web", "version": "1.132.3", "license": "GNU Affero General Public License version 3", "type": "module", "scripts": { "dev": "vite dev --host 0.0.0.0 --port 3000", "build": "vite build", "build:stats": "BUILD_STATS=true vite build", "package": "svelte-kit package", "preview": "vite preview", "check:svelte": "svelte-check --no-tsconfig --fail-on-warnings --compiler-warnings 'reactive_declaration_non_reactive_property:ignore' --ignore src/lib/components/photos-page/asset-grid.svelte", "check:typescript": "tsc --noEmit", "check:watch": "npm run check:svelte -- --watch", "check:code": "npm run format && npm run lint:p && npm run check:svelte && npm run check:typescript", "check:all": "npm run check:code && npm run test:cov", "lint": "eslint . --max-warnings 0", "lint:p": "eslint-p . --max-warnings 0 --concurrency=4", "lint:fix": "npm run lint -- --fix", "format": "prettier --check .", "format:fix": "prettier --write .", "test": "vitest --run", "test:cov": "vitest --coverage", "test:watch": "vitest dev", "prepare": "svelte-kit sync" }, "dependencies": { "@formatjs/icu-messageformat-parser": "^2.9.8", "@immich/sdk": "file:../open-api/typescript-sdk", "@immich/ui": "^0.18.1", "@mapbox/mapbox-gl-rtl-text": "0.2.3", "@mdi/js": "^7.4.47", "@photo-sphere-viewer/core": "^5.11.5", "@photo-sphere-viewer/equirectangular-video-adapter": "^5.11.5", "@photo-sphere-viewer/resolution-plugin": "^5.11.5", "@photo-sphere-viewer/settings-plugin": "^5.11.5", "@photo-sphere-viewer/video-plugin": "^5.11.5", "@zoom-image/svelte": "^0.3.0", "dom-to-image": "^2.6.0", "fabric": "^6.5.4", "handlebars": "^4.7.8", "intl-messageformat": "^10.7.11", "justified-layout": "^4.1.0", "lodash-es": "^4.17.21", "luxon": "^3.4.4", "maplibre-gl": "^5.3.0", "pmtiles": "^4.3.0", "qrcode": "^1.5.4", "socket.io-client": "~4.8.0", "svelte-gestures": "^5.1.3", "svelte-i18n": "^4.0.1", "svelte-maplibre": "^1.0.0", "svelte-persisted-store": "^0.12.0", "thumbhash": "^0.1.1" }, "devDependencies": { "@eslint/eslintrc": "^3.1.0", "@eslint/js": "^9.18.0", "@faker-js/faker": "^9.3.0", "@socket.io/component-emitter": "^3.1.0", "@sveltejs/adapter-static": "^3.0.8", "@sveltejs/enhanced-img": "^0.4.4", "@sveltejs/kit": "^2.15.2", "@sveltejs/vite-plugin-svelte": "^5.0.3", "@testing-library/jest-dom": "^6.4.2", "@testing-library/svelte": "^5.2.6", "@testing-library/user-event": "^14.5.2", "@types/dom-to-image": "^2.6.7", "@types/justified-layout": "^4.1.4", "@types/lodash-es": "^4.17.12", "@types/luxon": "^3.4.2", "@types/qrcode": "^1.5.5", "@vitest/coverage-v8": "^3.0.0", "autoprefixer": "^10.4.17", "dotenv": "^16.4.7", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.0", "eslint-p": "^0.21.0", "eslint-plugin-svelte": "^3.0.0", "eslint-plugin-unicorn": "^57.0.0", "factory.ts": "^1.4.1", "globals": "^16.0.0", "postcss": "^8.5.0", "prettier": "^3.4.2", "prettier-plugin-organize-imports": "^4.0.0", "prettier-plugin-sort-json": "^4.1.1", "prettier-plugin-svelte": "^3.3.3", "rollup-plugin-visualizer": "^5.14.0", "svelte": "^5.25.3", "svelte-check": "^4.1.5", "tailwindcss": "^3.4.17", "tslib": "^2.6.2", "typescript": "^5.7.3", "typescript-eslint": "^8.28.0", "vite": "^6.0.0", "vitest": "^3.0.0" }, "volta": { "node": "22.14.0" } }