{
    "name": "@waelio/messaging",
    "version": "2.4.0",
    "repository": {
        "type": "git",
        "url": "git+https://github.com/waelio/waelio-messaging.git"
    },
    "homepage": "https://github.com/waelio/waelio-messaging#readme",
    "bugs": {
        "url": "https://github.com/waelio/waelio-messaging/issues"
    },
    "main": "dist/MessagingHub.js",
    "types": "dist/MessagingHub.d.ts",
    "files": [
        "dist/",
        "README.md"
    ],
    "type": "module",
    "publishConfig": {
        "access": "public"
    },
    "keywords": [
        "messaging",
        "websocket",
        "real-time",
        "chat",
        "express"
    ],
    "author": "Waelio",
    "license": "MIT",
    "engines": {
        "node": ">=22"
    },
    "description": "A real-time messaging application with direct & broadcast messages, user lists, and optional MongoDB persistence.",
    "dependencies": {
        "@waelio/sockets": "^1.0.0",
        "@feathersjs/feathers": "^5.0.43",
        "@feathersjs/socketio": "^5.0.43",
        "dotenv": "^16.4.5",
        "express": "^4.22.1",
        "mongodb": "^6.8.0",
        "pino": "^9.0.0",
        "ws": "^8.18.3",
        "zod": "^3.24.0"
    },
    "devDependencies": {
        "@resvg/resvg-js": "^2.6.2",
        "@types/chai": "^5.2.3",
        "@types/express": "^4.17.21",
        "@types/mocha": "^10.0.10",
        "@types/node": "^22.0.0",
        "@types/supertest": "^6.0.3",
        "@types/ws": "^8.5.10",
        "c8": "^10.1.2",
        "chai": "^4.5.0",
        "mocha": "^10.8.2",
        "png-to-ico": "^2.1.4",
        "supertest": "^7.2.2",
        "tsx": "^4.19.2",
        "typescript": "^5.5.3"
    },
    "scripts": {
        "clean": "rm -rf dist public",
        "test": "NODE_ENV=test mocha --node-option import=tsx 'test/**/*.ts'",
        "test:server": "NODE_ENV=test RUN_INTEGRATION=true mocha --node-option import=tsx test/server.test.ts",
        "test:coverage": "NODE_ENV=test c8 mocha --node-option import=tsx 'test/**/*.ts'",
        "build": "npm run clean && npx tsc -p tsconfig.json && npx tsc -p tsconfig.client.json && npm run generate:icons && npm run copy-files",
        "prepublishOnly": "npm run build",
        "generate:icons": "node scripts/generate-icons.mjs",
        "copy-files": "mkdir -p public && cp src/client/index.html public/index.html && sed -i.bak \"s|__BACKEND_URL__|${BACKEND_URL:-}|g\" public/index.html && rm -f public/index.html.bak && cp src/client/sw.js public/sw.js && for f in favicon.ico favicon.png favicon.svg apple-touch-icon.png site.webmanifest favicon-16x16.png favicon-32x32.png; do [ -f src/client/$f ] && cp src/client/$f public/$f || true; [ -f $f ] && cp $f public/$f || true; done; [ -d src/client/static ] && cp -R src/client/static/* public/ 2>/dev/null || true",
        "start": "node dist/server.js",
        "dev": "tsx src/server.ts",
        "docker:up": "docker compose up --build -d",
        "docker:down": "docker compose down",
        "release:verify": "npm test && npm run build",
        "release:patch": "npm run release:verify && npm version patch -m 'chore(release): %s' && git push --follow-tags",
        "release:minor": "npm run release:verify && npm version minor -m 'chore(release): %s' && git push --follow-tags",
        "release:major": "npm run release:verify && npm version major -m 'chore(release): %s' && git push --follow-tags",
        "release:publish": "npm publish --access public"
    },
    "overrides": {
        "serialize-javascript": ">=7.0.5"
    }
}
