{ "name": "runtipi", "version": "1.3.0", "description": "A homeserver for everyone", "scripts": { "copy:migrations": "mkdir -p dist/migrations && cp -r ./src/server/migrations dist", "test": "dotenv -e .env.test -- jest --colors", "test:client": "jest --colors --selectProjects client --", "test:server": "jest --colors --selectProjects server --", "dev": "npm run copy:migrations && nodemon", "start": "NODE_ENV=production node index.js", "lint": "next lint", "lint:fix": "next lint --fix", "build": "npm run copy:migrations && node ./esbuild.js build", "build:server": "node ./esbuild.js build", "build:next": "next build", "start:dev": "./scripts/start-dev.sh", "start:dev-container": "./.devcontainer/filewatcher.sh && npm run start:dev", "start:rc": "docker-compose -f docker-compose.rc.yml --env-file .env up --build", "start:prod": "docker-compose -f docker-compose.test.yml --env-file .env up --build", "start:pg": "docker run --name test-db -p 5433:5432 -d --rm -e POSTGRES_PASSWORD=postgres postgres:14", "version": "echo $npm_package_version", "release:rc": "./scripts/deploy/release-rc.sh", "test:build": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t meienberger/runtipi:test .", "test:build:arm64": "docker buildx build --platform linux/arm64 -t meienberger/runtipi:test .", "test:build:arm7": "docker buildx build --platform linux/arm/v7 -t meienberger/runtipi:test .", "test:build:amd64": "docker buildx build --platform linux/amd64 -t meienberger/runtipi:test ." }, "dependencies": { "@hookform/resolvers": "^2.9.10", "@otplib/core": "^12.0.1", "@otplib/plugin-crypto": "^12.0.1", "@otplib/plugin-thirty-two": "^12.0.1", "@radix-ui/react-dialog": "^1.0.3", "@radix-ui/react-select": "^1.2.1", "@radix-ui/react-switch": "^1.0.2", "@radix-ui/react-tabs": "^1.0.3", "@runtipi/postgres-migrations": "^5.3.0", "@tabler/core": "1.0.0-beta17", "@tabler/icons-react": "^2.11.0", "@tanstack/react-query": "^4.27.0", "@tanstack/react-query-devtools": "^4.27.0", "@trpc/client": "^10.16.0", "@trpc/next": "^10.16.0", "@trpc/react-query": "^10.16.0", "@trpc/server": "^10.16.0", "argon2": "^0.30.3", "clsx": "^1.1.1", "connect-redis": "^7.0.1", "drizzle-orm": "^0.24.1", "express": "^4.17.3", "express-session": "^1.17.3", "fs-extra": "^11.1.0", "isomorphic-fetch": "^3.0.0", "jsonwebtoken": "^9.0.0", "lodash.merge": "^4.6.2", "next": "13.2.4", "next-intl": "^2.13.1", "node-cron": "^3.0.1", "node-fetch-commonjs": "^3.2.4", "nookies": "^2.5.2", "pg": "^8.10.0", "qrcode.react": "^3.1.0", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "^7.43.7", "react-hot-toast": "^2.4.0", "react-markdown": "^8.0.3", "react-select": "^5.6.1", "react-tooltip": "^5.10.5", "redis": "^4.6.5", "remark-breaks": "^3.0.2", "remark-gfm": "^3.0.1", "sass": "^1.59.3", "semver": "^7.3.7", "sharp": "0.31.3", "superjson": "^1.12.0", "tslib": "^2.4.0", "uuid": "^9.0.0", "validator": "^13.7.0", "web-push": "^3.5.0", "winston": "^3.7.2", "zod": "^3.21.4", "zustand": "^4.3.6" }, "devDependencies": { "@babel/core": "^7.21.3", "@faker-js/faker": "^7.6.0", "@testing-library/dom": "^9.0.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", "@total-typescript/shoehorn": "^0.1.0", "@total-typescript/ts-reset": "^0.4.2", "@types/express": "^4.17.13", "@types/express-session": "^1.17.7", "@types/fs-extra": "^11.0.1", "@types/isomorphic-fetch": "^0.0.36", "@types/jest": "^29.5.0", "@types/jsonwebtoken": "^9.0.0", "@types/lodash.merge": "^4.6.7", "@types/node": "18.15.3", "@types/node-cron": "^3.0.2", "@types/pg": "^8.6.6", "@types/react": "18.0.28", "@types/react-dom": "18.0.11", "@types/semver": "^7.3.12", "@types/supertest": "^2.0.12", "@types/testing-library__jest-dom": "^5.14.5", "@types/uuid": "^9.0.1", "@types/validator": "^13.7.14", "@types/web-push": "^3.3.2", "@typescript-eslint/eslint-plugin": "^5.55.0", "@typescript-eslint/parser": "^5.55.0", "dotenv-cli": "^7.1.0", "drizzle-kit": "^0.17.4", "esbuild": "^0.16.17", "eslint": "8.36.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-next": "13.2.4", "eslint-config-prettier": "^8.7.0", "eslint-import-resolver-typescript": "^3.5.3", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jest": "^27.1.7", "eslint-plugin-jest-dom": "^4.0.3", "eslint-plugin-jsdoc": "^40.1.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.31.10", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-testing-library": "^5.10.3", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "msw": "^1.1.0", "next-router-mock": "^0.9.2", "nodemon": "^2.0.21", "prettier": "^2.8.4", "supertest": "^6.3.3", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", "typescript": "5.0.2", "wait-for-expect": "^3.0.2", "whatwg-fetch": "^3.6.2" }, "msw": { "workerDirectory": "public" }, "repository": { "type": "git", "url": "git+https://github.com/meienberger/runtipi.git" }, "author": "", "license": "GNU General Public License v3.0", "bugs": { "url": "https://github.com/meienberger/runtipi/issues" }, "homepage": "https://github.com/meienberger/runtipi#readme" }