{ "name": "piratepx-app", "version": "0.4.2", "type": "module", "private": true, "description": "Just a little analytics insight for your personal or indie project", "homepage": "https://app.piratepx.com", "bugs": "https://github.com/piratepx/app/issues", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/piratepx/app.git" }, "scripts": { "build": "cd web && npm install && npm run build", "dev": "npm run dev:api & npm run dev:web", "dev:api": "fastify start --watch --ignore-watch=web --log-level=info --pretty-logs ./api/app.js", "dev:db:create": "docker compose exec postgres createdb -U postgres piratepx_development", "dev:db:drop": "docker compose exec postgres dropdb -U postgres piratepx_development", "dev:db:psql": "docker compose exec postgres psql -U postgres", "dev:web": "cd web && npm run dev", "knex": "node -r dotenv/config ./node_modules/.bin/knex --knexfile ./api/db/config.js", "lint": "npm run lint:format && npm run lint:quality", "lint:format": "prettier --check .", "lint:format:fix": "prettier --write .", "lint:quality": "eslint .", "lint:quality:fix": "eslint --fix .", "release": "release-it --only-version", "start": "fastify start --log-level=info ./api/app.js" }, "dependencies": { "@fastify/autoload": "^5.10.0", "@fastify/bearer-auth": "^9.4.0", "@fastify/cors": "^9.0.1", "@fastify/static": "^7.0.4", "@vvo/tzdb": "^6.145.0", "cron": "^3.1.7", "dotenv": "^16.4.5", "fastify": "^4.28.1", "fastify-cli": "^6.3.0", "knex": "^3.1.0", "luxon": "^3.5.0", "objection": "^3.1.4", "pg": "^8.13.0" }, "devDependencies": { "@eslint/js": "^9.11.1", "@release-it/bumper": "^6.0.1", "eslint": "^9.11.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-n": "^17.10.3", "globals": "^15.9.0", "prettier": "3.3.3", "release-it": "^17.6.0" }, "engines": { "node": "22.x", "npm": "10.x" }, "imports": { "#api/*": "./api/*.js" } }