|  | @@ -1,105 +1,136 @@
 | 
	
		
			
				|  |  | -const path = require('path');
 | 
	
		
			
				|  |  | -const HtmlWebpackPlugin = require('html-webpack-plugin');
 | 
	
		
			
				|  |  | -const UpdateVersionPlugin = require('./updateVersionPlugin');
 | 
	
		
			
				|  |  | +const path = require("path");
 | 
	
		
			
				|  |  | +const HtmlWebpackPlugin = require("html-webpack-plugin");
 | 
	
		
			
				|  |  | +const UpdateVersionPlugin = require("./updateVersionPlugin");
 | 
	
		
			
				|  |  |  //const ChangeScriptSourcePlugin = require('./changeScriptSourcePlugin');
 | 
	
		
			
				|  |  | -const CopyPlugin = require('copy-webpack-plugin');
 | 
	
		
			
				|  |  | -const CleanWebpackPlugin = require('clean-webpack-plugin');
 | 
	
		
			
				|  |  | +const CopyPlugin = require("copy-webpack-plugin");
 | 
	
		
			
				|  |  | +const CleanWebpackPlugin = require("clean-webpack-plugin");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  module.exports = {
 | 
	
		
			
				|  |  | -    entry: path.resolve(__dirname, 'js/main.js'),
 | 
	
		
			
				|  |  | -    output: {
 | 
	
		
			
				|  |  | -        path: path.resolve(__dirname, 'build',"js"),
 | 
	
		
			
				|  |  | -        filename: '[name].[contenthash].js',
 | 
	
		
			
				|  |  | -        library: 'ivprogCore',
 | 
	
		
			
				|  |  | -        libraryTarget: 'umd'
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    node: {
 | 
	
		
			
				|  |  | -        fs: 'empty',
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    module: {
 | 
	
		
			
				|  |  | -        rules: [
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              test: /\.js$/,
 | 
	
		
			
				|  |  | -              exclude: /(node_modules)/,
 | 
	
		
			
				|  |  | -              use: {
 | 
	
		
			
				|  |  | -                loader: "babel-loader",
 | 
	
		
			
				|  |  | -                options: {
 | 
	
		
			
				|  |  | -                  presets: ["@babel/preset-env"]
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              test: /\.g4$/,
 | 
	
		
			
				|  |  | -              exclude: /(node_modules)/,
 | 
	
		
			
				|  |  | -              use: {
 | 
	
		
			
				|  |  | -                loader:'antlr4-webpack-loader'
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              test: /\.tsx?$/,
 | 
	
		
			
				|  |  | -              use: 'ts-loader',
 | 
	
		
			
				|  |  | -              exclude: /node_modules/
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              test: /\.csv$/,
 | 
	
		
			
				|  |  | -              use: [
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                  loader: path.resolve(__dirname, 'i18n_csv_loader')
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -              ],
 | 
	
		
			
				|  |  | -              exclude: /node_modules/
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        ]
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    resolve: {
 | 
	
		
			
				|  |  | -      extensions: [ '.tsx', '.ts', '.js', '.csv' ]
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    stats: {
 | 
	
		
			
				|  |  | -        colors: true
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    plugins: [
 | 
	
		
			
				|  |  | -      new CleanWebpackPlugin({
 | 
	
		
			
				|  |  | -        cleanOnceBeforeBuildPatterns:[path.resolve(__dirname, 'build/**/*')],
 | 
	
		
			
				|  |  | -        watch: true
 | 
	
		
			
				|  |  | -      }),
 | 
	
		
			
				|  |  | -      new UpdateVersionPlugin(),
 | 
	
		
			
				|  |  | -      new HtmlWebpackPlugin({
 | 
	
		
			
				|  |  | -        template: 'templates/index.html',
 | 
	
		
			
				|  |  | -        filename: path.resolve(__dirname, 'build', 'index.html')
 | 
	
		
			
				|  |  | -      }),
 | 
	
		
			
				|  |  | -      new HtmlWebpackPlugin({
 | 
	
		
			
				|  |  | -        template: 'templates/runner.html',
 | 
	
		
			
				|  |  | -        filename: path.resolve(__dirname, 'build', 'runner.html')
 | 
	
		
			
				|  |  | -      }),
 | 
	
		
			
				|  |  | -      /*new ChangeScriptSourcePlugin(),*/
 | 
	
		
			
				|  |  | -      new CopyPlugin([
 | 
	
		
			
				|  |  | -        {from:'js/iassign-integration-functions.js', to:path.resolve(__dirname, 'build/js')},
 | 
	
		
			
				|  |  | -        {from:"css/ivprog-visual-1.0.css", to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:"css/ivprog-term.css", to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:"css/ivprog-assessment.css", to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:"css/ivprog-editor.css", to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:"css/roboto.css", to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:"css/fonts/", to:path.resolve(__dirname, 'build/css/fonts')},
 | 
	
		
			
				|  |  | -        {from:'js/Sortable.js', to:path.resolve(__dirname, 'build/js')},
 | 
	
		
			
				|  |  | -        {from: 'img/trash-icon.png', to:path.resolve(__dirname, 'build/img')},
 | 
	
		
			
				|  |  | -        {from: 'img/empty.svg', to:path.resolve(__dirname, 'build/img')},
 | 
	
		
			
				|  |  | -        {from:'js/jquery.json-editor.min.js', to:path.resolve(__dirname, 'build/js')},
 | 
	
		
			
				|  |  | -        {from:'node_modules/codemirror/lib/codemirror.css', to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:'node_modules/codemirror/addon/hint/show-hint.css', to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        {from:'node_modules/codemirror/theme/ttcn.css', to:path.resolve(__dirname, 'build/css')},
 | 
	
		
			
				|  |  | -        /*{from:'index.html', to:path.resolve(__dirname, 'build')},
 | 
	
		
			
				|  |  | -        {from:'runner.html', to:path.resolve(__dirname, 'build')},*/
 | 
	
		
			
				|  |  | -      ])
 | 
	
		
			
				|  |  | -    ],
 | 
	
		
			
				|  |  | -    optimization: {
 | 
	
		
			
				|  |  | -        splitChunks: {
 | 
	
		
			
				|  |  | -            chunks: 'all'
 | 
	
		
			
				|  |  | +  entry: path.resolve(__dirname, "js/main.js"),
 | 
	
		
			
				|  |  | +  output: {
 | 
	
		
			
				|  |  | +    path: path.resolve(__dirname, "build", "js"),
 | 
	
		
			
				|  |  | +    filename: "[name].[contenthash].js",
 | 
	
		
			
				|  |  | +    library: "ivprogCore",
 | 
	
		
			
				|  |  | +    libraryTarget: "umd"
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  node: {
 | 
	
		
			
				|  |  | +    fs: "empty"
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  module: {
 | 
	
		
			
				|  |  | +    rules: [
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        test: /\.js$/,
 | 
	
		
			
				|  |  | +        exclude: /(node_modules)/,
 | 
	
		
			
				|  |  | +        use: {
 | 
	
		
			
				|  |  | +          loader: "babel-loader",
 | 
	
		
			
				|  |  | +          options: {
 | 
	
		
			
				|  |  | +            presets: ["@babel/preset-env"]
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        test: /\.g4$/,
 | 
	
		
			
				|  |  | +        exclude: /(node_modules)/,
 | 
	
		
			
				|  |  | +        use: {
 | 
	
		
			
				|  |  | +          loader: "antlr4-webpack-loader"
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    devtool: 'source-map',
 | 
	
		
			
				|  |  | -    watchOptions: {
 | 
	
		
			
				|  |  | -        ignored: [
 | 
	
		
			
				|  |  | -          path.resolve(__dirname, '.ima_version.json'),
 | 
	
		
			
				|  |  | -        ]
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        test: /\.tsx?$/,
 | 
	
		
			
				|  |  | +        use: "ts-loader",
 | 
	
		
			
				|  |  | +        exclude: /node_modules/
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        test: /\.csv$/,
 | 
	
		
			
				|  |  | +        use: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            loader: path.resolve(__dirname, "i18n_csv_loader")
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        exclude: /node_modules/
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    ]
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  resolve: {
 | 
	
		
			
				|  |  | +    extensions: [".tsx", ".ts", ".js", ".csv"]
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  stats: {
 | 
	
		
			
				|  |  | +    colors: true
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  plugins: [
 | 
	
		
			
				|  |  | +    new CleanWebpackPlugin({
 | 
	
		
			
				|  |  | +      cleanOnceBeforeBuildPatterns: [path.resolve(__dirname, "build/**/*")],
 | 
	
		
			
				|  |  | +      watch: true
 | 
	
		
			
				|  |  | +    }),
 | 
	
		
			
				|  |  | +    new UpdateVersionPlugin(),
 | 
	
		
			
				|  |  | +    new HtmlWebpackPlugin({
 | 
	
		
			
				|  |  | +      template: "templates/index.html",
 | 
	
		
			
				|  |  | +      filename: path.resolve(__dirname, "build", "index.html")
 | 
	
		
			
				|  |  | +    }),
 | 
	
		
			
				|  |  | +    new HtmlWebpackPlugin({
 | 
	
		
			
				|  |  | +      template: "templates/runner.html",
 | 
	
		
			
				|  |  | +      filename: path.resolve(__dirname, "build", "runner.html")
 | 
	
		
			
				|  |  | +    }),
 | 
	
		
			
				|  |  | +    /*new ChangeScriptSourcePlugin(),*/
 | 
	
		
			
				|  |  | +    new CopyPlugin([
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "js/iassign-integration-functions.js",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/js")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "css/ivprog-visual-1.0.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      { from: "css/ivprog-term.css", to: path.resolve(__dirname, "build/css") },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "css/ivprog-assessment.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "css/ivprog-editor.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      { from: "css/roboto.css", to: path.resolve(__dirname, "build/css") },
 | 
	
		
			
				|  |  | +      { from: "css/fonts/", to: path.resolve(__dirname, "build/css/fonts") },
 | 
	
		
			
				|  |  | +      { from: "js/Sortable.js", to: path.resolve(__dirname, "build/js") },
 | 
	
		
			
				|  |  | +      { from: "js/jquery.min.js", to: path.resolve(__dirname, "build/js") },
 | 
	
		
			
				|  |  | +      { from: "js/jquery-ui.min.js", to: path.resolve(__dirname, "build/js") },
 | 
	
		
			
				|  |  | +      { from: "js/semantic.min.js", to: path.resolve(__dirname, "build/js") },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "css/semantic.min.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      { from: "css/themes/", to: path.resolve(__dirname, "build/css/themes") },
 | 
	
		
			
				|  |  | +      { from: "img/trash-icon.png", to: path.resolve(__dirname, "build/img") },
 | 
	
		
			
				|  |  | +      { from: "img/empty.svg", to: path.resolve(__dirname, "build/img") },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "js/jquery.json-editor.min.js",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/js")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "node_modules/codemirror/lib/codemirror.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "node_modules/codemirror/addon/hint/show-hint.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        from: "node_modules/codemirror/theme/ttcn.css",
 | 
	
		
			
				|  |  | +        to: path.resolve(__dirname, "build/css")
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      /*{from:'index.html', to:path.resolve(__dirname, 'build')},
 | 
	
		
			
				|  |  | +        {from:'runner.html', to:path.resolve(__dirname, 'build')},*/
 | 
	
		
			
				|  |  | +    ])
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  optimization: {
 | 
	
		
			
				|  |  | +    splitChunks: {
 | 
	
		
			
				|  |  | +      chunks: "all"
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  devtool: "source-map",
 | 
	
		
			
				|  |  | +  watchOptions: {
 | 
	
		
			
				|  |  | +    ignored: [path.resolve(__dirname, ".ima_version.json")]
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 |