{ "name": "unleash-server", "description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.", "version": "4.18.6", "keywords": [ "unleash", "feature toggle", "feature", "toggle" ], "files": [ "dist", "docs", "frontend/build" ], "repository": { "type": "git", "url": "ssh://git@github.com:unleash/unleash.git" }, "bugs": { "url": "https://github.com/unleash/unleash/issues" }, "types": "./dist/lib/server-impl.d.ts", "engines": { "node": ">=14" }, "license": "Apache-2.0", "main": "./dist/lib/server-impl.js", "scripts": { "start": "node ./dist/server.js", "prestart:dev": "yarn run clean", "start:dev": "NODE_ENV=development tsc-watch --onSuccess \"node dist/server-dev.js\"", "copy-templates": "copyfiles -u 1 src/mailtemplates/**/*.mustache dist/", "db-migrate": "db-migrate --migrations-dir ./src/migrations", "lint": "eslint ./src", "local:package": "del-cli --force build && mkdir build && cp -r dist docs CHANGELOG.md LICENSE README.md package.json build", "prebuild:watch": "yarn run clean", "build:watch": "tsc -w", "prebuild": "yarn run clean", "build": "yarn run copy-templates && tsc --pretty", "prepare": "node scripts/husky-install && cd frontend && yarn && cd .. && yarn run build", "test": "NODE_ENV=test PORT=4243 jest", "test:unit": "NODE_ENV=test PORT=4243 jest --testPathIgnorePatterns=src/test/e2e --testPathIgnorePatterns=dist", "test:docker": "./scripts/docker-postgres.sh", "test:docker:cleanup": "docker rm -f unleash-postgres", "test:watch": "yarn test --watch", "test:coverage": "NODE_ENV=test PORT=4243 jest --coverage --testLocationInResults --outputFile=\"coverage/report.json\" --forceExit --testTimeout=10000", "test:coverage:jest": "NODE_ENV=test PORT=4243 jest --silent --ci --json --coverage --testLocationInResults --outputFile=\"report.json\" --forceExit --testTimeout=10000", "seed:setup": "ts-node src/test/e2e/seed/segment.seed.ts", "seed:serve": "UNLEASH_DATABASE_NAME=unleash_test UNLEASH_DATABASE_SCHEMA=seed yarn run start:dev", "clean": "del-cli --force dist", "preversion": "./scripts/check-release.sh", "heroku-postbuild": "cd frontend && yarn && yarn build" }, "jest": { "automock": false, "maxWorkers": 4, "testTimeout": 10000, "globalSetup": "./scripts/jest-setup.js", "transform": { "^.+\\.tsx?$": [ "@swc/jest" ] }, "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", "testPathIgnorePatterns": [ "/dist/", "/node_modules/", "/frontend/" ], "moduleFileExtensions": [ "ts", "tsx", "js", "jsx", "json" ], "coveragePathIgnorePatterns": [ "/node_modules/", "/dist/", "/src/migrations", "/src/test" ] }, "dependencies": { "@unleash/express-openapi": "^0.2.1", "ajv": "^8.11.0", "ajv-formats": "^2.1.1", "async": "^3.2.4", "bcryptjs": "^2.4.3", "compression": "^1.7.4", "connect-session-knex": "^3.0.0", "cookie-parser": "^1.4.5", "cookie-session": "^2.0.0-rc.1", "cors": "^2.8.5", "date-fns": "^2.25.0", "db-migrate": "0.11.13", "db-migrate-pg": "1.2.2", "db-migrate-shared": "1.2.0", "deepmerge": "^4.2.2", "errorhandler": "^1.5.1", "express": "^4.18.2", "express-rate-limit": "^6.6.0", "express-session": "^1.17.1", "fast-json-patch": "^3.1.0", "gravatar-url": "^3.1.0", "helmet": "^6.0.0", "ip": "^1.1.8", "joi": "^17.3.0", "js-sha256": "^0.9.0", "js-yaml": "^4.1.0", "json-schema-to-ts": "2.6.0", "json2csv": "^5.0.7", "knex": "^2.0.0", "log4js": "^6.0.0", "make-fetch-happen": "^11.0.0", "memoizee": "^0.4.15", "mime": "^3.0.0", "multer": "^1.4.5-lts.1", "murmurhash3js": "^3.0.1", "mustache": "^4.1.0", "nodemailer": "^6.5.0", "openapi-types": "^12.0.0", "owasp-password-strength-test": "^1.3.0", "parse-database-url": "^0.3.0", "pg": "^8.7.3", "pg-connection-string": "^2.5.0", "pkginfo": "^0.4.1", "prom-client": "^14.0.0", "response-time": "^2.3.2", "semver": "^7.3.5", "serve-favicon": "^2.5.0", "stoppable": "^1.1.0", "ts-toolbelt": "^9.6.0", "type-is": "^1.6.18", "unleash-client": "3.16.0", "use-deep-compare-effect": "^1.8.1", "uuid": "^8.3.2" }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", "@babel/core": "7.20.5", "@swc/core": "1.3.21", "@swc/jest": "0.2.23", "@types/bcryptjs": "2.4.2", "@types/cors": "2.8.13", "@types/express": "4.17.14", "@types/express-session": "1.17.5", "@types/faker": "5.5.9", "@types/jest": "29.2.4", "@types/js-yaml": "4.0.5", "@types/make-fetch-happen": "10.0.1", "@types/memoizee": "0.4.8", "@types/mime": "3.0.1", "@types/node": "16.18.6", "@types/nodemailer": "6.4.6", "@types/owasp-password-strength-test": "1.3.0", "@types/semver": "7.3.13", "@types/stoppable": "1.1.1", "@types/supertest": "2.0.12", "@types/type-is": "1.6.3", "@types/uuid": "8.3.4", "@typescript-eslint/eslint-plugin": "5.42.1", "@typescript-eslint/parser": "5.42.1", "copyfiles": "2.4.1", "coveralls": "3.1.1", "del-cli": "5.0.0", "eslint": "8.28.0", "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.0.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-prettier": "4.2.1", "faker": "5.5.3", "fast-check": "3.3.0", "fetch-mock": "9.11.0", "husky": "8.0.2", "jest": "29.3.1", "lint-staged": "13.0.4", "nock": "13.2.9", "openapi-enforcer": "1.22.2", "prettier": "2.7.1", "proxyquire": "2.1.3", "source-map-support": "0.5.21", "superagent": "8.0.6", "supertest": "6.3.3", "ts-node": "10.9.1", "tsc-watch": "5.0.3", "typescript": "4.8.4" }, "resolutions": { "async": "^3.2.4", "db-migrate/rc/minimist": "^1.2.5", "es5-ext": "0.10.62", "knex/liftoff/object.map/**/kind-of": "^6.0.3", "knex/liftoff/findup-sync/micromatc/kind-of": "^6.0.3", "knex/liftoff/findup-sync/micromatc/nanomatch/kind-of": "^6.0.3", "knex/liftoff/findup-sync/micromatch/define-property/**/kind-of": "^6.0.3", "node-forge": "^1.0.0", "set-value": "^4.0.1", "ansi-regex": "^5.0.1", "ssh2": "^1.4.0", "json-schema": "^0.4.0", "minimatch": "^5.0.0" }, "lint-staged": { "*.{js,ts}": [ "eslint --fix" ], "*.{json,yaml,md}": [ "prettier --write" ] }, "prettier": { "proseWrap": "never", "singleQuote": true, "tabWidth": 4, "trailingComma": "all", "overrides": [ { "files": "*.{json,yaml,yml,md}", "options": { "tabWidth": 2 } } ] } }