Index: frontend/node_modules/webpack-manifest-plugin/dist/helpers.d.ts
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/helpers.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/helpers.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,26 @@
+import webpack, { AssetInfo, Chunk } from 'webpack';
+import { InternalOptions, Manifest } from './';
+export interface FileDescriptor {
+    chunk?: ProperChunk;
+    isAsset: Boolean;
+    isChunk: Boolean;
+    isInitial: Boolean;
+    isModuleAsset: Boolean;
+    name: string;
+    path: string;
+}
+export interface CompilationAssetInfo extends AssetInfo {
+    sourceFilename: string;
+}
+export interface CompilationAsset extends webpack.compilation.Asset {
+    chunks: any[];
+    info: CompilationAssetInfo;
+}
+export interface ProperChunk extends Chunk {
+    auxiliaryFiles: any[];
+}
+declare const generateManifest: (compilation: webpack.compilation.Compilation, files: FileDescriptor[], { generate, seed }: InternalOptions) => Manifest;
+declare const reduceAssets: (files: FileDescriptor[], asset: CompilationAsset, moduleAssets: Record<any, any>) => FileDescriptor[];
+declare const reduceChunk: (files: FileDescriptor[], chunk: ProperChunk, options: InternalOptions, auxiliaryFiles: Record<any, any>) => FileDescriptor[];
+declare const transformFiles: (files: FileDescriptor[], options: InternalOptions) => FileDescriptor[];
+export { generateManifest, reduceAssets, reduceChunk, transformFiles };
Index: frontend/node_modules/webpack-manifest-plugin/dist/helpers.js
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/helpers.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/helpers.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,97 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.transformFiles = exports.reduceChunk = exports.reduceAssets = exports.generateManifest = void 0;
+const path_1 = require("path");
+const generateManifest = (compilation, files, { generate, seed = {} }) => {
+    let result;
+    if (generate) {
+        const entrypointsArray = Array.from(compilation.entrypoints.entries());
+        const entrypoints = entrypointsArray.reduce((e, [name, entrypoint]) => Object.assign(e, { [name]: entrypoint.getFiles() }), {});
+        result = generate(seed, files, entrypoints);
+    }
+    else {
+        result = files.reduce((manifest, file) => Object.assign(manifest, { [file.name]: file.path }), seed);
+    }
+    return result;
+};
+exports.generateManifest = generateManifest;
+const getFileType = (fileName, { transformExtensions }) => {
+    const replaced = fileName.replace(/\?.*/, '');
+    const split = replaced.split('.');
+    const extension = split.pop();
+    return transformExtensions.test(extension) ? `${split.pop()}.${extension}` : extension;
+};
+const reduceAssets = (files, asset, moduleAssets) => {
+    let name;
+    if (moduleAssets[asset.name]) {
+        name = moduleAssets[asset.name];
+    }
+    else if (asset.info.sourceFilename) {
+        name = path_1.join(path_1.dirname(asset.name), path_1.basename(asset.info.sourceFilename));
+    }
+    if (name) {
+        return files.concat({
+            isAsset: true,
+            isChunk: false,
+            isInitial: false,
+            isModuleAsset: true,
+            name,
+            path: asset.name
+        });
+    }
+    const isEntryAsset = asset.chunks && asset.chunks.length > 0;
+    if (isEntryAsset) {
+        return files;
+    }
+    return files.concat({
+        isAsset: true,
+        isChunk: false,
+        isInitial: false,
+        isModuleAsset: false,
+        name: asset.name,
+        path: asset.name
+    });
+};
+exports.reduceAssets = reduceAssets;
+const reduceChunk = (files, chunk, options, auxiliaryFiles) => {
+    Array.from(chunk.auxiliaryFiles || []).forEach((auxiliaryFile) => {
+        auxiliaryFiles[auxiliaryFile] = {
+            isAsset: true,
+            isChunk: false,
+            isInitial: false,
+            isModuleAsset: true,
+            name: path_1.basename(auxiliaryFile),
+            path: auxiliaryFile
+        };
+    });
+    return Array.from(chunk.files).reduce((prev, path) => {
+        let name = chunk.name ? chunk.name : null;
+        name = name
+            ? options.useEntryKeys && !path.endsWith('.map')
+                ? name
+                : `${name}.${getFileType(path, options)}`
+            : path;
+        return prev.concat({
+            chunk,
+            isAsset: false,
+            isChunk: true,
+            isInitial: chunk.isOnlyInitial(),
+            isModuleAsset: false,
+            name,
+            path
+        });
+    }, files);
+};
+exports.reduceChunk = reduceChunk;
+const standardizeFilePaths = (file) => {
+    const result = Object.assign({}, file);
+    result.name = file.name.replace(/\\/g, '/');
+    result.path = file.path.replace(/\\/g, '/');
+    return result;
+};
+const transformFiles = (files, options) => ['filter', 'map', 'sort']
+    .filter((fname) => !!options[fname])
+    .reduce((prev, fname) => prev[fname](options[fname]), files)
+    .map(standardizeFilePaths);
+exports.transformFiles = transformFiles;
+//# sourceMappingURL=helpers.js.map
Index: frontend/node_modules/webpack-manifest-plugin/dist/helpers.js.map
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/helpers.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/helpers.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/webpack-manifest-plugin/dist/hooks.d.ts
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/hooks.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/hooks.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,24 @@
+import webpack, { Compiler, Module } from 'webpack';
+import { EmitCountMap, InternalOptions } from './';
+interface BeforeRunHookArgs {
+    emitCountMap: EmitCountMap;
+    manifestFileName: string;
+}
+interface EmitHookArgs {
+    compiler: Compiler;
+    emitCountMap: EmitCountMap;
+    manifestAssetId: string;
+    manifestFileName: string;
+    moduleAssets: Record<any, any>;
+    options: InternalOptions;
+}
+declare const getCompilerHooks: (compiler: Compiler) => any;
+declare const beforeRunHook: ({ emitCountMap, manifestFileName }: BeforeRunHookArgs, _: Compiler, callback: Function) => void;
+declare const emitHook: ({ compiler, emitCountMap, manifestAssetId, manifestFileName, moduleAssets, options }: EmitHookArgs, compilation: webpack.compilation.Compilation) => void;
+interface LegacyModule extends Module {
+    userRequest?: any;
+}
+declare const normalModuleLoaderHook: ({ moduleAssets }: {
+    moduleAssets: Record<any, any>;
+}, loaderContext: webpack.loader.LoaderContext, module: LegacyModule) => void;
+export { beforeRunHook, emitHook, getCompilerHooks, normalModuleLoaderHook };
Index: frontend/node_modules/webpack-manifest-plugin/dist/hooks.js
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/hooks.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/hooks.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,96 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.normalModuleLoaderHook = exports.getCompilerHooks = exports.emitHook = exports.beforeRunHook = void 0;
+const fs_1 = require("fs");
+const path_1 = require("path");
+const tapable_1 = require("tapable");
+const webpack_sources_1 = require("webpack-sources");
+const helpers_1 = require("./helpers");
+const compilerHookMap = new WeakMap();
+const getCompilerHooks = (compiler) => {
+    let hooks = compilerHookMap.get(compiler);
+    if (typeof hooks === 'undefined') {
+        hooks = {
+            afterEmit: new tapable_1.SyncWaterfallHook(['manifest']),
+            beforeEmit: new tapable_1.SyncWaterfallHook(['manifest'])
+        };
+        compilerHookMap.set(compiler, hooks);
+    }
+    return hooks;
+};
+exports.getCompilerHooks = getCompilerHooks;
+const beforeRunHook = ({ emitCountMap, manifestFileName }, _, callback) => {
+    const emitCount = emitCountMap.get(manifestFileName) || 0;
+    emitCountMap.set(manifestFileName, emitCount + 1);
+    if (callback) {
+        callback();
+    }
+};
+exports.beforeRunHook = beforeRunHook;
+const emitHook = function emit({ compiler, emitCountMap, manifestAssetId, manifestFileName, moduleAssets, options }, compilation) {
+    const emitCount = emitCountMap.get(manifestFileName) - 1;
+    const stats = compilation.getStats().toJson({
+        all: false,
+        assets: true,
+        cachedAssets: true,
+        ids: true,
+        publicPath: true
+    });
+    const publicPath = options.publicPath !== null ? options.publicPath : stats.publicPath;
+    const { basePath, removeKeyHash } = options;
+    emitCountMap.set(manifestFileName, emitCount);
+    const auxiliaryFiles = {};
+    let files = Array.from(compilation.chunks).reduce((prev, chunk) => helpers_1.reduceChunk(prev, chunk, options, auxiliaryFiles), []);
+    files = stats.assets.reduce((prev, asset) => helpers_1.reduceAssets(prev, asset, moduleAssets), files);
+    files = files.filter(({ name, path }) => {
+        var _a;
+        return !path.includes('hot-update') &&
+            typeof emitCountMap.get(path_1.join(((_a = compiler.options.output) === null || _a === void 0 ? void 0 : _a.path) || '<unknown>', name)) ===
+                'undefined';
+    });
+    files.forEach((file) => {
+        delete auxiliaryFiles[file.path];
+    });
+    Object.keys(auxiliaryFiles).forEach((auxiliaryFile) => {
+        files = files.concat(auxiliaryFiles[auxiliaryFile]);
+    });
+    files = files.map((file) => {
+        const normalizePath = (path) => {
+            if (!path.endsWith('/')) {
+                return `${path}/`;
+            }
+            return path;
+        };
+        const changes = {
+            name: basePath ? normalizePath(basePath) + file.name : file.name,
+            path: publicPath ? normalizePath(publicPath) + file.path : file.path
+        };
+        changes.name = removeKeyHash ? changes.name.replace(removeKeyHash, '') : changes.name;
+        return Object.assign(file, changes);
+    });
+    files = helpers_1.transformFiles(files, options);
+    let manifest = helpers_1.generateManifest(compilation, files, options);
+    const isLastEmit = emitCount === 0;
+    manifest = getCompilerHooks(compiler).beforeEmit.call(manifest);
+    if (isLastEmit) {
+        const output = options.serialize(manifest);
+        compilation.emitAsset(manifestAssetId, new webpack_sources_1.RawSource(output));
+        if (options.writeToFileEmit) {
+            fs_1.mkdirSync(path_1.dirname(manifestFileName), { recursive: true });
+            fs_1.writeFileSync(manifestFileName, output);
+        }
+    }
+    getCompilerHooks(compiler).afterEmit.call(manifest);
+};
+exports.emitHook = emitHook;
+const normalModuleLoaderHook = ({ moduleAssets }, loaderContext, module) => {
+    const { emitFile } = loaderContext;
+    loaderContext.emitFile = (file, content, sourceMap) => {
+        if (module.userRequest && !moduleAssets[file]) {
+            Object.assign(moduleAssets, { [file]: path_1.join(path_1.dirname(file), path_1.basename(module.userRequest)) });
+        }
+        return emitFile.call(module, file, content, sourceMap);
+    };
+};
+exports.normalModuleLoaderHook = normalModuleLoaderHook;
+//# sourceMappingURL=hooks.js.map
Index: frontend/node_modules/webpack-manifest-plugin/dist/hooks.js.map
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/hooks.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/hooks.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/webpack-manifest-plugin/dist/index.d.ts
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,30 @@
+import { Compiler, WebpackPluginInstance } from 'webpack';
+import { FileDescriptor } from './helpers';
+import { getCompilerHooks } from './hooks';
+export declare type Manifest = Record<string, any>;
+export interface InternalOptions {
+    [key: string]: any;
+    assetHookStage: number;
+    basePath: string;
+    fileName: string;
+    filter: (file: FileDescriptor) => Boolean;
+    generate: (seed: Record<any, any>, files: FileDescriptor[], entries: Record<string, string[]>) => Manifest;
+    map: (file: FileDescriptor) => FileDescriptor;
+    publicPath: string;
+    removeKeyHash: RegExp | false;
+    seed: Record<any, any>;
+    serialize: (manifest: Manifest) => string;
+    sort: (fileA: FileDescriptor, fileB: FileDescriptor) => Number;
+    transformExtensions: RegExp;
+    useEntryKeys: Boolean;
+    useLegacyEmit: Boolean;
+    writeToFileEmit: Boolean;
+}
+export declare type ManifestPluginOptions = Partial<InternalOptions>;
+export declare type EmitCountMap = Map<any, any>;
+declare class WebpackManifestPlugin implements WebpackPluginInstance {
+    private options;
+    constructor(opts: ManifestPluginOptions);
+    apply(compiler: Compiler): void;
+}
+export { getCompilerHooks, WebpackManifestPlugin };
Index: frontend/node_modules/webpack-manifest-plugin/dist/index.js
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,74 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.WebpackManifestPlugin = exports.getCompilerHooks = void 0;
+const path_1 = require("path");
+const webpack_1 = __importDefault(require("webpack"));
+const NormalModule_1 = __importDefault(require("webpack/lib/NormalModule"));
+const hooks_1 = require("./hooks");
+Object.defineProperty(exports, "getCompilerHooks", { enumerable: true, get: function () { return hooks_1.getCompilerHooks; } });
+const emitCountMap = new Map();
+const defaults = {
+    assetHookStage: Infinity,
+    basePath: '',
+    fileName: 'manifest.json',
+    filter: null,
+    generate: void 0,
+    map: null,
+    publicPath: null,
+    removeKeyHash: /([a-f0-9]{16,32}\.?)/gi,
+    seed: void 0,
+    serialize(manifest) {
+        return JSON.stringify(manifest, null, 2);
+    },
+    sort: null,
+    transformExtensions: /^(gz|map)$/i,
+    useEntryKeys: false,
+    useLegacyEmit: false,
+    writeToFileEmit: false
+};
+class WebpackManifestPlugin {
+    constructor(opts) {
+        this.options = Object.assign({}, defaults, opts);
+    }
+    apply(compiler) {
+        var _a, _b, _c;
+        const moduleAssets = {};
+        const manifestFileName = path_1.resolve(((_a = compiler.options.output) === null || _a === void 0 ? void 0 : _a.path) || './', this.options.fileName);
+        const manifestAssetId = path_1.relative(((_b = compiler.options.output) === null || _b === void 0 ? void 0 : _b.path) || './', manifestFileName);
+        const beforeRun = hooks_1.beforeRunHook.bind(this, { emitCountMap, manifestFileName });
+        const emit = hooks_1.emitHook.bind(this, {
+            compiler,
+            emitCountMap,
+            manifestAssetId,
+            manifestFileName,
+            moduleAssets,
+            options: this.options
+        });
+        const normalModuleLoader = hooks_1.normalModuleLoaderHook.bind(this, { moduleAssets });
+        const hookOptions = {
+            name: 'WebpackManifestPlugin',
+            stage: this.options.assetHookStage
+        };
+        compiler.hooks.compilation.tap(hookOptions, (compilation) => {
+            const hook = !NormalModule_1.default.getCompilationHooks
+                ? compilation.hooks.normalModuleLoader
+                : NormalModule_1.default.getCompilationHooks(compilation).loader;
+            hook.tap(hookOptions, normalModuleLoader);
+        });
+        if (((_c = webpack_1.default.version) === null || _c === void 0 ? void 0 : _c.startsWith('4')) || this.options.useLegacyEmit === true) {
+            compiler.hooks.emit.tap(hookOptions, emit);
+        }
+        else {
+            compiler.hooks.thisCompilation.tap(hookOptions, (compilation) => {
+                compilation.hooks.processAssets.tap(hookOptions, () => emit(compilation));
+            });
+        }
+        compiler.hooks.run.tap(hookOptions, beforeRun);
+        compiler.hooks.watchRun.tap(hookOptions, beforeRun);
+    }
+}
+exports.WebpackManifestPlugin = WebpackManifestPlugin;
+//# sourceMappingURL=index.js.map
Index: frontend/node_modules/webpack-manifest-plugin/dist/index.js.map
===================================================================
--- frontend/node_modules/webpack-manifest-plugin/dist/index.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/webpack-manifest-plugin/dist/index.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
