Files
juice-shop/package.json
2025-08-25 20:33:07 +02:00

292 lines
8.6 KiB
JSON

{
"name": "juice-shop",
"version": "19.0.0-SNAPSHOT",
"private": true,
"description": "Probably the most modern and sophisticated insecure web application",
"keywords": [
"web security",
"web application security",
"webappsec",
"owasp",
"pentest",
"pentesting",
"security",
"vulnerable",
"vulnerability",
"broken",
"bodgeit",
"ctf",
"capture the flag",
"awareness"
],
"homepage": "https://owasp-juice.shop",
"bugs": {
"url": "https://github.com/juice-shop/juice-shop/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/juice-shop/juice-shop.git"
},
"license": "MIT",
"author": "Björn Kimminich <[email protected]> (https://kimminich.de)",
"contributors": [
"Björn Kimminich",
"Jannik Hollenbach",
"Aashish683",
"greenkeeper[bot]",
"MarcRler",
"agrawalarpit14",
"Scar26",
"ShubhamPalriwala",
"CaptainFreak",
"JuiceShopBot",
"Supratik Das",
"the-pro",
"Ziyang Li",
"Timo Pagel",
"aaryan10",
"..."
],
"scripts": {
"build:frontend": "cd frontend && npm run build",
"build:server": "tsc",
"cypress:open": "cypress open",
"cypress:run": "cypress run",
"frisby": "nyc --report-dir=./build/reports/coverage/api-tests jest --silent --runInBand --forceExit",
"postinstall": "cd frontend && npm install --legacy-peer-deps && cd .. && npm run build:frontend && (npm run --silent build:server || cd .)",
"lint": "eslint *.ts data lib models routes test/**/*.ts views && cd frontend && npm run lint && npm run lint:scss && cd ..",
"lint:config": "schema validate -s config.schema.yml",
"lint:fix": "eslint *.ts data lib models routes test/**/*.ts views rsn --fix && cd frontend && npm run lint:fix && cd ..",
"package": "grunt package",
"package:ci": "npm prune --production && npm dedupe && cd frontend && npm prune --legacy-peer-deps --production && cd .. && npm run --silent sbom && grunt package",
"serve": "concurrently --kill-others \"ts-node app.ts\" \"cd frontend && npm run start\"",
"serve:dev": "concurrently --kill-others \"ts-node-dev app.ts\" \"cd frontend && npm run start\"",
"start": "node build/app",
"test": "cd frontend && npm run test -- --watch=false --source-map=true && cd .. && npm run test:server",
"test:chromium": "cd frontend && npm run test -- --watch=false --source-map=false --browsers=ChromiumHeadless && cd .. && npm run test:server",
"test:server": "nyc --report-dir=./build/reports/coverage/server-tests mocha -r ts-node/register -r source-map-support/register --recursive test/server/**/*.ts",
"test:api": "npm run frisby",
"rsn": "ts-node rsn/rsn.ts",
"rsn:verbose": "ts-node rsn/rsn-verbose.ts",
"rsn:update": "ts-node rsn/rsn-update.ts",
"vagrant": "cd vagrant && vagrant up",
"sbom": "npm run sbom:json && npm run sbom:xml",
"sbom:json": "cyclonedx-npm --omit=dev --output-format=JSON --output-file=bom.json",
"sbom:xml": " cyclonedx-npm --omit=dev --output-format=XML --output-file=bom.xml"
},
"jest": {
"transform": {
"^.+\\.[tj]s$": [
"ts-jest",
{
"diagnostics": false
}
]
},
"globalSetup": "./test/apiTestsSetup.ts",
"globalTeardown": "./test/apiTestsTeardown.ts",
"modulePathIgnorePatterns": [
"/build"
],
"setupFilesAfterEnv": [
"./test/apiTestsSetupJest.ts"
],
"testMatch": [
"<rootDir>/test/api/*Spec.[jt]s"
],
"testPathIgnorePatterns": [
"/node_modules/",
"/frontend/node_modules/"
],
"testEnvironmentOptions": {
"url": "http://localhost"
}
},
"nyc": {
"extends": "@istanbuljs/nyc-config-typescript",
"all": true,
"include": [
"lib/*.ts",
"models/*.ts",
"routes/*.ts",
"server.ts"
],
"reporter": [
"lcov",
"text-summary"
]
},
"dependencies": {
"body-parser": "^1.20.2",
"check-dependencies": "^1.1.1",
"check-internet-connected": "^2.0.6",
"clarinet": "^0.12.6",
"colors": "1.4.0",
"compression": "^1.7.4",
"config": "^3.3.12",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dottie": "^2.0.6",
"download": "^8.0.0",
"errorhandler": "^1.5.1",
"ethers": "^6.13.2",
"express": "^4.21.0",
"express-ipfilter": "^1.3.2",
"express-jwt": "0.1.3",
"express-rate-limit": "^7.5.0",
"express-robots-txt": "^0.4.1",
"express-security.txt": "^2.0.0",
"feature-policy": "^0.5.0",
"file-stream-rotator": "^1.0.0",
"file-type": "^16.5.4",
"filesniffer": "^1.0.3",
"finale-rest": "^1.2.2",
"fs-extra": "^9.1.0",
"fuzzball": "^1.4.0",
"glob": "^10.4.5",
"graceful-fs": "^4.2.11",
"grunt": "^1.6.1",
"grunt-contrib-compress": "^1.6.0",
"grunt-replace-json": "^0.1.0",
"hashids": "^2.3.0",
"hbs": "^4.2.0",
"helmet": "^4.6.0",
"html-entities": "^1.4.0",
"i18n": "^0.11.1",
"js-yaml": "^3.14.0",
"jsonwebtoken": "0.4.0",
"jssha": "^3.3.1",
"juicy-chat-bot": "^0.8.0",
"libxmljs2": "~0.37.0",
"marsdb": "^0.6.11",
"median": "^0.0.2",
"morgan": "^1.10.0",
"multer": "^1.4.5-lts.1",
"node-pre-gyp": "^0.15.0",
"notevil": "^1.3.3",
"on-finished": "^2.3.0",
"otplib": "^12.0.1",
"pdfkit": "^0.11.0",
"portscanner": "^2.2.0",
"prom-client": "^14.2.0",
"pug": "^3.0.3",
"replace": "^1.2.2",
"sanitize-filename": "^1.6.3",
"sanitize-html": "1.4.2",
"semver": "^7.6.3",
"sequelize": "^6.37.3",
"serve-index": "^1.9.1",
"socket.io": "^3.1.2",
"sqlite3": "^5.1.7",
"svg-captcha": "^1.4.0",
"swagger-ui-express": "^5.0.1",
"ts-node-dev": "^1.1.8",
"unzipper": "0.9.15",
"web3": "^4.13.0",
"winston": "^3.16.0",
"yaml-schema-validator": "^1.2.3",
"z85": "^0.0.2"
},
"devDependencies": {
"@cyclonedx/cyclonedx-npm": "^2.0.0||^3.0.0",
"@istanbuljs/nyc-config-typescript": "^1.0.2",
"@types/chai": "^4.3.20",
"@types/clarinet": "^0.12.3",
"@types/compression": "^1.7.5",
"@types/config": "^3.3.5",
"@types/cookie-parser": "^1.4.7",
"@types/cors": "^2.8.17",
"@types/cross-spawn": "^6.0.6",
"@types/cypress": "^1.1.6",
"@types/diff": "^7.0.1",
"@types/download": "^8.0.5",
"@types/errorhandler": "^1.5.3",
"@types/exif": "^0.6.5",
"@types/express": "^4.17.21",
"@types/express-jwt": "^6.0.4",
"@types/frisby": "^2.0.17",
"@types/fs-extra": "^9.0.13",
"@types/glob": "^7.2.0",
"@types/graceful-fs": "^4.1.9",
"@types/i18n": "^0.12.0",
"@types/jasmine": "~3.9.1",
"@types/jest": "^26.0.24",
"@types/js-yaml": "^3.12.10",
"@types/jsonwebtoken": "^8.5.9",
"@types/jws": "^3.2.10",
"@types/lodash": "^4.17.14",
"@types/mocha": "^8.2.3",
"@types/morgan": "^1.9.9",
"@types/multer": "^1.4.12",
"@types/node": "^20.17.25",
"@types/on-finished": "^2.3.4",
"@types/pdfkit": "^0.10.6",
"@types/portscanner": "^2.1.4",
"@types/pug": "^2.0.10",
"@types/request": "^2.48.12",
"@types/sanitize-html": "^1.27.2",
"@types/semver": "^7.5.8",
"@types/sequelize": "^4.28.20",
"@types/serve-index": "^1.9.4",
"@types/sinon": "^10.0.20",
"@types/sinon-chai": "^3.2.12",
"@types/socket.io": "^2.1.13",
"@types/socket.io-client": "^1.4.36",
"@types/swagger-ui-express": "^4.1.6",
"@types/unzipper": "^0.10.10",
"@types/validator": "^13.12.2",
"@typescript-eslint/eslint-plugin": "6.18.1",
"@typescript-eslint/parser": "6.18.1",
"chai": "^4.5.0",
"concurrently": "^5.3.0",
"cross-spawn": "^7.0.3",
"cypress": "^13.17.0",
"eslint": "^8.57.1",
"eslint-config-standard-with-typescript": "^43.0.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.6.0",
"exif": "^0.6.0",
"frisby": "github:bkimminich/frisby",
"grunt-cli": "^1.5.0",
"http-server": "^0.12.3",
"jasmine": "^3.99.0",
"jasmine-core": "~3.9.0",
"jasmine-reporters": "^2.5.2",
"jest": "^29.7.0",
"mocha": "^8.4.0",
"nyc": "^15.1.0",
"shelljs": "^0.8.5",
"sinon": "^11.1.2",
"sinon-chai": "^3.7.0",
"socket.io-client": "^3.1.3",
"source-map-support": "^0.5.21",
"ts-jest": "^29.2.5",
"ts-node": "^10.9.2",
"typescript": "~5.3.3"
},
"engines": {
"node": "20 - 24"
},
"os": [
"win32",
"linux",
"darwin",
"freebsd",
"openbsd"
],
"cpu": [
"x64",
"x32",
"arm64",
"arm"
],
"heroku-run-build-script": true,
"standard": {
"global": [
"angular",
"inject"
]
}
}