1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
unleash.unleash/package.json

226 lines
6.8 KiB
JSON
Raw Normal View History

{
2016-11-10 15:52:49 +01:00
"name": "unleash-server",
2017-02-15 22:23:08 +01:00
"description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
2022-10-17 09:16:20 +02:00
"version": "4.17.0-beta.1",
2016-05-01 15:43:25 +02:00
"keywords": [
"unleash",
"feature toggle",
"feature",
"toggle"
],
2016-11-10 15:52:49 +01:00
"files": [
"dist",
"docs",
"frontend/build"
2016-11-10 15:52:49 +01:00
],
2016-05-01 15:43:25 +02:00
"repository": {
"type": "git",
2016-11-13 15:31:10 +01:00
"url": "ssh://git@github.com:unleash/unleash.git"
2016-05-01 15:43:25 +02:00
},
"bugs": {
2016-11-13 15:31:10 +01:00
"url": "https://github.com/unleash/unleash/issues"
2016-05-01 15:43:25 +02:00
},
2021-08-13 13:51:29 +02:00
"types": "./dist/lib/server-impl.d.ts",
2016-05-01 15:43:25 +02:00
"engines": {
"node": ">=14"
2016-05-01 15:43:25 +02:00
},
"license": "Apache-2.0",
"main": "./dist/lib/server-impl.js",
2016-05-01 15:43:25 +02:00
"scripts": {
"start": "node ./dist/server.js",
2021-08-09 13:34:40 +02:00
"prestart:dev": "yarn run clean",
2021-02-15 08:39:28 +01:00
"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",
2021-08-09 13:34:40 +02:00
"prebuild:watch": "yarn run clean",
"build:watch": "tsc -w",
2021-08-09 13:34:40 +02:00
"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",
2016-11-10 15:52:49 +01:00
"test:docker": "./scripts/docker-postgres.sh",
2021-10-26 23:20:36 +02:00
"test:docker:cleanup": "docker rm -f unleash-postgres",
2021-01-26 10:10:37 +01:00
"test:watch": "yarn test --watch",
2022-05-20 11:14:41 +02:00
"test:coverage": "NODE_ENV=test PORT=4243 jest --coverage --testLocationInResults --outputFile=\"coverage/report.json\" --forceExit --testTimeout=10000",
2022-02-11 19:17:25 +01:00
"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",
2022-10-18 21:24:12 +02:00
"preversion": "./scripts/check-release.sh",
"heroku-postbuild": "cd frontend && yarn && yarn build"
2016-11-10 15:52:49 +01:00
},
"jest": {
"automock": false,
"maxWorkers": 4,
"testTimeout": 10000,
2022-09-01 21:22:15 +02:00
"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"
]
2019-06-06 08:10:58 +02:00
},
2016-11-10 15:52:49 +01:00
"dependencies": {
"@unleash/express-openapi": "^0.2.1-beta.0",
"ajv": "^8.11.0",
"ajv-formats": "^2.1.1",
"async": "^3.2.4",
2022-01-06 20:43:57 +01:00
"bcryptjs": "^2.4.3",
"compression": "^1.7.4",
"connect-session-knex": "^3.0.0",
"cookie-parser": "^1.4.5",
2020-10-02 16:38:51 +02:00
"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",
2019-10-03 15:32:48 +02:00
"errorhandler": "^1.5.1",
"express": "^4.17.1",
"express-rate-limit": "^6.6.0",
"express-session": "^1.17.1",
"fast-json-patch": "^3.1.0",
"gravatar-url": "^3.1.0",
"helmet": "^5.0.0",
feat(#1873/playground): Return detailed information on feature toggle evaluation (#1839) * Feat: return reasons why a feature evaluated to true or false Note: this is very rough and just straight ripped from the nodejs client. It will need a lot of work, but is a good place to start * Feat: add suggested shape for new payload * Chore: minor cleanup * Wip: make server compile again * Remove unused schema ref * Export new schemas * Chore: fix some tests to use sub property * Fix: fix some tests * Refactor: rename some variables, uncomment some stuff * Add segments type to bootstrap options * Add segments capability to offline feature evaluator * Fix function calls after turning params into an option abject * Feat: test strategy order, etc * Feat: add test to check that all strats are returned correctly * Feat: allow you to include strategy ids in clients * Wip: hook up segments in the offline client. Note: compared to regular clients, they still fail * Feat: add segments validation * Fix: fix test case invariant. * Chore: revert to returning only `boolean` from strategies. This _should_ make it work with custom strategies too 🤞 * Feat: make more properties of the returned feature required * Wip: add some comments and unfinished tests for edge cases * Feat: add `isEnabledInCurrentEnvironment` prop * Feat: consider more strategy failure cases * Feat: test that isenabledinenvironment matches expectations * Feat: add unknown strategies * Fix: fix property access typo * Feat: add unknown strategy for fallback purposes * Feat: test edge case: all unknown strategies * Feat: add custom strategy to arbitrary * Feat: test that features can be true, even if not enabled in env * Chore: add some comments * Wip: fix sdk tests * Remove comments, improve test logging * Feat: add descriptions and examples to playground feature schema * Switch `examples` for `example` * Update schemas with descriptions and examples * Fix: update snapshot * Fix: openapi example * Fix: merge issues * Fix: fix issue where feature evaluation state was wrong * Chore: update openapi spec * Fix: fix broken offline client tests * Refactor: move schemas into separate files * Refactor: remove "reason" for incomplete evaluation. The only instances where evaluation is incomplete is when we don't know what the strategy is. * Refactor: move unleash node client into test and dev dependencies * Wip: further removal of stuff * Chore: remove a bunch of code that we don't use * Chore: remove comment * Chore: remove unused code * Fix: fix some prettier errors * Type parameters in strategies to avoid `any` * Fix: remove commented out code * Feat: make `id` required on playground strategies * Chore: remove redundant type * Fix: remove redundant if and fix fallback evaluation * Refactor: reduce nesting and remove duplication * Fix: remove unused helper function * Refactor: type `parameters` as `unknown` * Chore: remove redundant comment * Refactor: move constraint code into a separate file * Refactor: rename `unleash` -> `feature-evaluator` * Rename class `Unleash` -> `FeatureEvaluator` * Refactor: remove this.ready and sync logic from feature evaluator * Refactor: remove unused code, rename config type * Refactor: remove event emission from the Unleash client * Remove unlistened-for events in feature evaluator * Refactor: make offline client synchronous; remove code * Fix: update openapi snapshot after adding required strategy ids * Feat: change `strategies` format. This commit changes the format of a playground feature's `strategies` properties from a list of strategies to an object with properties `result` and `data`. It looks a bit like this: ```ts type Strategies = { result: boolean | "unknown", data: Strategy[] } ``` The reason is that this allows us to avoid the breaking change that was previously suggested in the PR: `feature.isEnabled` used to be a straight boolean. Then, when we found out we couldn't necessarily evaluate all strategies (custom strats are hard!) we changed it to `boolean | 'unevaluated'`. However, this is confusing on a few levels as the playground results are no longer the same as the SDK would be, nor are they strictly boolean anymore. This change reverts the `isEnabled` functionality to what it was before (so it's always a mirror of what the SDK would show). The equivalent of `feature.isEnabled === 'unevaluated'` now becomes `feature.isEnabled && strategy.result === 'unknown'`. * Fix: Fold long string descriptions over multiple lines. * Fix: update snapshot after adding line breaks to descriptions
2022-08-04 15:41:52 +02:00
"ip": "^1.1.8",
"joi": "^17.3.0",
"js-yaml": "^4.1.0",
"json-schema-to-ts": "2.5.5",
"knex": "^2.0.0",
"log4js": "^6.0.0",
"make-fetch-happen": "^10.1.2",
"memoizee": "^0.4.15",
2022-04-25 14:27:23 +02:00
"mime": "^3.0.0",
2022-06-01 12:10:49 +02:00
"multer": "^1.4.5-lts.1",
feat(#1873/playground): Return detailed information on feature toggle evaluation (#1839) * Feat: return reasons why a feature evaluated to true or false Note: this is very rough and just straight ripped from the nodejs client. It will need a lot of work, but is a good place to start * Feat: add suggested shape for new payload * Chore: minor cleanup * Wip: make server compile again * Remove unused schema ref * Export new schemas * Chore: fix some tests to use sub property * Fix: fix some tests * Refactor: rename some variables, uncomment some stuff * Add segments type to bootstrap options * Add segments capability to offline feature evaluator * Fix function calls after turning params into an option abject * Feat: test strategy order, etc * Feat: add test to check that all strats are returned correctly * Feat: allow you to include strategy ids in clients * Wip: hook up segments in the offline client. Note: compared to regular clients, they still fail * Feat: add segments validation * Fix: fix test case invariant. * Chore: revert to returning only `boolean` from strategies. This _should_ make it work with custom strategies too 🤞 * Feat: make more properties of the returned feature required * Wip: add some comments and unfinished tests for edge cases * Feat: add `isEnabledInCurrentEnvironment` prop * Feat: consider more strategy failure cases * Feat: test that isenabledinenvironment matches expectations * Feat: add unknown strategies * Fix: fix property access typo * Feat: add unknown strategy for fallback purposes * Feat: test edge case: all unknown strategies * Feat: add custom strategy to arbitrary * Feat: test that features can be true, even if not enabled in env * Chore: add some comments * Wip: fix sdk tests * Remove comments, improve test logging * Feat: add descriptions and examples to playground feature schema * Switch `examples` for `example` * Update schemas with descriptions and examples * Fix: update snapshot * Fix: openapi example * Fix: merge issues * Fix: fix issue where feature evaluation state was wrong * Chore: update openapi spec * Fix: fix broken offline client tests * Refactor: move schemas into separate files * Refactor: remove "reason" for incomplete evaluation. The only instances where evaluation is incomplete is when we don't know what the strategy is. * Refactor: move unleash node client into test and dev dependencies * Wip: further removal of stuff * Chore: remove a bunch of code that we don't use * Chore: remove comment * Chore: remove unused code * Fix: fix some prettier errors * Type parameters in strategies to avoid `any` * Fix: remove commented out code * Feat: make `id` required on playground strategies * Chore: remove redundant type * Fix: remove redundant if and fix fallback evaluation * Refactor: reduce nesting and remove duplication * Fix: remove unused helper function * Refactor: type `parameters` as `unknown` * Chore: remove redundant comment * Refactor: move constraint code into a separate file * Refactor: rename `unleash` -> `feature-evaluator` * Rename class `Unleash` -> `FeatureEvaluator` * Refactor: remove this.ready and sync logic from feature evaluator * Refactor: remove unused code, rename config type * Refactor: remove event emission from the Unleash client * Remove unlistened-for events in feature evaluator * Refactor: make offline client synchronous; remove code * Fix: update openapi snapshot after adding required strategy ids * Feat: change `strategies` format. This commit changes the format of a playground feature's `strategies` properties from a list of strategies to an object with properties `result` and `data`. It looks a bit like this: ```ts type Strategies = { result: boolean | "unknown", data: Strategy[] } ``` The reason is that this allows us to avoid the breaking change that was previously suggested in the PR: `feature.isEnabled` used to be a straight boolean. Then, when we found out we couldn't necessarily evaluate all strategies (custom strats are hard!) we changed it to `boolean | 'unevaluated'`. However, this is confusing on a few levels as the playground results are no longer the same as the SDK would be, nor are they strictly boolean anymore. This change reverts the `isEnabled` functionality to what it was before (so it's always a mirror of what the SDK would show). The equivalent of `feature.isEnabled === 'unevaluated'` now becomes `feature.isEnabled && strategy.result === 'unknown'`. * Fix: Fold long string descriptions over multiple lines. * Fix: update snapshot after adding line breaks to descriptions
2022-08-04 15:41:52 +02:00
"murmurhash3js": "^3.0.1",
"mustache": "^4.1.0",
"nodemailer": "^6.5.0",
"openapi-types": "^12.0.0",
"owasp-password-strength-test": "^1.3.0",
2016-11-12 11:21:40 +01:00
"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.15.0",
"use-deep-compare-effect": "^1.8.1",
"uuid": "^8.3.2"
2016-05-01 15:43:25 +02:00
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.1.0",
"@babel/core": "7.19.6",
"@swc/core": "1.3.9",
"@swc/jest": "0.2.23",
2022-01-06 20:43:57 +01:00
"@types/bcryptjs": "2.4.2",
"@types/cors": "2.8.12",
"@types/express": "4.17.14",
"@types/express-session": "1.17.5",
"@types/faker": "5.5.9",
"@types/jest": "29.0.0",
"@types/js-yaml": "4.0.5",
"@types/make-fetch-happen": "10.0.0",
"@types/memoizee": "0.4.8",
"@types/mime": "3.0.1",
"@types/node": "16.6.1",
"@types/nodemailer": "6.4.6",
"@types/owasp-password-strength-test": "1.3.0",
"@types/semver": "7.3.12",
"@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.36.1",
"@typescript-eslint/parser": "5.36.1",
"copyfiles": "2.4.1",
"coveralls": "3.1.1",
"del-cli": "5.0.0",
"eslint": "8.25.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-prettier": "4.2.1",
2022-01-05 11:00:08 +01:00
"faker": "5.5.3",
"fast-check": "3.3.0",
"fetch-mock": "9.11.0",
"husky": "8.0.1",
"jest": "29.0.1",
"lint-staged": "13.0.3",
"nock": "13.2.9",
"openapi-enforcer": "1.22.0",
"prettier": "2.7.1",
"proxyquire": "2.1.3",
"source-map-support": "0.5.21",
"superagent": "8.0.0",
"supertest": "6.3.0",
"ts-node": "10.9.1",
"tsc-watch": "5.0.3",
"typescript": "4.8.4"
},
2019-10-05 08:10:38 +02:00
"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",
2020-11-24 12:51:44 +01:00
"knex/liftoff/findup-sync/micromatch/define-property/**/kind-of": "^6.0.3",
"node-forge": "^1.0.0",
2021-09-27 13:26:18 +02:00
"set-value": "^4.0.1",
"ansi-regex": "^5.0.1",
"ssh2": "^1.4.0",
"json-schema": "^0.4.0"
2019-10-05 08:10:38 +02:00
},
2017-06-28 14:14:55 +02:00
"lint-staged": {
"*.{js,ts}": [
2021-02-11 14:08:33 +01:00
"eslint --fix"
2018-11-22 11:22:18 +01:00
],
"*.{json,yaml,md}": [
2021-02-11 14:08:33 +01:00
"prettier --write"
]
2018-11-22 09:03:36 +01:00
},
2018-11-22 11:17:50 +01:00
"prettier": {
"proseWrap": "never",
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "all",
"overrides": [
{
"files": "*.{json,yaml,yml,md}",
2018-11-22 11:17:50 +01:00
"options": {
"tabWidth": 2
}
}
]
}
2014-10-23 14:13:17 +02:00
}