diff --git a/core/trino-web-ui/src/main/resources/allowed-licenses.txt b/core/trino-web-ui/src/main/resources/allowed-licenses.txt new file mode 100644 index 000000000000..9c0cd125b467 --- /dev/null +++ b/core/trino-web-ui/src/main/resources/allowed-licenses.txt @@ -0,0 +1,11 @@ +"0BSD" +"Apache-2.0" +"BSD-2-Clause" +"BSD-3-Clause" +"CC-BY-4.0" +"ISC" +"MIT" +"MIT AND ISC" +"OFL-1.1" +"Python-2.0" +"Unlicense" diff --git a/core/trino-web-ui/src/main/resources/webapp-preview/package.json b/core/trino-web-ui/src/main/resources/webapp-preview/package.json index 15c9a01ac283..7bd77ff42ca1 100644 --- a/core/trino-web-ui/src/main/resources/webapp-preview/package.json +++ b/core/trino-web-ui/src/main/resources/webapp-preview/package.json @@ -12,8 +12,9 @@ "preview": "vite preview", "prettier:format": "prettier --write \"./src/**/*.{ts,tsx}\"", "prettier:check": "prettier --check \"./src/**/*.{ts,tsx}\"", - "check": "npm install && npm run lint && npm run prettier:check", - "check:clean": "npm clean-install && npm run lint && npm run prettier:check" + "check": "npm install && npm run lint && npm run prettier:check && npm run check:licenses", + "check:clean": "npm clean-install && npm run lint && npm run prettier:check && npm run check:licenses", + "check:licenses": "USED_LICENSES=$(mktemp); jq '.packages | to_entries | map(select(.key != \"\") | .value.license)[]' package-lock.json | sort -u > $USED_LICENSES; if DIFFERENCES=$(grep -Fvxf ../allowed-licenses.txt $USED_LICENSES); then echo '\\033[0;31mLicense found in package-lock.json that is not in allowed-licenses.txt' >&2; echo $DIFFERENCES; exit 1; fi" }, "dependencies": { "@dagrejs/dagre": "^1.1.5", diff --git a/core/trino-web-ui/src/main/resources/webapp/src/package.json b/core/trino-web-ui/src/main/resources/webapp/src/package.json index 4079fda61213..c8cab098eff1 100644 --- a/core/trino-web-ui/src/main/resources/webapp/src/package.json +++ b/core/trino-web-ui/src/main/resources/webapp/src/package.json @@ -35,8 +35,9 @@ "package:clean": "npm clean-install && webpack --config webpack.config.js", "watch": "npm clean-install && webpack --config webpack.config.js --watch", "flow": "flow", - "check": "npm install && flow && prettier --check **/*.js **/*.jsx *.js *.jsx", - "check:clean": "npm clean-install && flow && prettier --check **/*.js **/*.jsx *.js *.jsx", + "check": "npm install && flow && prettier --check **/*.js **/*.jsx *.js *.jsx && npm run check:licenses", + "check:clean": "npm clean-install && flow && prettier --check **/*.js **/*.jsx *.js *.jsx && npm run check:licenses", + "check:licenses": "TEMP=$(mktemp); jq .packages[].license package-lock.json | grep -v 'null' | sort -u > $TEMP; if DIFFERENCES=$(grep -vxfF ../../allowed-licenses.txt $TEMP); then echo '\\033[0;31mLicense found in package-lock.json that is not in allowed-licenses.txt' >&2; echo $DIFFERENCES; exit 1; fi", "format": "prettier --write **/*.js **/*.jsx *.js *.jsx", "lint": "prettier --check **/*.js **/*.jsx" }