text: /**
   * @license Copyright (c) 2003-2021, 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");
  
  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: "BalloonEditor",
  
  		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 webpack.NormalModuleReplacementPlugin(
  			/pilcrow\.svg/,
  			path.resolve(__dirname, "src", "icons", "block.svg")
  		),
  	],
  
  	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,
  						}),
  					},
  				],
  			},
  		],
  	},
  };
  