hard-source-webpack-plugin-fixed-hashbug
Version:
Hard cache the source of modules in webpack. Patched version fixing the hash bug
1,456 lines (1,297 loc) • 43.7 kB
JavaScript
const serial = require('../util/serial');
const relateContext = require('../util/relate-context');
const LocalModule = require('webpack/lib/dependencies/LocalModule');
function flattenPrototype(obj) {
if (typeof obj === 'string') {
return obj;
}
const copy = {};
for (const key in obj) {
copy[key] = obj[key];
}
return copy;
}
const assignTruthful = {
freeze(arg, dependency) {
return arg;
},
thaw(arg, frozen) {
return arg;
},
};
const assignDefined = {
freeze(arg, dependency) {
if (typeof arg !== 'undefined') {
return arg;
}
},
thaw(arg, frozen) {
if (typeof arg !== 'undefined') {
return arg;
}
},
}
const optional = serial.assigned({
prepend: assignTruthful,
replaces: assignTruthful,
critical: assignTruthful,
namespaceObjectAsContext: assignDefined,
callArgs: assignDefined,
call: assignDefined,
directImport: assignDefined,
shorthand: assignDefined,
optional: assignTruthful,
loc: {
freeze(arg, dependency) {
return flattenPrototype(dependency.loc);
},
thaw(arg, frozen) {
return arg;
},
},
});
const localModuleAssigned = {
freeze(_, dependency) {
if (
typeof dependency.localModule === 'object' &&
dependency.localModule !== null
) {
return {
name: dependency.localModule.name,
idx: dependency.localModule.idx,
used: dependency.localModule.used,
};
}
},
thaw(thawed, localModule, extra) {
const state = extra.state;
if (
typeof localModule === 'object' &&
localModule !== null
) {
if (!state.localModules) {
state.localModules = [];
}
if (!state.localModules[localModule.idx]) {
state.localModules[localModule.idx] = new LocalModule(
extra.module,
localModule.name,
localModule.idx,
);
state.localModules[localModule.idx].used =
localModule.used;
}
thawed.localModule = state.localModules[localModule.idx];
}
return thawed;
},
};
const warnings = {
freeze(frozen, dependency) {
if (frozen && dependency.getWarnings) {
const warnings = dependency.getWarnings();
if (warnings && warnings.length) {
return warnings.map(
({ stack }) =>
stack.includes('\n at Object.freeze')
? stack.split('\n at Object.freeze')[0]
: stack.includes('\n at pluginCompat.tap')
? stack.split('\n at pluginCompat.tap')[0]
: stack.split('\n at Compiler.pluginCompat.tap')[0],
);
}
}
},
thaw(dependency, warnings) {
if (dependency && warnings && dependency.getWarnings) {
const frozenWarnings = warnings;
const _getWarnings = dependency.getWarnings;
dependency.getWarnings = function() {
const warnings = _getWarnings.call(this);
if (warnings && warnings.length) {
return warnings.map((warning, i) => {
const stack = warning.stack.split(
'\n at Compilation.reportDependencyErrorsAndWarnings',
)[1];
warning.stack = `${
frozenWarnings[i]
}\n at Compilation.reportDependencyErrorsAndWarnings${stack}`;
return warning;
});
}
return warnings;
};
}
return dependency;
},
};
const AMDDefineDependency = require('webpack/lib/dependencies/AMDDefineDependency');
const AMDDefineDependencySerial = serial.serial('AMDDefineDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
range: dependency.range,
arrayRange: dependency.arrayRange,
functionRange: dependency.functionRange,
objectRange: dependency.objectRange,
namedModule: dependency.namedModule,
};
},
thaw(thawed, frozen, extra, methods) {
return new AMDDefineDependency(
frozen.range,
frozen.arrayRange,
frozen.functionRange,
frozen.objectRange,
frozen.namedModule,
);
},
},
optional,
localModuleAssigned,
warnings,
});
const AMDRequireArrayDependency = require('webpack/lib/dependencies/AMDRequireArrayDependency');
const AMDRequireArrayDependencySerial = serial.serial('AMDRequireArrayDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
depsArray: methods.mapFreeze('Dependency', null, dependency.depsArray, extra),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new AMDRequireArrayDependency(
methods.mapThaw('Dependency', null, frozen.depsArray, extra),
frozen.range,
);
},
},
optional,
warnings,
});
const AMDRequireContextDependency = require('webpack/lib/dependencies/AMDRequireContextDependency');
const AMDRequireContextDependencySerial = serial.serial('AMDRequireContextDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
options: dependency.options.regExp ?
Object.assign({}, dependency.options, {
regExp: dependency.options.regExp.source,
}) :
dependency.options,
range: dependency.range,
valueRange: dependency.valueRange,
};
},
thaw(thawed, frozen, extra, methods) {
return new AMDRequireContextDependency(
frozen.options.regExp ?
Object.assign({}, frozen.options, {
regExp: new RegExp(frozen.options.regExp),
}) :
frozen.options,
frozen.range,
frozen.valueRange,
);
},
},
optional,
warnings,
});
const AMDRequireDependency = require('webpack/lib/dependencies/AMDRequireDependency');
const AMDRequireDependencySerial = serial.serial('AMDRequireDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
block: !dependency.block.dependencies.includes(dependency) ?
methods.freeze('DependencyBlock', null, dependency.block, extra) :
undefined,
};
},
thaw(thawed, frozen, extra, methods) {
return new AMDRequireDependency(
!frozen.block ? extra.parent : methods.thaw('DependencyBlock', null, frozen.block, extra),
);
},
},
optional,
warnings,
});
const AMDRequireItemDependency = require('webpack/lib/dependencies/AMDRequireItemDependency');
const AMDRequireItemDependencySerial = serial.serial('AMDRequireItemDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new AMDRequireItemDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const CommonJsRequireContextDependency = require('webpack/lib/dependencies/CommonJsRequireContextDependency');
const CommonJsRequireContextDependencySerial = serial.serial('CommonJsRequireContextDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
options: dependency.options.regExp ?
Object.assign({}, dependency.options, {
regExp: dependency.options.regExp.source,
}) :
dependency.options,
range: dependency.range,
valueRange: dependency.valueRange,
};
},
thaw(thawed, frozen, extra, methods) {
return new CommonJsRequireContextDependency(
frozen.options.regExp ?
Object.assign({}, frozen.options, {
regExp: new RegExp(frozen.options.regExp),
}) :
frozen.options,
frozen.range,
frozen.valueRange,
);
},
},
optional,
warnings,
});
const CommonJsRequireDependency = require('webpack/lib/dependencies/CommonJsRequireDependency');
const CommonJsRequireDependencySerial = serial.serial('CommonJsRequireDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new CommonJsRequireDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const ConstDependency = require('webpack/lib/dependencies/ConstDependency');
const ConstDependencySerial = serial.serial('ConstDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
expression: dependency.expression,
range: dependency.range,
requireWebpackRequire: dependency.requireWebpackRequire,
};
},
thaw(thawed, frozen, extra, methods) {
return new ConstDependency(
frozen.expression,
frozen.range,
frozen.requireWebpackRequire,
);
},
},
optional,
warnings,
});
const ContextDependency = require('webpack/lib/dependencies/ContextDependency');
const ContextDependencySerial = serial.serial('ContextDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
options: dependency.options.regExp ?
Object.assign({}, dependency.options, {
regExp: dependency.options.regExp.source,
}) :
dependency.options,
};
},
thaw(thawed, frozen, extra, methods) {
return new ContextDependency(
frozen.options.regExp ?
Object.assign({}, frozen.options, {
regExp: new RegExp(frozen.options.regExp),
}) :
frozen.options,
);
},
},
optional,
warnings,
});
const ContextElementDependency = require('webpack/lib/dependencies/ContextElementDependency');
const ContextElementDependencySerial = serial.serial('ContextElementDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
userRequest: relateContext.relateAbsoluteRequest(extra.module.context, dependency.userRequest),
};
},
thaw(thawed, frozen, extra, methods) {
return new ContextElementDependency(
frozen.request,
frozen.userRequest,
);
},
},
optional,
warnings,
});
const CriticalDependencyWarning = require('webpack/lib/dependencies/CriticalDependencyWarning');
const CriticalDependencyWarningSerial = serial.serial('CriticalDependencyWarning', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
message: dependency.message,
};
},
thaw(thawed, frozen, extra, methods) {
return new CriticalDependencyWarning(
frozen.message,
);
},
},
optional,
warnings,
});
const DelegatedExportsDependency = require('webpack/lib/dependencies/DelegatedExportsDependency');
const DelegatedExportsDependencySerial = serial.serial('DelegatedExportsDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
originModule: null,
exports: dependency.exports,
};
},
thaw(thawed, frozen, extra, methods) {
return new DelegatedExportsDependency(
extra.module,
frozen.exports,
);
},
},
optional,
warnings,
});
const DelegatedSourceDependency = require('webpack/lib/dependencies/DelegatedSourceDependency');
const DelegatedSourceDependencySerial = serial.serial('DelegatedSourceDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
};
},
thaw(thawed, frozen, extra, methods) {
return new DelegatedSourceDependency(
frozen.request,
);
},
},
optional,
warnings,
});
const DllEntryDependency = require('webpack/lib/dependencies/DllEntryDependency');
const DllEntryDependencySerial = serial.serial('DllEntryDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
dependencies: methods.mapFreeze('Dependency', null, dependency.dependencies, extra),
name: dependency.name,
};
},
thaw(thawed, frozen, extra, methods) {
return new DllEntryDependency(
methods.mapThaw('Dependency', null, frozen.dependencies, extra),
frozen.name,
);
},
},
optional,
warnings,
});
const HarmonyAcceptDependency = require('webpack/lib/dependencies/HarmonyAcceptDependency');
const HarmonyAcceptDependencySerial = serial.serial('HarmonyAcceptDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
range: dependency.range,
dependencies: methods.mapFreeze('Dependency', null, dependency.dependencies, extra),
hasCallback: dependency.hasCallback,
};
},
thaw(thawed, frozen, extra, methods) {
return new HarmonyAcceptDependency(
frozen.range,
methods.mapThaw('Dependency', null, frozen.dependencies, extra),
frozen.hasCallback,
);
},
},
optional,
warnings,
});
const HarmonyAcceptImportDependency = require('webpack/lib/dependencies/HarmonyAcceptImportDependency');
const HarmonyAcceptImportDependencySerial = serial.serial('HarmonyAcceptImportDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
parserScope: null,
};
},
thaw(thawed, frozen, extra, methods) {
extra.state.harmonyParserScope = extra.state.harmonyParserScope || {};
return new HarmonyAcceptImportDependency(
frozen.request,
extra.module,
extra.state.harmonyParserScope,
);
},
},
optional,
warnings,
});
const HarmonyCompatibilityDependency = require('webpack/lib/dependencies/HarmonyCompatibilityDependency');
const HarmonyCompatibilityDependencySerial = serial.serial('HarmonyCompatibilityDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
originModule: null,
};
},
thaw(thawed, frozen, extra, methods) {
return new HarmonyCompatibilityDependency(
extra.module,
);
},
},
optional,
warnings,
});
const HarmonyExportExpressionDependency = require('webpack/lib/dependencies/HarmonyExportExpressionDependency');
const HarmonyExportExpressionDependencySerial = serial.serial('HarmonyExportExpressionDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
originModule: null,
range: dependency.range,
rangeStatement: dependency.rangeStatement,
prefix: dependency.prefix,
};
},
thaw(thawed, frozen, extra, methods) {
return new HarmonyExportExpressionDependency(
extra.module,
frozen.range,
frozen.rangeStatement,
frozen.prefix,
);
},
},
optional,
warnings,
});
const HarmonyExportHeaderDependency = require('webpack/lib/dependencies/HarmonyExportHeaderDependency');
const HarmonyExportHeaderDependencySerial = serial.serial('HarmonyExportHeaderDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
range: dependency.range,
rangeStatement: dependency.rangeStatement,
};
},
thaw(thawed, frozen, extra, methods) {
return new HarmonyExportHeaderDependency(
frozen.range,
frozen.rangeStatement,
);
},
},
optional,
warnings,
});
const HarmonyExportImportedSpecifierDependency = require('webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency');
const HarmonyExportImportedSpecifierDependencySerial = serial.serial('HarmonyExportImportedSpecifierDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
sourceOrder: dependency.sourceOrder,
parserScope: null,
id: dependency.id,
name: dependency.name,
activeExports: null,
otherStarExports: dependency.otherStarExports ? 'star' : null,
strictExportPresence: dependency.strictExportPresence,
};
},
thaw(thawed, frozen, extra, methods) {
extra.state.harmonyParserScope = extra.state.harmonyParserScope || {};
extra.state.activeExports = extra.state.activeExports || new Set();
if (frozen.name) {
extra.state.activeExports.add(frozen.name);
}
return new HarmonyExportImportedSpecifierDependency(
frozen.request,
extra.module,
frozen.sourceOrder,
extra.state.harmonyParserScope,
frozen.id,
frozen.name,
extra.state.activeExports,
frozen.otherStarExports === 'star' ?
(extra.state.otherStarExports || []) :
null,
frozen.strictExportPresence,
);
},
},
optional,
warnings,
exportImportedDependency: {
freeze(frozen) {},
thaw(thawed, frozen, extra) {
if (thawed.otherStarExports) {
extra.state.otherStarExports = (
extra.state.otherStarExports || []
).concat(thawed);
}
return thawed;
},
},
});
const HarmonyExportSpecifierDependency = require('webpack/lib/dependencies/HarmonyExportSpecifierDependency');
const HarmonyExportSpecifierDependencySerial = serial.serial('HarmonyExportSpecifierDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
originModule: null,
id: dependency.id,
name: dependency.name,
};
},
thaw(thawed, frozen, extra, methods) {
return new HarmonyExportSpecifierDependency(
extra.module,
frozen.id,
frozen.name,
);
},
},
optional,
warnings,
});
const HarmonyImportDependency = require('webpack/lib/dependencies/HarmonyImportDependency');
const HarmonyImportDependencySerial = serial.serial('HarmonyImportDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
sourceOrder: dependency.sourceOrder,
parserScope: null,
};
},
thaw(thawed, frozen, extra, methods) {
extra.state.harmonyParserScope = extra.state.harmonyParserScope || {};
return new HarmonyImportDependency(
frozen.request,
extra.module,
frozen.sourceOrder,
extra.state.harmonyParserScope,
);
},
},
optional,
warnings,
importDependency: {
freeze(frozen) {
return frozen;
},
thaw(thawed, frozen, extra) {
const state = extra.state;
const ref = frozen.range.toString();
if (state.imports[ref]) {
return state.imports[ref];
}
state.imports[ref] = thawed;
return thawed;
},
},
});
const HarmonyImportSideEffectDependency = require('webpack/lib/dependencies/HarmonyImportSideEffectDependency');
const HarmonyImportSideEffectDependencySerial = serial.serial('HarmonyImportSideEffectDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
sourceOrder: dependency.sourceOrder,
parserScope: null,
};
},
thaw(thawed, frozen, extra, methods) {
extra.state.harmonyParserScope = extra.state.harmonyParserScope || {};
return new HarmonyImportSideEffectDependency(
frozen.request,
extra.module,
frozen.sourceOrder,
extra.state.harmonyParserScope,
);
},
},
optional,
warnings,
});
const HarmonyImportSpecifierDependency = require('webpack/lib/dependencies/HarmonyImportSpecifierDependency');
const HarmonyImportSpecifierDependencySerial = serial.serial('HarmonyImportSpecifierDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
sourceOrder: dependency.sourceOrder,
parserScope: null,
id: dependency.id,
name: dependency.name,
range: dependency.range,
strictExportPresence: dependency.strictExportPresence,
};
},
thaw(thawed, frozen, extra, methods) {
extra.state.harmonyParserScope = extra.state.harmonyParserScope || {};
return new HarmonyImportSpecifierDependency(
frozen.request,
extra.module,
frozen.sourceOrder,
extra.state.harmonyParserScope,
frozen.id,
frozen.name,
frozen.range,
frozen.strictExportPresence,
);
},
},
optional,
warnings,
});
const HarmonyInitDependency = require('webpack/lib/dependencies/HarmonyInitDependency');
const HarmonyInitDependencySerial = serial.serial('HarmonyInitDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
originModule: null,
};
},
thaw(thawed, frozen, extra, methods) {
return new HarmonyInitDependency(
extra.module,
);
},
},
optional,
warnings,
});
const ImportContextDependency = require('webpack/lib/dependencies/ImportContextDependency');
const ImportContextDependencySerial = serial.serial('ImportContextDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
options: dependency.options.regExp ?
Object.assign({}, dependency.options, {
regExp: dependency.options.regExp.source,
}) :
dependency.options,
range: dependency.range,
valueRange: dependency.valueRange,
};
},
thaw(thawed, frozen, extra, methods) {
return new ImportContextDependency(
frozen.options.regExp ?
Object.assign({}, frozen.options, {
regExp: new RegExp(frozen.options.regExp),
}) :
frozen.options,
frozen.range,
frozen.valueRange,
);
},
},
optional,
warnings,
});
const ImportDependency = require('webpack/lib/dependencies/ImportDependency');
const ImportDependencySerial = serial.serial('ImportDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
block: !dependency.block.dependencies.includes(dependency) ?
methods.freeze('DependencyBlock', null, dependency.block, extra) :
undefined,
};
},
thaw(thawed, frozen, extra, methods) {
return new ImportDependency(
frozen.request,
extra.module,
!frozen.block ? extra.parent : methods.thaw('DependencyBlock', null, frozen.block, extra),
);
},
},
optional,
warnings,
});
const ImportEagerDependency = require('webpack/lib/dependencies/ImportEagerDependency');
const ImportEagerDependencySerial = serial.serial('ImportEagerDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new ImportEagerDependency(
frozen.request,
extra.module,
frozen.range,
);
},
},
optional,
warnings,
});
const ImportWeakDependency = require('webpack/lib/dependencies/ImportWeakDependency');
const ImportWeakDependencySerial = serial.serial('ImportWeakDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
originModule: null,
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new ImportWeakDependency(
frozen.request,
extra.module,
frozen.range,
);
},
},
optional,
warnings,
});
const JsonExportsDependency = require('webpack/lib/dependencies/JsonExportsDependency');
const JsonExportsDependencySerial = serial.serial('JsonExportsDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
exports: dependency.exports,
};
},
thaw(thawed, frozen, extra, methods) {
return new JsonExportsDependency(
frozen.exports,
);
},
},
optional,
warnings,
});
const LoaderDependency = require('webpack/lib/dependencies/LoaderDependency');
const LoaderDependencySerial = serial.serial('LoaderDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
};
},
thaw(thawed, frozen, extra, methods) {
return new LoaderDependency(
frozen.request,
);
},
},
optional,
warnings,
});
const LocalModuleDependency = require('webpack/lib/dependencies/LocalModuleDependency');
const LocalModuleDependencySerial = serial.serial('LocalModuleDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
localModule: {
name: dependency.localModule.name,
name: dependency.localModule.idx,
},
range: dependency.range,
callNew: dependency.callNew,
};
},
thaw(thawed, frozen, extra, methods) {
if (!extra.state.localModules) {
extra.state.localModules = [];
}
if (!extra.state.localModules[frozen.localModule.idx]) {
extra.state.localModules[frozen.localModule.idx] = new LocalModule(extra.module, frozen.localModule.name, frozen.localModule.idx);
extra.state.localModules[frozen.localModule.idx].used = frozen.localModule.used;
}
return new LocalModuleDependency(
extra.state.localModules[frozen.localModule.idx],
frozen.range,
frozen.callNew,
);
},
},
optional,
localModuleAssigned,
warnings,
});
const ModuleDependency = require('webpack/lib/dependencies/ModuleDependency');
const ModuleDependencySerial = serial.serial('ModuleDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
};
},
thaw(thawed, frozen, extra, methods) {
return new ModuleDependency(
frozen.request,
);
},
},
optional,
warnings,
});
const ModuleHotAcceptDependency = require('webpack/lib/dependencies/ModuleHotAcceptDependency');
const ModuleHotAcceptDependencySerial = serial.serial('ModuleHotAcceptDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new ModuleHotAcceptDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const ModuleHotDeclineDependency = require('webpack/lib/dependencies/ModuleHotDeclineDependency');
const ModuleHotDeclineDependencySerial = serial.serial('ModuleHotDeclineDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new ModuleHotDeclineDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const MultiEntryDependency = require('webpack/lib/dependencies/MultiEntryDependency');
const MultiEntryDependencySerial = serial.serial('MultiEntryDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
dependencies: methods.mapFreeze('Dependency', null, dependency.dependencies, extra),
name: dependency.name,
};
},
thaw(thawed, frozen, extra, methods) {
return new MultiEntryDependency(
methods.mapThaw('Dependency', null, frozen.dependencies, extra),
frozen.name,
);
},
},
optional,
warnings,
});
const NullDependency = require('webpack/lib/dependencies/NullDependency');
const NullDependencySerial = serial.serial('NullDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
};
},
thaw(thawed, frozen, extra, methods) {
return new NullDependency(
);
},
},
optional,
warnings,
});
const PrefetchDependency = require('webpack/lib/dependencies/PrefetchDependency');
const PrefetchDependencySerial = serial.serial('PrefetchDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
};
},
thaw(thawed, frozen, extra, methods) {
return new PrefetchDependency(
frozen.request,
);
},
},
optional,
warnings,
});
const RequireContextDependency = require('webpack/lib/dependencies/RequireContextDependency');
const RequireContextDependencySerial = serial.serial('RequireContextDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
options: dependency.options.regExp ?
Object.assign({}, dependency.options, {
regExp: dependency.options.regExp.source,
}) :
dependency.options,
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireContextDependency(
frozen.options.regExp ?
Object.assign({}, frozen.options, {
regExp: new RegExp(frozen.options.regExp),
}) :
frozen.options,
frozen.range,
);
},
},
optional,
warnings,
});
const RequireEnsureDependency = require('webpack/lib/dependencies/RequireEnsureDependency');
const RequireEnsureDependencySerial = serial.serial('RequireEnsureDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
block: !dependency.block.dependencies.includes(dependency) ?
methods.freeze('DependencyBlock', null, dependency.block, extra) :
undefined,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireEnsureDependency(
!frozen.block ? extra.parent : methods.thaw('DependencyBlock', null, frozen.block, extra),
);
},
},
optional,
warnings,
});
const RequireEnsureItemDependency = require('webpack/lib/dependencies/RequireEnsureItemDependency');
const RequireEnsureItemDependencySerial = serial.serial('RequireEnsureItemDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireEnsureItemDependency(
frozen.request,
);
},
},
optional,
warnings,
});
const RequireHeaderDependency = require('webpack/lib/dependencies/RequireHeaderDependency');
const RequireHeaderDependencySerial = serial.serial('RequireHeaderDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireHeaderDependency(
frozen.range,
);
},
},
optional,
warnings,
});
const RequireIncludeDependency = require('webpack/lib/dependencies/RequireIncludeDependency');
const RequireIncludeDependencySerial = serial.serial('RequireIncludeDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireIncludeDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const RequireResolveContextDependency = require('webpack/lib/dependencies/RequireResolveContextDependency');
const RequireResolveContextDependencySerial = serial.serial('RequireResolveContextDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
options: dependency.options.regExp ?
Object.assign({}, dependency.options, {
regExp: dependency.options.regExp.source,
}) :
dependency.options,
range: dependency.range,
valueRange: dependency.valueRange,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireResolveContextDependency(
frozen.options.regExp ?
Object.assign({}, frozen.options, {
regExp: new RegExp(frozen.options.regExp),
}) :
frozen.options,
frozen.range,
frozen.valueRange,
);
},
},
optional,
warnings,
});
const RequireResolveDependency = require('webpack/lib/dependencies/RequireResolveDependency');
const RequireResolveDependencySerial = serial.serial('RequireResolveDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireResolveDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const RequireResolveHeaderDependency = require('webpack/lib/dependencies/RequireResolveHeaderDependency');
const RequireResolveHeaderDependencySerial = serial.serial('RequireResolveHeaderDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new RequireResolveHeaderDependency(
frozen.range,
);
},
},
optional,
warnings,
});
const SingleEntryDependency = require('webpack/lib/dependencies/SingleEntryDependency');
const SingleEntryDependencySerial = serial.serial('SingleEntryDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
};
},
thaw(thawed, frozen, extra, methods) {
return new SingleEntryDependency(
frozen.request,
);
},
},
optional,
warnings,
});
const UnsupportedDependency = require('webpack/lib/dependencies/UnsupportedDependency');
const UnsupportedDependencySerial = serial.serial('UnsupportedDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
range: dependency.range,
};
},
thaw(thawed, frozen, extra, methods) {
return new UnsupportedDependency(
frozen.request,
frozen.range,
);
},
},
optional,
warnings,
});
const WebAssemblyImportDependency = require('webpack/lib/dependencies/WebAssemblyImportDependency');
const WebAssemblyImportDependencySerial = serial.serial('WebAssemblyImportDependency', {
constructor: {
freeze(_, dependency, extra, methods) {
return {
request: relateContext.relateAbsoluteRequest(extra.module.context, dependency.request),
name: dependency.name,
description: dependency.description,
onlyDirectImport: dependency.onlyDirectImport,
};
},
thaw(thawed, frozen, extra, methods) {
return new WebAssemblyImportDependency(
frozen.request,
frozen.name,
frozen.description,
frozen.onlyDirectImport,
);
},
},
optional,
warnings,
});
exports.map = new Map();
exports.AMDDefineDependency = AMDDefineDependencySerial;
exports.map.set(AMDDefineDependency, AMDDefineDependencySerial);
exports.AMDRequireArrayDependency = AMDRequireArrayDependencySerial;
exports.map.set(AMDRequireArrayDependency, AMDRequireArrayDependencySerial);
exports.AMDRequireContextDependency = AMDRequireContextDependencySerial;
exports.map.set(AMDRequireContextDependency, AMDRequireContextDependencySerial);
exports.AMDRequireDependency = AMDRequireDependencySerial;
exports.map.set(AMDRequireDependency, AMDRequireDependencySerial);
exports.AMDRequireItemDependency = AMDRequireItemDependencySerial;
exports.map.set(AMDRequireItemDependency, AMDRequireItemDependencySerial);
exports.CommonJsRequireContextDependency = CommonJsRequireContextDependencySerial;
exports.map.set(CommonJsRequireContextDependency, CommonJsRequireContextDependencySerial);
exports.CommonJsRequireDependency = CommonJsRequireDependencySerial;
exports.map.set(CommonJsRequireDependency, CommonJsRequireDependencySerial);
exports.ConstDependency = ConstDependencySerial;
exports.map.set(ConstDependency, ConstDependencySerial);
exports.ContextDependency = ContextDependencySerial;
exports.map.set(ContextDependency, ContextDependencySerial);
exports.ContextElementDependency = ContextElementDependencySerial;
exports.map.set(ContextElementDependency, ContextElementDependencySerial);
exports.CriticalDependencyWarning = CriticalDependencyWarningSerial;
exports.map.set(CriticalDependencyWarning, CriticalDependencyWarningSerial);
exports.DelegatedExportsDependency = DelegatedExportsDependencySerial;
exports.map.set(DelegatedExportsDependency, DelegatedExportsDependencySerial);
exports.DelegatedSourceDependency = DelegatedSourceDependencySerial;
exports.map.set(DelegatedSourceDependency, DelegatedSourceDependencySerial);
exports.DllEntryDependency = DllEntryDependencySerial;
exports.map.set(DllEntryDependency, DllEntryDependencySerial);
exports.HarmonyAcceptDependency = HarmonyAcceptDependencySerial;
exports.map.set(HarmonyAcceptDependency, HarmonyAcceptDependencySerial);
exports.HarmonyAcceptImportDependency = HarmonyAcceptImportDependencySerial;
exports.map.set(HarmonyAcceptImportDependency, HarmonyAcceptImportDependencySerial);
exports.HarmonyCompatibilityDependency = HarmonyCompatibilityDependencySerial;
exports.map.set(HarmonyCompatibilityDependency, HarmonyCompatibilityDependencySerial);
exports.HarmonyExportExpressionDependency = HarmonyExportExpressionDependencySerial;
exports.map.set(HarmonyExportExpressionDependency, HarmonyExportExpressionDependencySerial);
exports.HarmonyExportHeaderDependency = HarmonyExportHeaderDependencySerial;
exports.map.set(HarmonyExportHeaderDependency, HarmonyExportHeaderDependencySerial);
exports.HarmonyExportImportedSpecifierDependency = HarmonyExportImportedSpecifierDependencySerial;
exports.map.set(HarmonyExportImportedSpecifierDependency, HarmonyExportImportedSpecifierDependencySerial);
exports.HarmonyExportSpecifierDependency = HarmonyExportSpecifierDependencySerial;
exports.map.set(HarmonyExportSpecifierDependency, HarmonyExportSpecifierDependencySerial);
exports.HarmonyImportDependency = HarmonyImportDependencySerial;
exports.map.set(HarmonyImportDependency, HarmonyImportDependencySerial);
exports.HarmonyImportSideEffectDependency = HarmonyImportSideEffectDependencySerial;
exports.map.set(HarmonyImportSideEffectDependency, HarmonyImportSideEffectDependencySerial);
exports.HarmonyImportSpecifierDependency = HarmonyImportSpecifierDependencySerial;
exports.map.set(HarmonyImportSpecifierDependency, HarmonyImportSpecifierDependencySerial);
exports.HarmonyInitDependency = HarmonyInitDependencySerial;
exports.map.set(HarmonyInitDependency, HarmonyInitDependencySerial);
exports.ImportContextDependency = ImportContextDependencySerial;
exports.map.set(ImportContextDependency, ImportContextDependencySerial);
exports.ImportDependency = ImportDependencySerial;
exports.map.set(ImportDependency, ImportDependencySerial);
exports.ImportEagerDependency = ImportEagerDependencySerial;
exports.map.set(ImportEagerDependency, ImportEagerDependencySerial);
exports.ImportWeakDependency = ImportWeakDependencySerial;
exports.map.set(ImportWeakDependency, ImportWeakDependencySerial);
exports.JsonExportsDependency = JsonExportsDependencySerial;
exports.map.set(JsonExportsDependency, JsonExportsDependencySerial);
exports.LoaderDependency = LoaderDependencySerial;
exports.map.set(LoaderDependency, LoaderDependencySerial);
exports.LocalModuleDependency = LocalModuleDependencySerial;
exports.map.set(LocalModuleDependency, LocalModuleDependencySerial);
exports.ModuleDependency = ModuleDependencySerial;
exports.map.set(ModuleDependency, ModuleDependencySerial);
exports.ModuleHotAcceptDependency = ModuleHotAcceptDependencySerial;
exports.map.set(ModuleHotAcceptDependency, ModuleHotAcceptDependencySerial);
exports.ModuleHotDeclineDependency = ModuleHotDeclineDependencySerial;
exports.map.set(ModuleHotDeclineDependency, ModuleHotDeclineDependencySerial);
exports.MultiEntryDependency = MultiEntryDependencySerial;
exports.map.set(MultiEntryDependency, MultiEntryDependencySerial);
exports.NullDependency = NullDependencySerial;
exports.map.set(NullDependency, NullDependencySerial);
exports.PrefetchDependency = PrefetchDependencySerial;
exports.map.set(PrefetchDependency, PrefetchDependencySerial);
exports.RequireContextDependency = RequireContextDependencySerial;
exports.map.set(RequireContextDependency, RequireContextDependencySerial);
exports.RequireEnsureDependency = RequireEnsureDependencySerial;
exports.map.set(RequireEnsureDependency, RequireEnsureDependencySerial);
exports.RequireEnsureItemDependency = RequireEnsureItemDependencySerial;
exports.map.set(RequireEnsureItemDependency, RequireEnsureItemDependencySerial);
exports.RequireHeaderDependency = RequireHeaderDependencySerial;
exports.map.set(RequireHeaderDependency, RequireHeaderDependencySerial);
exports.RequireIncludeDependency = RequireIncludeDependencySerial;
exports.map.set(RequireIncludeDependency, RequireIncludeDependencySerial);
exports.RequireResolveContextDependency = RequireResolveContextDependencySerial;
exports.map.set(RequireResolveContextDependency, RequireResolveContextDependencySerial);
exports.RequireResolveDependency = RequireResolveDependencySerial;
exports.map.set(RequireResolveDependency, RequireResolveDependencySerial);
exports.RequireResolveHeaderDependency = RequireResolveHeaderDependencySerial;
exports.map.set(RequireResolveHeaderDependency, RequireResolveHeaderDependencySerial);
exports.SingleEntryDependency = SingleEntryDependencySerial;
exports.map.set(SingleEntryDependency, SingleEntryDependencySerial);
exports.UnsupportedDependency = UnsupportedDependencySerial;
exports.map.set(UnsupportedDependency, UnsupportedDependencySerial);
exports.WebAssemblyImportDependency = WebAssemblyImportDependencySerial;
exports.map.set(WebAssemblyImportDependency, WebAssemblyImportDependencySerial);