mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-25 00:07:47 +01:00
a53d50148b
## About the changes Instead of building from source (we require Node 18 but [DigitalOcean buildpack currently does not support it](https://www.digitalocean.com/community/questions/app-platform-node-build-pack-can-t-use-node-version-18)), we're going to use our Docker image from DockerHub: https://hub.docker.com/r/unleashorg/unleash-server Additionally, I realized that our Dockerfile only works in our CI (or performing a pre-build step which consists of building the frontend). With this PR I've also made a change to build the frontend if needed. That way our CI will continue to be optimal while anyone trying to build it from source will be able to do it by just running `docker build .` Closes #4261
266 lines
8.7 KiB
JSON
266 lines
8.7 KiB
JSON
{
|
||
"name": "unleash-server",
|
||
"description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
|
||
"version": "5.3.0-main",
|
||
"keywords": [
|
||
"unleash",
|
||
"feature toggle",
|
||
"feature",
|
||
"toggle"
|
||
],
|
||
"files": [
|
||
"dist",
|
||
"docs",
|
||
"frontend/build",
|
||
"frontend/build/*",
|
||
"frontend/index.js",
|
||
"frontend/package.json"
|
||
],
|
||
"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": ">=18"
|
||
},
|
||
"license": "Apache-2.0",
|
||
"main": "./dist/lib/server-impl.js",
|
||
"scripts": {
|
||
"start": "TZ=UTC node ./dist/server.js",
|
||
"copy-templates": "copyfiles -u 1 src/mailtemplates/**/*.mustache dist/",
|
||
"build:backend": "tsc --pretty --strictNullChecks false",
|
||
"build:frontend": "yarn --cwd ./frontend run build",
|
||
"build:frontend:if-needed": "if [ ! -d ./frontend/build ]; then yarn install --cwd ./frontend --frozen-lockfile --ignore-scripts && yarn build:frontend; fi",
|
||
"build": "concurrently \"yarn:copy-templates\" \"yarn:build:frontend\" \"yarn:build:backend\"",
|
||
"dev:backend": "TZ=UTC NODE_ENV=development tsc-watch --strictNullChecks false --onSuccess \"node dist/server-dev.js\"",
|
||
"dev:frontend": "wait-on tcp:4242 && yarn --cwd ./frontend run dev",
|
||
"dev": "concurrently \"yarn:dev:backend\" \"yarn:dev:frontend\"",
|
||
"prepare": "node scripts/husky-install && yarn --cwd ./frontend install && if [ ! -d ./dist ]; then yarn build; fi",
|
||
"prepare:backend": "concurrently \"yarn:copy-templates\" \"yarn:build:backend\"",
|
||
"prestart:dev": "yarn run clean",
|
||
"start:dev": "TZ=UTC NODE_ENV=development tsc-watch --strictNullChecks false --onSuccess \"node dist/server-dev.js\"",
|
||
"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 --strictNullChecks false",
|
||
"prebuild": "yarn run clean",
|
||
"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:report": "NODE_ENV=test PORT=4243 jest --reporters=\"default\" --reporters=\"jest-junit\"",
|
||
"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",
|
||
"pretest:coverage:jest": "yarn build:frontend",
|
||
"test:coverage:jest": "NODE_ENV=test PORT=4243 jest --silent --ci --json --coverage --testLocationInResults --outputFile=\"report.json\" --forceExit --testTimeout=10000",
|
||
"seed:setup": "ts-node --compilerOptions '{\"strictNullChecks\": false}' 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-junit": {
|
||
"suiteName": "Unleash Unit Tests",
|
||
"outputDirectory": "./reports",
|
||
"outputName": "jest-junit.xml",
|
||
"uniqueOutputName": "false",
|
||
"classNameTemplate": "{classname}-{title}",
|
||
"titleTemplate": "{classname}-{title}",
|
||
"ancestorSeparator": " › ",
|
||
"usePathForSuiteName": "true"
|
||
},
|
||
"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": {
|
||
"@slack/web-api": "^6.8.1",
|
||
"@unleash/express-openapi": "^0.3.0",
|
||
"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.3.0",
|
||
"db-migrate-shared": "1.2.0",
|
||
"deep-object-diff": "^1.1.9",
|
||
"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",
|
||
"hash-sum": "^2.0.0",
|
||
"helmet": "^6.0.0",
|
||
"http-errors": "^2.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.9.1",
|
||
"json2csv": "^5.0.7",
|
||
"knex": "^2.4.2",
|
||
"lodash.get": "^4.4.2",
|
||
"lodash.groupby": "^4.6.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",
|
||
"sanitize-filename": "^1.6.3",
|
||
"semver": "^7.5.3",
|
||
"serve-favicon": "^2.5.0",
|
||
"stoppable": "^1.1.0",
|
||
"ts-toolbelt": "^9.6.0",
|
||
"type-is": "^1.6.18",
|
||
"unleash-client": "3.21.0",
|
||
"uuid": "^9.0.0"
|
||
},
|
||
"devDependencies": {
|
||
"@apidevtools/swagger-parser": "10.1.0",
|
||
"@babel/core": "7.22.5",
|
||
"@swc/core": "1.3.67",
|
||
"@swc/jest": "0.2.26",
|
||
"@types/bcryptjs": "2.4.2",
|
||
"@types/cors": "2.8.13",
|
||
"@types/express": "4.17.17",
|
||
"@types/express-session": "1.17.7",
|
||
"@types/faker": "5.5.9",
|
||
"@types/hash-sum": "^1.0.0",
|
||
"@types/jest": "29.5.2",
|
||
"@types/js-yaml": "4.0.5",
|
||
"@types/lodash.groupby": "4.6.7",
|
||
"@types/make-fetch-happen": "10.0.1",
|
||
"@types/memoizee": "0.4.8",
|
||
"@types/mime": "3.0.1",
|
||
"@types/node": "16.18.37",
|
||
"@types/nodemailer": "6.4.8",
|
||
"@types/owasp-password-strength-test": "1.3.0",
|
||
"@types/pg": "8.10.2",
|
||
"@types/semver": "7.5.0",
|
||
"@types/stoppable": "1.1.1",
|
||
"@types/supertest": "2.0.12",
|
||
"@types/type-is": "1.6.3",
|
||
"@types/uuid": "9.0.2",
|
||
"@typescript-eslint/eslint-plugin": "5.60.1",
|
||
"@typescript-eslint/parser": "5.60.1",
|
||
"concurrently": "^8.0.1",
|
||
"copyfiles": "2.4.1",
|
||
"coveralls": "3.1.1",
|
||
"del-cli": "5.0.0",
|
||
"eslint": "^8.38.0",
|
||
"eslint-config-airbnb-base": "15.0.0",
|
||
"eslint-config-airbnb-typescript": "17.0.0",
|
||
"eslint-config-prettier": "8.8.0",
|
||
"eslint-plugin-import": "2.27.5",
|
||
"eslint-plugin-no-only-tests": "^3.1.0",
|
||
"eslint-plugin-prettier": "4.2.1",
|
||
"eslint-plugin-regexp": "^1.14.0",
|
||
"faker": "5.5.3",
|
||
"fast-check": "3.10.0",
|
||
"fetch-mock": "9.11.0",
|
||
"husky": "8.0.3",
|
||
"jest": "29.5.0",
|
||
"jest-junit": "^16.0.0",
|
||
"lint-staged": "13.2.3",
|
||
"nock": "13.3.1",
|
||
"openapi-enforcer": "1.22.3",
|
||
"prettier": "2.8.1",
|
||
"proxyquire": "2.1.3",
|
||
"source-map-support": "0.5.21",
|
||
"superagent": "8.0.9",
|
||
"supertest": "6.3.3",
|
||
"ts-node": "10.9.1",
|
||
"tsc-watch": "6.0.4",
|
||
"typescript": "4.8.4",
|
||
"wait-on": "^7.0.1"
|
||
},
|
||
"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",
|
||
"semver": "^7.5.3"
|
||
},
|
||
"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
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|