aboutsummaryrefslogtreecommitdiffstats
path: root/language-web
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <marussy@mit.bme.hu>2021-06-30 00:14:27 +0200
committerLibravatar Kristóf Marussy <marussy@mit.bme.hu>2021-06-30 00:14:27 +0200
commita98365fce92c621f1725d591dbec665b6060157f (patch)
treed5442766a0f2b043202ba5ec20a84b1caf1e106e /language-web
parentPin all m2 dependency versions (diff)
downloadrefinery-a98365fce92c621f1725d591dbec665b6060157f.tar.gz
refinery-a98365fce92c621f1725d591dbec665b6060157f.tar.zst
refinery-a98365fce92c621f1725d591dbec665b6060157f.zip
Webpack subresource integrity
Diffstat (limited to 'language-web')
-rw-r--r--language-web/build.gradle9
-rw-r--r--language-web/package-lock.json21
-rw-r--r--language-web/package.json4
-rw-r--r--language-web/webpack.config.js5
4 files changed, 35 insertions, 4 deletions
diff --git a/language-web/build.gradle b/language-web/build.gradle
index 5cf7e684..dcb69406 100644
--- a/language-web/build.gradle
+++ b/language-web/build.gradle
@@ -12,7 +12,8 @@ dependencies {
12def webpackOutputDir = "${buildDir}/webpack" 12def webpackOutputDir = "${buildDir}/webpack"
13def productionResources = "${webpackOutputDir}/production" 13def productionResources = "${webpackOutputDir}/production"
14def mainClass = 'org.eclipse.viatra.solver.language.web.ServerLauncher' 14def mainClass = 'org.eclipse.viatra.solver.language.web.ServerLauncher'
15def currentNodeEnv = System.getenv('NODE_ENV') ?: 'development' 15def devMode = System.getenv('NODE_ENV') != 'production'
16def currentNodeEnv = devMode ? 'development' : 'production'
16 17
17apply plugin: 'com.moowork.node' 18apply plugin: 'com.moowork.node'
18 19
@@ -59,7 +60,11 @@ shadowJar {
59} 60}
60 61
61task jettyRun(type: JavaExec) { 62task jettyRun(type: JavaExec) {
62 dependsOn webpackDevelopment 63 if (devMode) {
64 dependsOn webpackDevelopment
65 } else {
66 dependsOn webpackProduction
67 }
63 dependsOn sourceSets.main.runtimeClasspath 68 dependsOn sourceSets.main.runtimeClasspath
64 classpath = sourceSets.main.runtimeClasspath.filter{it.exists()} 69 classpath = sourceSets.main.runtimeClasspath.filter{it.exists()}
65 main = mainClass 70 main = mainClass
diff --git a/language-web/package-lock.json b/language-web/package-lock.json
index 1c98ca49..b785cfe9 100644
--- a/language-web/package-lock.json
+++ b/language-web/package-lock.json
@@ -1666,6 +1666,12 @@
1666 "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", 1666 "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
1667 "dev": true 1667 "dev": true
1668 }, 1668 },
1669 "before-build-webpack": {
1670 "version": "0.2.11",
1671 "resolved": "https://registry.npmjs.org/before-build-webpack/-/before-build-webpack-0.2.11.tgz",
1672 "integrity": "sha512-xigRuKoJmla3cO/BP76CDlmkXmQFrjlHv6oS16RxmbckYTfi5I3ZBp7MnoKv+C05DqDT1pSl+znLf7pv1Vv4ew==",
1673 "dev": true
1674 },
1669 "big.js": { 1675 "big.js": {
1670 "version": "5.2.2", 1676 "version": "5.2.2",
1671 "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", 1677 "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
@@ -8719,6 +8725,12 @@
8719 "mime-types": "~2.1.24" 8725 "mime-types": "~2.1.24"
8720 } 8726 }
8721 }, 8727 },
8728 "typed-assert": {
8729 "version": "1.0.7",
8730 "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.7.tgz",
8731 "integrity": "sha512-TiBedJnGT3nNss19TyQ/JLwXy57pNDYBAja1gC0uLCKN4ps7FF3sSh71oImHDiKk8i5EuQ1G0CEOPeeA+ClWXQ==",
8732 "dev": true
8733 },
8722 "unbox-primitive": { 8734 "unbox-primitive": {
8723 "version": "1.0.1", 8735 "version": "1.0.1",
8724 "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", 8736 "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -9448,6 +9460,15 @@
9448 } 9460 }
9449 } 9461 }
9450 }, 9462 },
9463 "webpack-subresource-integrity": {
9464 "version": "5.0.0-alpha.5",
9465 "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.0.0-alpha.5.tgz",
9466 "integrity": "sha512-bZVkt3W7wbvNXoM+vHNNTB9V6z0Xce1MJRcMeK7EwY0Nf4RpOxp8S5APRWKWDZX6ufxIZ9MZo8aISZRUcvO3uA==",
9467 "dev": true,
9468 "requires": {
9469 "typed-assert": "^1.0.4"
9470 }
9471 },
9451 "websocket-driver": { 9472 "websocket-driver": {
9452 "version": "0.7.4", 9473 "version": "0.7.4",
9453 "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", 9474 "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
diff --git a/language-web/package.json b/language-web/package.json
index f4813a49..7ae01946 100644
--- a/language-web/package.json
+++ b/language-web/package.json
@@ -22,6 +22,7 @@
22 "@babel/core": "^7.14.6", 22 "@babel/core": "^7.14.6",
23 "@babel/preset-env": "^7.14.7", 23 "@babel/preset-env": "^7.14.7",
24 "babel-loader": "^8.2.2", 24 "babel-loader": "^8.2.2",
25 "before-build-webpack": "^0.2.11",
25 "css-loader": "^5.2.6", 26 "css-loader": "^5.2.6",
26 "file-loader": "^6.2.0", 27 "file-loader": "^6.2.0",
27 "html-webpack-plugin": "^5.3.2", 28 "html-webpack-plugin": "^5.3.2",
@@ -32,7 +33,8 @@
32 "style-loader": "^3.0.0", 33 "style-loader": "^3.0.0",
33 "webpack": "^5.41.0", 34 "webpack": "^5.41.0",
34 "webpack-cli": "^4.7.2", 35 "webpack-cli": "^4.7.2",
35 "webpack-dev-server": "^3.11.2" 36 "webpack-dev-server": "^3.11.2",
37 "webpack-subresource-integrity": "^5.0.0-alpha.5"
36 }, 38 },
37 "dependencies": { 39 "dependencies": {
38 "codemirror": "^5.62.0", 40 "codemirror": "^5.62.0",
diff --git a/language-web/webpack.config.js b/language-web/webpack.config.js
index f047f6c6..385c1024 100644
--- a/language-web/webpack.config.js
+++ b/language-web/webpack.config.js
@@ -3,7 +3,8 @@ const path = require('path');
3 3
4const WebpackBeforeBuildPlugin = require('before-build-webpack'); 4const WebpackBeforeBuildPlugin = require('before-build-webpack');
5const HtmlWebpackPlugin = require('html-webpack-plugin'); 5const HtmlWebpackPlugin = require('html-webpack-plugin');
6const MiniCssExtractPlugin = require("mini-css-extract-plugin"); 6const MiniCssExtractPlugin = require('mini-css-extract-plugin');
7const { SubresourceIntegrityPlugin } = require('webpack-subresource-integrity');
7 8
8const currentNodeEnv = process.env.NODE_ENV || 'development'; 9const currentNodeEnv = process.env.NODE_ENV || 'development';
9const devMode = currentNodeEnv !== 'production'; 10const devMode = currentNodeEnv !== 'production';
@@ -28,6 +29,7 @@ module.exports = {
28 publicPath: '/', 29 publicPath: '/',
29 filename: devMode ? '[name].js' : '[contenthash].js', 30 filename: devMode ? '[name].js' : '[contenthash].js',
30 chunkFilename: devMode ? '[id].js' : '[contenthash].js', 31 chunkFilename: devMode ? '[id].js' : '[contenthash].js',
32 crossOriginLoading: 'anonymous',
31 }, 33 },
32 module: { 34 module: {
33 rules: [ 35 rules: [
@@ -103,6 +105,7 @@ module.exports = {
103 filename: '[contenthash].css', 105 filename: '[contenthash].css',
104 chunkFilename: '[contenthash].css', 106 chunkFilename: '[contenthash].css',
105 }), 107 }),
108 new SubresourceIntegrityPlugin(),
106 new HtmlWebpackPlugin({ 109 new HtmlWebpackPlugin({
107 template: 'src/main/html/index.html', 110 template: 'src/main/html/index.html',
108 minify: devMode ? false : { 111 minify: devMode ? false : {