Client: Added top banner for minimazed js files

This commit is contained in:
Alexey Safronov 2024-03-21 18:08:20 +04:00
parent 93ab155615
commit 6d183ab648

View File

@ -1,25 +1,25 @@
// (c) Copyright Ascensio System SIA 2010-2024
//
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
@ -32,6 +32,7 @@ const ModuleFederationPlugin =
const DefinePlugin = require("webpack").DefinePlugin;
const BundleAnalyzerPlugin =
require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
const BannerPlugin = require("webpack").BannerPlugin;
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
const TerserPlugin = require("terser-webpack-plugin");
@ -290,6 +291,18 @@ const config = {
],
};
const getBuildDate = () => {
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
};
const getBuildYear = () => {
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
return today.getFullYear();
};
module.exports = (env, argv) => {
config.devtool = "source-map";
@ -298,7 +311,16 @@ module.exports = (env, argv) => {
config.optimization = {
splitChunks: { chunks: "all" },
minimize: !env.minimize,
minimizer: [new TerserPlugin()],
minimizer: [
new TerserPlugin({
terserOptions: {
format: {
comments: /\*\s*\(c\)\s+Copyright\s+Ascensio\s+System\s+SIA/i,
},
},
extractComments: false,
}),
],
};
}
@ -384,13 +406,11 @@ module.exports = (env, argv) => {
config.plugins.push(new HtmlWebpackPlugin(htmlTemplate));
const BUILD_AT = DefinePlugin.runtimeValue(getBuildDate, true);
const defines = {
VERSION: JSON.stringify(version),
BUILD_AT: DefinePlugin.runtimeValue(function () {
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
}, true),
BUILD_AT,
IS_PERSONAL: env.personal || false,
};
@ -400,5 +420,18 @@ module.exports = (env, argv) => {
config.plugins.push(new BundleAnalyzerPlugin());
}
config.plugins.push(
new BannerPlugin({
raw: true,
banner: `/*
* (c) Copyright Ascensio System SIA 2009-${getBuildYear()}. All rights reserved
*
* https://www.onlyoffice.com/
*
* Version: ${version} (build: ${getBuildDate()})
*/`,
}),
);
return config;
};