text: /**
   * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
   * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
   */
  
  'use strict';
  
  /* eslint-env node */
  
  const path = require( 'path' );
  const webpack = require( 'webpack' );
  const { bundler, styles } = require( '@ckeditor/ckeditor5-dev-utils' );
  const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
  const TerserPlugin = require( 'terser-webpack-plugin' );
  const CopyPlugin = require( 'copy-webpack-plugin' );
  
  module.exports = {
  	devtool: 'source-map',
  	performance: { hints: false },
  
  	entry: path.resolve( __dirname, 'src', 'ckeditor.js' ),
  
  	output: {
  		// The name under which the editor will be exported.
  		library: 'ClassicEditor',
  
  		path: path.resolve( __dirname, 'build' ),
  		filename: 'ckeditor.js',
  		libraryTarget: 'umd',
  		libraryExport: 'default'
  	},
  
  	optimization: {
  		minimizer: [
  			new TerserPlugin( {
  				sourceMap: true,
  				terserOptions: {
  					output: {
  						// Preserve CKEditor 5 license comments.
  						comments: /^!/
  					}
  				},
  				extractComments: false
  			} )
  		]
  	},
  
  	plugins: [
  		new CKEditorWebpackPlugin( {
  			// UI language. Language codes follow the https://en.wikipedia.org/wiki/ISO_639-1 format.
  			// When changing the built-in language, remember to also change it in the editor's configuration (src/ckeditor.js).
  			language: 'en',
  			additionalLanguages: 'all'
  		} ),
  		new webpack.BannerPlugin( {
  			banner: bundler.getLicenseBanner(),
  			raw: true
  		} ),
  		new CopyPlugin( [ { from: 'src/*.d.ts', to: './', flatten: true } ] )
  	],
  
  	module: {
  		rules: [
  			{
  				test: /\.svg$/,
  				use: [ 'raw-loader' ]
  			},
  			{
  				test: /\.css$/,
  				use: [
  					{
  						loader: 'style-loader',
  						options: {
  							injectType: 'singletonStyleTag',
  							attributes: {
  								'data-cke': true
  							}
  						}
  					},
  					{
  						loader: 'postcss-loader',
  						options: styles.getPostCssConfig( {
  							themeImporter: {
  								themePath: require.resolve( '@ckeditor/ckeditor5-theme-lark' )
  							},
  							minify: true
  						} )
  					}
  				]
  			}
  		]
  	}
  };
  