{ "name": "uptime-kuma", "version": "3.0.0-beta.0", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/louislam/uptime-kuma.git" }, "engines": { "node": ">= 26.2.0" }, "scripts": { "lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .", "lint:js-prod": "node --run lint:js", "lint-fix:js": "eslint --ext \".js,.vue\" --fix --ignore-path .gitignore .", "lint:style": "stylelint \"**/*.{vue,css,scss}\" --ignore-path .gitignore", "lint-fix:style": "stylelint \"**/*.{vue,css,scss}\" --fix --ignore-path .gitignore", "lint": "node --run lint:js && node --run lint:style", "fmt": "prettier --write \"**/*.{js,ts,vue,css,scss,json,md,yml,yaml}\"", "lint:prod": "node --run lint:js-prod && node --run lint:style", "dev": "concurrently -k -r \"wait-on tcp:3000 && node --run start-server-dev \" \"node --run start-frontend-dev\"", "start-frontend-dev": "cross-env NODE_ENV=development vite --host", "start": "node --run start-server", "start-server": "node --import=tsx server/server.js", "start-server-dev": "cross-env NODE_ENV=development tsx server/server.js", "start-server-dev:watch": "cross-env NODE_ENV=development tsx --watch server/server.js", "build": "vite build", "precompile-server": "node extra/precompile-server.js", "test": "node --run test-backend && node --run test-e2e", "test-with-build": "node --run build && npm test", "test-backend": "cross-env TEST_BACKEND=1 node extra/run-backend-tests.mjs --experimental-test-coverage --test-coverage-exclude=\"test/**\" --test-reporter=spec", "test-e2e": "playwright test", "test-e2e-local": "cross-env SKIP_TESTCONTAINER=1 npm run build && npm run test-e2e", "test-e2e-ui": "playwright test --ui --ui-port=51063", "playwright-codegen": "playwright codegen localhost:3000 --save-storage=./private/e2e-auth.json", "playwright-show-report": "playwright show-report ./private/playwright-report", "vite-preview-dist": "vite preview --host", "build-docker-base": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:base3 --target base3 . --push", "build-docker-base-slim": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:base3-slim --target base3-slim . --push", "build-docker-builder-go": "docker buildx build -f docker/builder-go.dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:builder-go3 . --push", "build-docker-nightly-local": "node --run build && docker build -f docker/dockerfile -t louislam/uptime-kuma:nightly3 --target nightly .", "build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test3 --target pr-test3 . --push", "upload-artifacts": "node extra/release/upload-artifacts.mjs", "upload-artifacts-beta": "node extra/release/upload-artifacts-beta.mjs", "setup": "git checkout 2.5.9 && npm ci --omit dev --no-audit && npm run download-dist", "download-dist": "node extra/download-dist.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node --import=tsx extra/reset-password.mts", "remove-2fa": "node extra/remove-2fa.js", "start-clear-server": "node extra/start-clear-server.mjs", "simple-dns-server": "node extra/simple-dns-server.js", "simple-mqtt-server": "node extra/simple-mqtt-server.js", "simple-mongo": "docker run --rm -p 27017:27017 mongo", "simple-postgres": "docker run --rm -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres", "simple-mariadb": "docker run --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mariadb# mariadb", "release-final": "node ./extra/release/release.mjs", "release-beta": "node ./extra/release/release.mjs --beta", "release-nightly": "node ./extra/release/nightly.mjs", "git-remove-tag": "git tag -d", "build-dist-and-restart": "node --run build && node --run start-server-dev", "start-pr-test": "node extra/checkout-pr.mjs && npm install && node --run dev", "deploy-demo-server": "node extra/deploy-demo-server.js", "quick-run-nightly": "docker run --rm --env NODE_ENV=development -p 3001:3001 louislam/uptime-kuma:nightly3", "start-dev-container": "cd docker && docker-compose -f docker-compose-dev.yml up --force-recreate", "reset-migrate-aggregate-table-state": "node extra/reset-migrate-aggregate-table-state.js", "generate-changelog": "node ./extra/release/generate-changelog.mjs", "create-release": "node ./extra/release/create-release.mjs", "audit": "npm audit --omit=dev", "coverage:backend": "cross-env TEST_BACKEND=1 NODE_V8_COVERAGE=private/coverage/raw/backend node extra/run-backend-tests.mjs --test-reporter=spec", "coverage:report": "node extra/coverage-report.mjs", "coverage": "npm run coverage:backend && npm run coverage:report" }, "dependencies": { "@better-auth/api-key": "~1.7.12", "@grpc/grpc-js": "~1.13.6", "@inquirer/core": "~11.2.1", "@inquirer/prompts": "~8.5.2", "@modelcontextprotocol/node": "~2.1.1", "@modelcontextprotocol/server": "~2.3.1", "@scalar/express-api-reference": "~0.10.30", "@vvo/tzdb": "~6.198.0", "args-parser": "~1.3.0", "axios": "~0.34.0", "badge-maker": "~3.3.1", "bcryptjs": "~2.4.3", "better-auth": "~1.7.12", "better-sqlite3": "~12.11.1", "chardet": "~1.4.0", "cheerio": "~1.0.0", "chroma-js": "~2.4.2", "command-exists": "~1.2.9", "compare-versions": "~3.6.0", "country-flag-emoji-polyfill": "~0.1.8", "croner": "~8.1.2", "dayjs": "~1.11.19", "dev-null": "~0.1.1", "express": "~4.22.1", "express-basic-auth": "~1.2.1", "express-static-gzip": "~2.1.8", "feed": "~4.2.2", "form-data": "~4.0.5", "gamedig": "~5.3.2", "globalping": "~0.2.0", "html-escaper": "~3.0.3", "http-cache-semantics": "~4.3.0", "http-cookie-agent": "~5.0.4", "http-graceful-shutdown": "~3.1.15", "http-proxy-agent": "~7.0.2", "https-proxy-agent": "~7.0.6", "iconv-lite": "~0.6.3", "is-url": "~1.2.4", "isomorphic-ws": "~5.0.0", "js-md4": "~0.3.2", "jsesc": "~3.0.2", "jsonata": "~2.2.2", "kafkajs": "~2.2.4", "knex": "~3.3.0", "limiter": "~2.1.0", "liquidjs": "~10.29.0", "marked": "~14.1.4", "mitt": "~3.0.1", "mongodb": "~4.17.2", "mqtt": "~4.3.8", "ms": "~2.1.3", "mssql": "~12.0.0", "mysql2": "~3.24.2", "nanoid": "~3.3.11", "net-snmp": "~3.26.1", "node-cloudflared-tunnel": "~1.0.10", "node-radius-utils": "~1.2.0", "nodemailer": "~10.1.4", "nostr-tools": "~2.20.0", "openid-client": "~5.7.1", "oracledb": "~6.10.0", "password-hash": "~1.2.2", "pg": "~8.11.6", "pg-connection-string": "~2.6.4", "playwright-core": "~1.64.1", "prom-client": "~13.2.0", "protobufjs": "~8.8.0", "qs": "~6.16.0", "radius": "~1.1.4", "redbean-node": "~0.4.0", "redis": "~5.9.0", "semver": "~7.5.4", "socket.io": "~4.8.3", "socket.io-client": "~4.8.3", "socks-proxy-agent": "~8.0.5", "sqlstring": "~2.3.3", "ssh2-sftp-client": "~12.0.1", "tar": "~7.5.22", "tcp-ping": "~0.1.1", "tldts": "~7.0.23", "tough-cookie": "~4.1.4", "tsx": "~4.23.1", "unlimited-timeout": "~0.1.0", "validator": "~13.15.26", "web-push": "~3.6.7", "ws": "~8.21.3", "zod": "~4.6.6", "zod-openapi": "~6.0.2" }, "devDependencies": { "@actions/github": "~9.1.1", "@fortawesome/fontawesome-svg-core": "~1.2.36", "@fortawesome/free-regular-svg-icons": "~5.15.4", "@fortawesome/free-solid-svg-icons": "~5.15.4", "@fortawesome/vue-fontawesome": "~3.1.3", "@playwright/test": "~1.64.1", "@popperjs/core": "~2.10.2", "@testcontainers/hivemq": "12.2.1", "@testcontainers/mariadb": "12.2.1", "@testcontainers/mssqlserver": "12.2.1", "@testcontainers/mysql": "12.2.1", "@testcontainers/oraclefree": "12.2.1", "@testcontainers/postgresql": "12.2.1", "@testcontainers/rabbitmq": "12.2.1", "@types/better-sqlite3": "~7.6.13", "@types/bootstrap": "~5.1.13", "@types/node": "^26.1.1", "@types/web-push": "^3.6.4", "@typescript-eslint/eslint-plugin": "~8.71.2", "@typescript-eslint/parser": "~8.71.2", "@vitejs/plugin-vue": "~6.0.7", "@vue/compiler-sfc": "~3.5.39", "@vuepic/vue-datepicker": "~3.4.8", "aedes": "~1.2.0", "bootstrap": "5.1.3", "chart.js": "~4.2.1", "chartjs-adapter-dayjs-4": "~1.0.4", "concurrently": "^7.6.0", "cronstrue": "~2.24.0", "cross-env": "~7.0.3", "dns2": "~2.0.5", "dompurify": "~3.4.0", "eslint": "~8.57.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsdoc": "~46.4.6", "eslint-plugin-vue": "~8.7.1", "eslint-plugin-vue-scoped-css": "~2.7.2", "favico.js": "~0.3.10", "monocart-coverage-reports": "^2.13.2", "node-ssh": "~13.1.0", "postcss-html": "~1.8.1", "postcss-rtlcss": "~5.7.1", "postcss-scss": "~4.0.9", "prettier": "^3.8.1", "prismjs": "~1.30.0", "qrcode": "~1.5.4", "rollup-plugin-visualizer": "~7.0.1", "sass-embedded": "^1.106.1", "smtp-server": "^3.20.2", "ssh2": "~1.17.0", "stylelint": "^15.11.0", "stylelint-config-prettier": "^9.0.5", "stylelint-config-standard": "~25.0.0", "terser": "~5.15.1", "test": "~3.3.0", "testcontainers": "^12.2.1", "typescript": "~6.0.3", "v-pagination-3": "~0.1.7", "vite": "~8.1.2", "vite-plugin-compression": "^0.5.1", "vue": "~3.5.39", "vue-chartjs": "~5.2.0", "vue-contenteditable": "~3.0.4", "vue-i18n": "~11.4.16", "vue-image-crop-upload": "~3.0.3", "vue-multiselect": "~3.0.0", "vue-prism-editor": "~2.0.0-alpha.2", "vue-qrcode": "~1.0.1", "vue-router": "~4.2.5", "vue-toastification": "~2.0.0-rc.5", "vuedraggable": "~4.1.0", "wait-on": "^7.2.0", "whatwg-url": "~12.0.1" }, "overrides": { "@aws-sdk/credential-providers": "npm:useless-module@1.0.0", "tedious": { "@azure/identity": "npm:useless-module@1.0.0", "@azure/keyvault-keys": "npm:useless-module@1.0.0" }, "knex": "$knex" }, "allowScripts": { "better-sqlite3@12.11.1": true, "@fortawesome/fontawesome-common-types@0.2.36": true, "@fortawesome/fontawesome-svg-core@1.2.36": true, "@fortawesome/free-regular-svg-icons@5.15.4": true, "@fortawesome/free-solid-svg-icons@5.15.4": true, "core-js@2.6.12": true, "core-js@3.26.1": true, "cpu-features@0.0.10": true, "protobufjs@7.5.4": true, "protobufjs@7.6.1": true, "protobufjs@7.2.6": true, "protobufjs@7.6.6": true, "oracledb@6.10.0": true, "ssh2@1.17.0": true, "vue-demi@0.12.5": true, "esbuild@0.28.2": true, "@parcel/watcher@2.6.0": true } }