{ "name": "thelounge", "description": "The self-hosted Web IRC client", "version": "4.4.3", "preferGlobal": true, "type": "commonjs", "bin": { "thelounge": "index.js" }, "repository": { "type": "git", "url": "https://github.com/thelounge/thelounge.git" }, "homepage": "https://thelounge.chat/", "scripts": { "build:client": "webpack", "build:server": "tsc -p server/tsconfig.json", "build": "run-p --aggregate-output build:client build:server", "coverage": "run-s test:* && nyc --nycrc-path=test/.nycrc-report.json report", "dev": "cross-env NODE_ENV=development ts-node --project server/tsconfig.json server/index.ts start --dev", "format:prettier": "prettier --write \"**/*.*\"", "generate:config:doc": "ts-node scripts/generate-config-doc.js", "lint:check-eslint": "eslint-config-prettier .eslintrc.cjs", "lint:eslint": "eslint . --report-unused-disable-directives --color", "lint:prettier": "prettier --list-different \"**/*.*\"", "lint:stylelint": "stylelint --color \"client/**/*.css\"", "lint": "run-p --aggregate-output --continue-on-error lint:*", "start": "node index start", "test": "run-p --aggregate-output --continue-on-error lint:* test:mocha", "test:mocha": "webpack --mode=development && cross-env NODE_ENV=test TS_NODE_PROJECT='./test/tsconfig.json' mocha --config=test/.mocharc.yml 'test/**/*.ts'", "test:nospec": "webpack --mode=development && cross-env NODE_ENV=test TS_NODE_PROJECT='./test/tsconfig.json' mocha --config=test/.mocharc.yml", "watch": "webpack --watch", "githooks-install": "git config core.hooksPath scripts/git-hooks" }, "keywords": [ "lounge", "browser", "web", "chat", "client", "irc", "server", "thelounge" ], "license": "MIT", "engines": { "node": ">=22.0.0" }, "files": [ "./.thelounge_home", "./index.js", "./yarn.lock", "./client/index.html.tpl", "./dist/package.json", "./dist/**/*.js", "./public/**" ], "dependencies": { "@fastify/busboy": "^3.2.0", "bcryptjs": "^3.0.3", "chalk": "^5.6.2", "cheerio": "^1.2.0", "commander": "^14.0.3", "content-disposition": "^1.0.1", "express": "^5.2.1", "file-type": "^21.3.0", "filenamify": "^7.0.1", "got": "^12.6.1", "irc-framework": "^4.14.0", "ldapjs": "^2.3.3", "linkify-it": "^5.0.0", "lodash": "^4.17.21", "mime-types": "^3.0.2", "node-forge": "^1.3.1", "package-json": "^10.0.1", "read": "^5.0.1", "read-chunk": "^5.0.0", "semver": "^7.7.3", "socket.io": "^4.8.3", "tlds": "^1.261.0", "ua-parser-js": "^2.0.8", "uuid": "^13.0.0", "web-push": "^3.6.7", "yarn": "^1.22.22" }, "optionalDependencies": { "sqlite3": "^5.1.7" }, "devDependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-runtime": "^7.29.0", "@babel/preset-env": "^7.29.0", "@fortawesome/fontawesome-free": "^7.1.0", "@istanbuljs/nyc-config-typescript": "^1.0.2", "@textcomplete/core": "^0.1.13", "@textcomplete/textarea": "^0.1.13", "@types/chai": "^5.2.3", "@types/content-disposition": "^0.5.9", "@types/express": "^5.0.6", "@types/ldapjs": "^2.2.5", "@types/linkify-it": "^5.0.0", "@types/lodash": "^4.17.23", "@types/mime-types": "^3.0.1", "@types/mocha": "^10.0.10", "@types/mousetrap": "^1.6.15", "@types/node": "^22.19.7", "@types/node-forge": "^1.3.14", "@types/semver": "^7.7.1", "@types/sortablejs": "^1.15.9", "@types/web-push": "^3.6.4", "@types/webpack-env": "^1.18.8", "@types/webpack-hot-middleware": "^2.25.12", "@types/ws": "^8.18.1", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vue/runtime-dom": "^3.5.27", "@vue/test-utils": "^2.4.6", "babel-loader": "^10.0.0", "babel-plugin-istanbul": "^7.0.1", "babel-preset-typescript-vue3": "~2.0.17", "chai": "^6.2.2", "copy-webpack-plugin": "^13.0.1", "cross-env": "^10.1.0", "css-loader": "^7.1.2", "cssnano": "^7.1.2", "dayjs": "^1.11.19", "emoji-regex": "^10.6.0", "eslint": "^8.57.1", "eslint-config-prettier": "^10.1.8", "eslint-define-config": "^2.1.0", "eslint-plugin-vue": "^9.33.0", "fork-ts-checker-webpack-plugin": "^9.1.0", "fuzzy": "^0.1.3", "mini-css-extract-plugin": "^2.10.0", "mocha": "^11.7.5", "mousetrap": "^1.6.5", "normalize.css": "^8.0.1", "npm-run-all2": "^8.0.4", "nyc": "^17.1.0", "postcss": "^8.5.6", "postcss-import": "^16.1.1", "postcss-loader": "^8.2.0", "postcss-preset-env": "^11.1.2", "prettier": "^3.8.1", "pretty-quick": "^4.2.2", "primer-tooltips": "^2.0.0", "sinon": "^21.0.1", "socket.io-client": "^4.8.3", "sortablejs": "^1.15.6", "stylelint": "^14.16.1", "stylelint-config-standard": "^25.0.0", "ts-loader": "^9.5.4", "ts-node": "^10.9.2", "ts-sinon": "^2.0.2", "typescript": "~5.4.5", "undate": "^0.3.0", "vue": "^3.5.27", "vue-eslint-parser": "^10.2.0", "vue-loader": "^17.4.2", "vue-router": "^5.0.1", "vuex": "^4.1.0", "webpack": "^5.104.1", "webpack-cli": "^6.0.1", "webpack-dev-middleware": "^7.4.5", "webpack-hot-middleware": "^2.26.1" } }