mirror of https://github.com/alibaba/ice.git
feat: replace binding package (#6663)
* chore: bump rspack version * fix: bump rspack version * feat: pre bundle rspack/core * fix: pre bundle * fix: import path in esm * chore: update rspack version * chore: update lock * fix: overwrite define props otherwise compile will get stack * fix: rspack config * feat: add @ice/pack-binding * fix: add default features * fix: default value validate * fix: option validation * chore: remove comment * fix: scripts * chore: lint file * chore: changeset * fix: prepack dev server * fix: config * chore: add dependencies * chore: lock * fix: compile task
This commit is contained in:
parent
5a53814ecb
commit
a68ff48d8e
|
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
'@ice/rspack-config': minor
|
||||||
|
'@ice/shared-config': minor
|
||||||
|
'@ice/bundles': minor
|
||||||
|
'@ice/app': minor
|
||||||
|
---
|
||||||
|
|
||||||
|
feat: support @ice/pack-binding
|
||||||
|
|
@ -18,6 +18,7 @@ coverage/
|
||||||
|
|
||||||
# 忽略第三方包
|
# 忽略第三方包
|
||||||
/vendor/loader.js
|
/vendor/loader.js
|
||||||
|
override/
|
||||||
|
|
||||||
# 忽略文件
|
# 忽略文件
|
||||||
**/*-min.js
|
**/*-min.js
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,626 @@
|
||||||
|
// Copy from @rspack/core/dist/config/adapter.js
|
||||||
|
'use strict';
|
||||||
|
let __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { default: mod };
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
exports.getRawLibrary = exports.getRawOptions = void 0;
|
||||||
|
const assert_1 = __importDefault(require('assert'));
|
||||||
|
const Stats_1 = require('../Stats');
|
||||||
|
const util_1 = require('../util');
|
||||||
|
const identifier_1 = require('../util/identifier');
|
||||||
|
const adapterRuleUse_1 = require('./adapterRuleUse');
|
||||||
|
const getRawOptions = (options, compiler, processResource) => {
|
||||||
|
let _a,
|
||||||
|
_b;
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(options.context) && !(0, util_1.isNil)(options.devtool) && !(0, util_1.isNil)(options.cache), 'context, devtool, cache should not be nil after defaults');
|
||||||
|
const devtool = options.devtool === false ? '' : options.devtool;
|
||||||
|
const { mode } = options;
|
||||||
|
const experiments = getRawExperiments(options.experiments);
|
||||||
|
return {
|
||||||
|
// CUSTOM: add options of features.
|
||||||
|
features: options.features,
|
||||||
|
mode,
|
||||||
|
target: getRawTarget(options.target),
|
||||||
|
context: options.context,
|
||||||
|
output: getRawOutput(options.output),
|
||||||
|
resolve: getRawResolve(options.resolve),
|
||||||
|
resolveLoader: getRawResolve(options.resolveLoader),
|
||||||
|
module: getRawModule(options.module, {
|
||||||
|
compiler,
|
||||||
|
devtool,
|
||||||
|
mode,
|
||||||
|
context: options.context,
|
||||||
|
experiments,
|
||||||
|
}),
|
||||||
|
devtool,
|
||||||
|
optimization: getRawOptimization(options.optimization),
|
||||||
|
stats: getRawStats(options.stats),
|
||||||
|
devServer: {
|
||||||
|
hot: (_b = (_a = options.devServer) === null || _a === void 0 ? void 0 : _a.hot) !== null && _b !== void 0 ? _b : false,
|
||||||
|
},
|
||||||
|
snapshot: getRawSnapshotOptions(options.snapshot),
|
||||||
|
cache: {
|
||||||
|
type: options.cache ? 'memory' : 'disable',
|
||||||
|
// TODO: implement below cache options
|
||||||
|
maxGenerations: 0,
|
||||||
|
maxAge: 0,
|
||||||
|
profile: false,
|
||||||
|
buildDependencies: [],
|
||||||
|
cacheDirectory: '',
|
||||||
|
cacheLocation: '',
|
||||||
|
name: '',
|
||||||
|
version: '',
|
||||||
|
},
|
||||||
|
experiments,
|
||||||
|
node: getRawNode(options.node),
|
||||||
|
profile: options.profile,
|
||||||
|
// TODO: remove this
|
||||||
|
builtins: options.builtins,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
exports.getRawOptions = getRawOptions;
|
||||||
|
function getRawTarget(target) {
|
||||||
|
if (!target) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
if (typeof target === 'string') {
|
||||||
|
return [target];
|
||||||
|
}
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
function getRawAlias(alias = {}) {
|
||||||
|
const entires = Object.entries(alias).map(([key, value]) => {
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
return [key, value];
|
||||||
|
} else {
|
||||||
|
return [key, [value]];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Object.fromEntries(entires);
|
||||||
|
}
|
||||||
|
function getRawResolveByDependency(byDependency) {
|
||||||
|
if (byDependency === undefined) return byDependency;
|
||||||
|
return Object.fromEntries(Object.entries(byDependency).map(([k, v]) => [k, getRawResolve(v)]));
|
||||||
|
}
|
||||||
|
function getRawResolve(resolve) {
|
||||||
|
let _a,
|
||||||
|
_b,
|
||||||
|
_c;
|
||||||
|
let references = (_a = resolve.tsConfig) === null || _a === void 0 ? void 0 : _a.references;
|
||||||
|
let tsconfigConfigFile = (_b = resolve.tsConfigPath) !== null && _b !== void 0 ? _b : (_c = resolve.tsConfig) === null || _c === void 0 ? void 0 : _c.configFile;
|
||||||
|
return {
|
||||||
|
...resolve,
|
||||||
|
alias: getRawAlias(resolve.alias),
|
||||||
|
fallback: getRawAlias(resolve.fallback),
|
||||||
|
extensionAlias: getRawAlias(resolve.extensionAlias),
|
||||||
|
tsconfig: tsconfigConfigFile
|
||||||
|
? {
|
||||||
|
configFile: tsconfigConfigFile,
|
||||||
|
referencesType: references == 'auto' ? 'auto' : references ? 'manual' : 'disabled',
|
||||||
|
references: references == 'auto' ? undefined : references,
|
||||||
|
}
|
||||||
|
: undefined,
|
||||||
|
byDependency: getRawResolveByDependency(resolve.byDependency),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawCrossOriginLoading(crossOriginLoading) {
|
||||||
|
if (typeof crossOriginLoading === 'boolean') {
|
||||||
|
return { type: 'bool', boolPayload: crossOriginLoading };
|
||||||
|
}
|
||||||
|
return { type: 'string', stringPayload: crossOriginLoading };
|
||||||
|
}
|
||||||
|
function getRawOutput(output) {
|
||||||
|
const { chunkLoading } = output;
|
||||||
|
const { wasmLoading } = output;
|
||||||
|
const { workerChunkLoading } = output;
|
||||||
|
const { workerWasmLoading } = output;
|
||||||
|
return {
|
||||||
|
path: output.path,
|
||||||
|
publicPath: output.publicPath,
|
||||||
|
clean: output.clean,
|
||||||
|
assetModuleFilename: output.assetModuleFilename,
|
||||||
|
filename: output.filename,
|
||||||
|
chunkFilename: output.chunkFilename,
|
||||||
|
chunkLoading: chunkLoading === false ? 'false' : chunkLoading,
|
||||||
|
crossOriginLoading: getRawCrossOriginLoading(output.crossOriginLoading),
|
||||||
|
cssFilename: output.cssFilename,
|
||||||
|
cssChunkFilename: output.cssChunkFilename,
|
||||||
|
hotUpdateChunkFilename: output.hotUpdateChunkFilename,
|
||||||
|
hotUpdateMainFilename: output.hotUpdateMainFilename,
|
||||||
|
hotUpdateGlobal: output.hotUpdateGlobal,
|
||||||
|
uniqueName: output.uniqueName,
|
||||||
|
chunkLoadingGlobal: output.chunkLoadingGlobal,
|
||||||
|
enabledLibraryTypes: output.enabledLibraryTypes,
|
||||||
|
library: output.library && getRawLibrary(output.library),
|
||||||
|
strictModuleErrorHandling: output.strictModuleErrorHandling,
|
||||||
|
globalObject: output.globalObject,
|
||||||
|
importFunctionName: output.importFunctionName,
|
||||||
|
iife: output.iife,
|
||||||
|
module: output.module,
|
||||||
|
wasmLoading: wasmLoading === false ? 'false' : wasmLoading,
|
||||||
|
enabledWasmLoadingTypes: output.enabledWasmLoadingTypes,
|
||||||
|
enabledChunkLoadingTypes: output.enabledChunkLoadingTypes,
|
||||||
|
webassemblyModuleFilename: output.webassemblyModuleFilename,
|
||||||
|
trustedTypes: output.trustedTypes,
|
||||||
|
sourceMapFilename: output.sourceMapFilename,
|
||||||
|
hashFunction: output.hashFunction,
|
||||||
|
hashDigest: output.hashDigest,
|
||||||
|
hashDigestLength: output.hashDigestLength,
|
||||||
|
hashSalt: output.hashSalt,
|
||||||
|
asyncChunks: output.asyncChunks,
|
||||||
|
workerChunkLoading: workerChunkLoading === false ? 'false' : workerChunkLoading,
|
||||||
|
workerWasmLoading: workerWasmLoading === false ? 'false' : workerWasmLoading,
|
||||||
|
workerPublicPath: output.workerPublicPath,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawLibrary(library) {
|
||||||
|
const { type, name, export: libraryExport, umdNamedDefine, auxiliaryComment, amdContainer } = library;
|
||||||
|
return {
|
||||||
|
amdContainer,
|
||||||
|
auxiliaryComment: typeof auxiliaryComment === 'string'
|
||||||
|
? {
|
||||||
|
commonjs: auxiliaryComment,
|
||||||
|
commonjs2: auxiliaryComment,
|
||||||
|
amd: auxiliaryComment,
|
||||||
|
root: auxiliaryComment,
|
||||||
|
}
|
||||||
|
: auxiliaryComment,
|
||||||
|
libraryType: type,
|
||||||
|
name: (0, util_1.isNil)(name) ? name : getRawLibraryName(name),
|
||||||
|
export: Array.isArray(libraryExport) || libraryExport == null
|
||||||
|
? libraryExport
|
||||||
|
: [libraryExport],
|
||||||
|
umdNamedDefine,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
exports.getRawLibrary = getRawLibrary;
|
||||||
|
function getRawLibraryName(name) {
|
||||||
|
if (typeof name === 'string') {
|
||||||
|
return {
|
||||||
|
type: 'string',
|
||||||
|
stringPayload: name,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (Array.isArray(name)) {
|
||||||
|
return {
|
||||||
|
type: 'array',
|
||||||
|
arrayPayload: name,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (typeof name === 'object' && !Array.isArray(name)) {
|
||||||
|
return {
|
||||||
|
type: 'umdObject',
|
||||||
|
umdObjectPayload: {
|
||||||
|
commonjs: name.commonjs,
|
||||||
|
root: Array.isArray(name.root) || (0, util_1.isNil)(name.root)
|
||||||
|
? name.root
|
||||||
|
: [name.root],
|
||||||
|
amd: name.amd,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw new Error('unreachable');
|
||||||
|
}
|
||||||
|
function getRawModule(module, options) {
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(module.defaultRules), 'module.defaultRules should not be nil after defaults');
|
||||||
|
// "..." in defaultRules will be flatten in `applyModuleDefaults`, and "..." in rules is empty, so it's safe to use `as RuleSetRule[]` at here
|
||||||
|
const ruleSet = [
|
||||||
|
{ rules: module.defaultRules },
|
||||||
|
{ rules: module.rules },
|
||||||
|
];
|
||||||
|
const rules = ruleSet.map((rule, index) => getRawModuleRule(rule, `ruleSet[${index}]`, options));
|
||||||
|
return {
|
||||||
|
rules,
|
||||||
|
parser: getRawParserOptionsByModuleType(module.parser),
|
||||||
|
generator: getRawGeneratorOptionsByModuleType(module.generator),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function tryMatch(payload, condition) {
|
||||||
|
if (typeof condition === 'string') {
|
||||||
|
return payload.startsWith(condition);
|
||||||
|
}
|
||||||
|
if (condition instanceof RegExp) {
|
||||||
|
return condition.test(payload);
|
||||||
|
}
|
||||||
|
if (typeof condition === 'function') {
|
||||||
|
return condition(payload);
|
||||||
|
}
|
||||||
|
if (Array.isArray(condition)) {
|
||||||
|
return condition.some(c => tryMatch(payload, c));
|
||||||
|
}
|
||||||
|
if (condition && typeof condition === 'object') {
|
||||||
|
if (condition.and) {
|
||||||
|
return condition.and.every(c => tryMatch(payload, c));
|
||||||
|
}
|
||||||
|
if (condition.or) {
|
||||||
|
return condition.or.some(c => tryMatch(payload, c));
|
||||||
|
}
|
||||||
|
if (condition.not) {
|
||||||
|
return condition.not.every(c => !tryMatch(payload, c));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const deprecatedRuleType = (type) => {
|
||||||
|
type !== null && type !== void 0 ? type : (type = 'javascript/auto');
|
||||||
|
if (/ts|typescript|tsx|typescriptx|jsx|javascriptx/.test(type)) {
|
||||||
|
(0, util_1.deprecatedWarn)(`'Rule.type: ${type}' has been deprecated, please migrate to builtin:swc-loader with type 'javascript/auto'`);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const getRawModuleRule = (rule, path, options) => {
|
||||||
|
let _a,
|
||||||
|
_b,
|
||||||
|
_c;
|
||||||
|
// Rule.loader is a shortcut to Rule.use: [ { loader } ].
|
||||||
|
// See: https://webpack.js.org/configuration/module/#ruleloader
|
||||||
|
if (rule.loader) {
|
||||||
|
rule.use = [
|
||||||
|
{
|
||||||
|
loader: rule.loader,
|
||||||
|
options: rule.options,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
let funcUse;
|
||||||
|
if (typeof rule.use === 'function') {
|
||||||
|
funcUse = (rawContext) => {
|
||||||
|
const context = {
|
||||||
|
...rawContext,
|
||||||
|
compiler: options.compiler,
|
||||||
|
};
|
||||||
|
const uses = rule.use(context);
|
||||||
|
return (0, adapterRuleUse_1.createRawModuleRuleUses)(uses !== null && uses !== void 0 ? uses : [], `${path}.use`, options);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
let rawModuleRule = {
|
||||||
|
test: rule.test ? getRawRuleSetCondition(rule.test) : undefined,
|
||||||
|
include: rule.include ? getRawRuleSetCondition(rule.include) : undefined,
|
||||||
|
exclude: rule.exclude ? getRawRuleSetCondition(rule.exclude) : undefined,
|
||||||
|
issuer: rule.issuer ? getRawRuleSetCondition(rule.issuer) : undefined,
|
||||||
|
dependency: rule.dependency
|
||||||
|
? getRawRuleSetCondition(rule.dependency)
|
||||||
|
: undefined,
|
||||||
|
descriptionData: rule.descriptionData
|
||||||
|
? Object.fromEntries(Object.entries(rule.descriptionData).map(([k, v]) => [
|
||||||
|
k,
|
||||||
|
getRawRuleSetCondition(v),
|
||||||
|
]))
|
||||||
|
: undefined,
|
||||||
|
resource: rule.resource ? getRawRuleSetCondition(rule.resource) : undefined,
|
||||||
|
resourceQuery: rule.resourceQuery
|
||||||
|
? getRawRuleSetCondition(rule.resourceQuery)
|
||||||
|
: undefined,
|
||||||
|
resourceFragment: rule.resourceFragment
|
||||||
|
? getRawRuleSetCondition(rule.resourceFragment)
|
||||||
|
: undefined,
|
||||||
|
scheme: rule.scheme ? getRawRuleSetCondition(rule.scheme) : undefined,
|
||||||
|
mimetype: rule.mimetype ? getRawRuleSetCondition(rule.mimetype) : undefined,
|
||||||
|
sideEffects: rule.sideEffects,
|
||||||
|
use: typeof rule.use === 'function'
|
||||||
|
? { type: 'function', funcUse }
|
||||||
|
: {
|
||||||
|
type: 'array',
|
||||||
|
arrayUse: (0, adapterRuleUse_1.createRawModuleRuleUses)((_a = rule.use) !== null && _a !== void 0 ? _a : [], `${path}.use`, options),
|
||||||
|
},
|
||||||
|
type: rule.type,
|
||||||
|
parser: rule.parser
|
||||||
|
? getRawParserOptions(rule.parser, (_b = rule.type) !== null && _b !== void 0 ? _b : 'javascript/auto')
|
||||||
|
: undefined,
|
||||||
|
generator: rule.generator
|
||||||
|
? getRawGeneratorOptions(rule.generator, (_c = rule.type) !== null && _c !== void 0 ? _c : 'javascript/auto')
|
||||||
|
: undefined,
|
||||||
|
resolve: rule.resolve ? getRawResolve(rule.resolve) : undefined,
|
||||||
|
oneOf: rule.oneOf
|
||||||
|
? rule.oneOf.map((rule, index) => getRawModuleRule(rule, `${path}.oneOf[${index}]`, options))
|
||||||
|
: undefined,
|
||||||
|
rules: rule.rules
|
||||||
|
? rule.rules.map((rule, index) => getRawModuleRule(rule, `${path}.rules[${index}]`, options))
|
||||||
|
: undefined,
|
||||||
|
enforce: rule.enforce,
|
||||||
|
};
|
||||||
|
// Function calls may contain side-effects when interoperating with single-threaded environment.
|
||||||
|
// In order to mitigate the issue, Rspack tries to merge these calls together.
|
||||||
|
// See: https://github.com/web-infra-dev/rspack/issues/4003#issuecomment-1689662380
|
||||||
|
if (typeof rule.test === 'function' ||
|
||||||
|
typeof rule.resource === 'function' ||
|
||||||
|
typeof rule.resourceQuery === 'function' ||
|
||||||
|
typeof rule.resourceFragment === 'function') {
|
||||||
|
delete rawModuleRule.test;
|
||||||
|
delete rawModuleRule.resource;
|
||||||
|
delete rawModuleRule.resourceQuery;
|
||||||
|
delete rawModuleRule.resourceFragment;
|
||||||
|
rawModuleRule.rspackResource = getRawRuleSetCondition((resourceQueryFragment) => {
|
||||||
|
const { path, query, fragment } = (0, identifier_1.parseResource)(resourceQueryFragment);
|
||||||
|
if (rule.test && !tryMatch(path, rule.test)) {
|
||||||
|
return false;
|
||||||
|
} else if (rule.resource && !tryMatch(path, rule.resource)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (rule.resourceQuery && !tryMatch(query, rule.resourceQuery)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (rule.resourceFragment && !tryMatch(fragment, rule.resourceFragment)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (options.experiments.rspackFuture.disableTransformByDefault) {
|
||||||
|
deprecatedRuleType(rule.type);
|
||||||
|
}
|
||||||
|
return rawModuleRule;
|
||||||
|
};
|
||||||
|
function getRawRuleSetCondition(condition) {
|
||||||
|
if (typeof condition === 'string') {
|
||||||
|
return {
|
||||||
|
type: 'string',
|
||||||
|
stringMatcher: condition,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (condition instanceof RegExp) {
|
||||||
|
return {
|
||||||
|
type: 'regexp',
|
||||||
|
regexpMatcher: condition.source,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (typeof condition === 'function') {
|
||||||
|
return {
|
||||||
|
type: 'function',
|
||||||
|
funcMatcher: condition,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (Array.isArray(condition)) {
|
||||||
|
return {
|
||||||
|
type: 'array',
|
||||||
|
arrayMatcher: condition.map(i => getRawRuleSetCondition(i)),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (typeof condition === 'object' && condition !== null) {
|
||||||
|
return {
|
||||||
|
type: 'logical',
|
||||||
|
logicalMatcher: [getRawRuleSetLogicalConditions(condition)],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw new Error('unreachable: condition should be one of string, RegExp, Array, Object');
|
||||||
|
}
|
||||||
|
function getRawRuleSetLogicalConditions(logical) {
|
||||||
|
return {
|
||||||
|
and: logical.and
|
||||||
|
? logical.and.map(i => getRawRuleSetCondition(i))
|
||||||
|
: undefined,
|
||||||
|
or: logical.or ? logical.or.map(i => getRawRuleSetCondition(i)) : undefined,
|
||||||
|
not: logical.not ? getRawRuleSetCondition(logical.not) : undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawParserOptionsByModuleType(parser) {
|
||||||
|
return Object.fromEntries(Object.entries(parser).map(([k, v]) => [k, getRawParserOptions(v, k)]));
|
||||||
|
}
|
||||||
|
function getRawGeneratorOptionsByModuleType(parser) {
|
||||||
|
return Object.fromEntries(Object.entries(parser).map(([k, v]) => [k, getRawGeneratorOptions(v, k)]));
|
||||||
|
}
|
||||||
|
function getRawParserOptions(parser, type) {
|
||||||
|
if (type === 'asset') {
|
||||||
|
return {
|
||||||
|
type: 'asset',
|
||||||
|
asset: getRawAssetParserOptions(parser),
|
||||||
|
};
|
||||||
|
} else if (type === 'javascript') {
|
||||||
|
return {
|
||||||
|
type: 'javascript',
|
||||||
|
javascript: getRawJavascriptParserOptions(parser),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
type: 'unknown',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawJavascriptParserOptions(parser) {
|
||||||
|
let _a;
|
||||||
|
return {
|
||||||
|
dynamicImportMode: (_a = parser.dynamicImportMode) !== null && _a !== void 0 ? _a : 'lazy',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawAssetParserOptions(parser) {
|
||||||
|
return {
|
||||||
|
dataUrlCondition: parser.dataUrlCondition
|
||||||
|
? getRawAssetParserDataUrl(parser.dataUrlCondition)
|
||||||
|
: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawAssetParserDataUrl(dataUrlCondition) {
|
||||||
|
if (typeof dataUrlCondition === 'object' && dataUrlCondition !== null) {
|
||||||
|
return {
|
||||||
|
type: 'options',
|
||||||
|
options: {
|
||||||
|
maxSize: dataUrlCondition.maxSize,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw new Error(`unreachable: AssetParserDataUrl type should be one of "options", but got ${dataUrlCondition}`);
|
||||||
|
}
|
||||||
|
function getRawGeneratorOptions(generator, type) {
|
||||||
|
if (type === 'asset') {
|
||||||
|
return {
|
||||||
|
type: 'asset',
|
||||||
|
asset: generator ? getRawAssetGeneratorOptions(generator) : undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (type === 'asset/inline') {
|
||||||
|
return {
|
||||||
|
type: 'asset/inline',
|
||||||
|
assetInline: generator
|
||||||
|
? getRawAssetInlineGeneratorOptions(generator)
|
||||||
|
: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (type === 'asset/resource') {
|
||||||
|
return {
|
||||||
|
type: 'asset/resource',
|
||||||
|
assetResource: generator
|
||||||
|
? getRawAssetResourceGeneratorOptions(generator)
|
||||||
|
: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
type: 'unknown',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawAssetGeneratorOptions(options) {
|
||||||
|
return {
|
||||||
|
...getRawAssetInlineGeneratorOptions(options),
|
||||||
|
...getRawAssetResourceGeneratorOptions(options),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawAssetInlineGeneratorOptions(options) {
|
||||||
|
return {
|
||||||
|
dataUrl: options.dataUrl
|
||||||
|
? getRawAssetGeneratorDaraUrl(options.dataUrl)
|
||||||
|
: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawAssetResourceGeneratorOptions(options) {
|
||||||
|
return {
|
||||||
|
filename: options.filename,
|
||||||
|
publicPath: options.publicPath,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawAssetGeneratorDaraUrl(dataUrl) {
|
||||||
|
if (typeof dataUrl === 'object' && dataUrl !== null) {
|
||||||
|
return {
|
||||||
|
type: 'options',
|
||||||
|
options: {
|
||||||
|
encoding: dataUrl.encoding === false ? 'false' : dataUrl.encoding,
|
||||||
|
mimetype: dataUrl.mimetype,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw new Error(`unreachable: AssetGeneratorDataUrl type should be one of "options", but got ${dataUrl}`);
|
||||||
|
}
|
||||||
|
function getRawOptimization(optimization) {
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(optimization.moduleIds) &&
|
||||||
|
!(0, util_1.isNil)(optimization.chunkIds) &&
|
||||||
|
!(0, util_1.isNil)(optimization.removeAvailableModules) &&
|
||||||
|
!(0, util_1.isNil)(optimization.removeEmptyChunks) &&
|
||||||
|
!(0, util_1.isNil)(optimization.sideEffects) &&
|
||||||
|
!(0, util_1.isNil)(optimization.realContentHash) &&
|
||||||
|
!(0, util_1.isNil)(optimization.providedExports) &&
|
||||||
|
!(0, util_1.isNil)(optimization.usedExports) &&
|
||||||
|
!(0, util_1.isNil)(optimization.innerGraph), 'optimization.moduleIds, optimization.removeAvailableModules, optimization.removeEmptyChunks, optimization.sideEffects, optimization.realContentHash, optimization.providedExports, optimization.usedExports, optimization.innerGraph should not be nil after defaults');
|
||||||
|
return {
|
||||||
|
chunkIds: optimization.chunkIds,
|
||||||
|
splitChunks: toRawSplitChunksOptions(optimization.splitChunks),
|
||||||
|
moduleIds: optimization.moduleIds,
|
||||||
|
removeAvailableModules: optimization.removeAvailableModules,
|
||||||
|
removeEmptyChunks: optimization.removeEmptyChunks,
|
||||||
|
sideEffects: String(optimization.sideEffects),
|
||||||
|
realContentHash: optimization.realContentHash,
|
||||||
|
usedExports: String(optimization.usedExports),
|
||||||
|
providedExports: optimization.providedExports,
|
||||||
|
innerGraph: optimization.innerGraph,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function toRawSplitChunksOptions(sc) {
|
||||||
|
if (!sc) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const { name, cacheGroups = {}, ...passThrough } = sc;
|
||||||
|
return {
|
||||||
|
name: name === false ? undefined : name,
|
||||||
|
cacheGroups: Object.entries(cacheGroups)
|
||||||
|
.filter(([_key, group]) => group !== false)
|
||||||
|
.map(([key, group]) => {
|
||||||
|
group = group;
|
||||||
|
const { test, name, ...passThrough } = group;
|
||||||
|
const rawGroup = {
|
||||||
|
key,
|
||||||
|
test,
|
||||||
|
name: name === false ? undefined : name,
|
||||||
|
...passThrough,
|
||||||
|
};
|
||||||
|
return rawGroup;
|
||||||
|
}),
|
||||||
|
...passThrough,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawSnapshotOptions(snapshot) {
|
||||||
|
const { resolve, module } = snapshot;
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(resolve) && !(0, util_1.isNil)(module));
|
||||||
|
const { timestamp: resolveTimestamp, hash: resolveHash } = resolve;
|
||||||
|
const { timestamp: moduleTimestamp, hash: moduleHash } = module;
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(resolveTimestamp) &&
|
||||||
|
!(0, util_1.isNil)(resolveHash) &&
|
||||||
|
!(0, util_1.isNil)(moduleTimestamp) &&
|
||||||
|
!(0, util_1.isNil)(moduleHash));
|
||||||
|
return {
|
||||||
|
resolve: {
|
||||||
|
timestamp: resolveTimestamp,
|
||||||
|
hash: resolveHash,
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
timestamp: moduleTimestamp,
|
||||||
|
hash: moduleHash,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawExperiments(experiments) {
|
||||||
|
const { lazyCompilation, incrementalRebuild, asyncWebAssembly, newSplitChunks, topLevelAwait, css, rspackFuture } = experiments;
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(lazyCompilation) &&
|
||||||
|
!(0, util_1.isNil)(incrementalRebuild) &&
|
||||||
|
!(0, util_1.isNil)(asyncWebAssembly) &&
|
||||||
|
!(0, util_1.isNil)(newSplitChunks) &&
|
||||||
|
!(0, util_1.isNil)(topLevelAwait) &&
|
||||||
|
!(0, util_1.isNil)(css) &&
|
||||||
|
!(0, util_1.isNil)(rspackFuture));
|
||||||
|
return {
|
||||||
|
lazyCompilation,
|
||||||
|
incrementalRebuild: getRawIncrementalRebuild(incrementalRebuild),
|
||||||
|
asyncWebAssembly,
|
||||||
|
newSplitChunks,
|
||||||
|
topLevelAwait,
|
||||||
|
css,
|
||||||
|
rspackFuture: getRawRspackFutureOptions(rspackFuture),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawRspackFutureOptions(future) {
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(future.newResolver));
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(future.newTreeshaking));
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(future.disableTransformByDefault));
|
||||||
|
return {
|
||||||
|
newResolver: future.newResolver,
|
||||||
|
newTreeshaking: future.newTreeshaking,
|
||||||
|
disableTransformByDefault: future.disableTransformByDefault,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawIncrementalRebuild(inc) {
|
||||||
|
if (inc === false) {
|
||||||
|
return {
|
||||||
|
make: false,
|
||||||
|
emitAsset: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const { make, emitAsset } = inc;
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(make) && !(0, util_1.isNil)(emitAsset));
|
||||||
|
return {
|
||||||
|
make,
|
||||||
|
emitAsset,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawNode(node) {
|
||||||
|
if (node === false) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(node.__dirname) && !(0, util_1.isNil)(node.global) && !(0, util_1.isNil)(node.__filename));
|
||||||
|
return {
|
||||||
|
dirname: String(node.__dirname),
|
||||||
|
filename: String(node.__filename),
|
||||||
|
global: String(node.global),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function getRawStats(stats) {
|
||||||
|
let _a;
|
||||||
|
const statsOptions = (0, Stats_1.normalizeStatsPreset)(stats);
|
||||||
|
return {
|
||||||
|
colors: (_a = statsOptions.colors) !== null && _a !== void 0 ? _a : false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
"use strict";
|
||||||
|
const checkVersion = function() {
|
||||||
|
// Skip binding version check, framework will lock the binding version.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
exports.checkVersion = checkVersion;
|
||||||
|
|
@ -0,0 +1,699 @@
|
||||||
|
// Copy from @rspack/core/dist/config/defaults.js
|
||||||
|
'use strict';
|
||||||
|
/**
|
||||||
|
* The following code is modified based on
|
||||||
|
* https://github.com/webpack/webpack/blob/4b4ca3b/lib/config/defaults.js
|
||||||
|
*
|
||||||
|
* MIT Licensed
|
||||||
|
* Author Tobias Koppers @sokra
|
||||||
|
* Copyright (c) JS Foundation and other contributors
|
||||||
|
* https://github.com/webpack/webpack/blob/main/LICENSE
|
||||||
|
*/
|
||||||
|
let __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { default: mod };
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
exports.applyRspackOptionsBaseDefaults = exports.applyRspackOptionsDefaults = void 0;
|
||||||
|
const assert_1 = __importDefault(require('assert'));
|
||||||
|
const fs_1 = __importDefault(require('fs'));
|
||||||
|
const path_1 = __importDefault(require('path'));
|
||||||
|
const util_1 = require('../util');
|
||||||
|
const cleverMerge_1 = require('../util/cleverMerge');
|
||||||
|
const Template_1 = __importDefault(require('../Template'));
|
||||||
|
const assertNotNil_1 = require('../util/assertNotNil');
|
||||||
|
const ModuleTypeConstants_1 = require('../ModuleTypeConstants');
|
||||||
|
const target_1 = require('./target');
|
||||||
|
const applyRspackOptionsDefaults = (options) => {
|
||||||
|
let _a;
|
||||||
|
F(options, 'context', () => process.cwd());
|
||||||
|
F(options, 'target', () => {
|
||||||
|
return (0, target_1.getDefaultTarget)(options.context);
|
||||||
|
});
|
||||||
|
const { mode, target } = options;
|
||||||
|
(0, assert_1.default)(!(0, util_1.isNil)(target));
|
||||||
|
let targetProperties = target === false
|
||||||
|
? false
|
||||||
|
: typeof target === 'string'
|
||||||
|
? (0, target_1.getTargetProperties)(target, options.context)
|
||||||
|
: (0, target_1.getTargetsProperties)(target, options.context);
|
||||||
|
const development = mode === 'development';
|
||||||
|
const production = mode === 'production' || !mode;
|
||||||
|
if (typeof options.entry !== 'function') {
|
||||||
|
for (const key of Object.keys(options.entry)) {
|
||||||
|
F(options.entry[key], 'import', () => ['./src']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
F(options, 'devtool', () => false);
|
||||||
|
D(options, 'watch', false);
|
||||||
|
D(options, 'profile', false);
|
||||||
|
const futureDefaults = (_a = options.experiments.futureDefaults) !== null && _a !== void 0 ? _a : false;
|
||||||
|
F(options, 'cache', () => development);
|
||||||
|
applyExperimentsDefaults(options.experiments, {
|
||||||
|
cache: options.cache,
|
||||||
|
});
|
||||||
|
// CUSTOM: add default rules for features options.
|
||||||
|
if (options.features) {
|
||||||
|
applyFeaturesDefaults(options.features);
|
||||||
|
} else {
|
||||||
|
D(options, 'features', {});
|
||||||
|
}
|
||||||
|
applySnapshotDefaults(options.snapshot, { production });
|
||||||
|
applyModuleDefaults(options.module, {
|
||||||
|
// syncWebAssembly: options.experiments.syncWebAssembly,
|
||||||
|
asyncWebAssembly: options.experiments.asyncWebAssembly,
|
||||||
|
disableTransformByDefault: options.experiments.rspackFuture.disableTransformByDefault,
|
||||||
|
css: options.experiments.css,
|
||||||
|
});
|
||||||
|
applyOutputDefaults(options.output, {
|
||||||
|
context: options.context,
|
||||||
|
targetProperties,
|
||||||
|
isAffectedByBrowserslist: target === undefined ||
|
||||||
|
(typeof target === 'string' && target.startsWith('browserslist')) ||
|
||||||
|
(Array.isArray(target) &&
|
||||||
|
target.some(target => target.startsWith('browserslist'))),
|
||||||
|
outputModule: options.experiments.outputModule,
|
||||||
|
entry: options.entry,
|
||||||
|
futureDefaults,
|
||||||
|
});
|
||||||
|
applyExternalsPresetsDefaults(options.externalsPresets, {
|
||||||
|
targetProperties,
|
||||||
|
});
|
||||||
|
// @ts-expect-error
|
||||||
|
F(options, 'externalsType', () => {
|
||||||
|
return options.output.library
|
||||||
|
? options.output.library.type
|
||||||
|
: options.output.module
|
||||||
|
? 'module'
|
||||||
|
: 'var';
|
||||||
|
});
|
||||||
|
applyNodeDefaults(options.node, { targetProperties });
|
||||||
|
applyOptimizationDefaults(options.optimization, { production, development });
|
||||||
|
options.resolve = (0, cleverMerge_1.cleverMerge)(getResolveDefaults({
|
||||||
|
targetProperties,
|
||||||
|
mode: options.mode,
|
||||||
|
}), options.resolve);
|
||||||
|
options.resolveLoader = (0, cleverMerge_1.cleverMerge)(getResolveLoaderDefaults(), options.resolveLoader);
|
||||||
|
};
|
||||||
|
exports.applyRspackOptionsDefaults = applyRspackOptionsDefaults;
|
||||||
|
const applyRspackOptionsBaseDefaults = (options) => {
|
||||||
|
F(options, 'context', () => process.cwd());
|
||||||
|
applyInfrastructureLoggingDefaults(options.infrastructureLogging);
|
||||||
|
};
|
||||||
|
exports.applyRspackOptionsBaseDefaults = applyRspackOptionsBaseDefaults;
|
||||||
|
const applyInfrastructureLoggingDefaults = (infrastructureLogging) => {
|
||||||
|
F(infrastructureLogging, 'stream', () => process.stderr);
|
||||||
|
const tty = infrastructureLogging.stream.isTTY && process.env.TERM !== 'dumb';
|
||||||
|
D(infrastructureLogging, 'level', 'info');
|
||||||
|
D(infrastructureLogging, 'debug', false);
|
||||||
|
D(infrastructureLogging, 'colors', tty);
|
||||||
|
D(infrastructureLogging, 'appendOnly', !tty);
|
||||||
|
};
|
||||||
|
const applyExperimentsDefaults = (experiments, { cache }) => {
|
||||||
|
D(experiments, 'lazyCompilation', false);
|
||||||
|
D(experiments, 'asyncWebAssembly', false);
|
||||||
|
D(experiments, 'newSplitChunks', true);
|
||||||
|
D(experiments, 'css', true); // we not align with webpack about the default value for better DX
|
||||||
|
D(experiments, 'topLevelAwait', true);
|
||||||
|
D(experiments, 'incrementalRebuild', {});
|
||||||
|
if (typeof experiments.incrementalRebuild === 'object') {
|
||||||
|
D(experiments.incrementalRebuild, 'make', true);
|
||||||
|
D(experiments.incrementalRebuild, 'emitAsset', true);
|
||||||
|
}
|
||||||
|
if (cache === false &&
|
||||||
|
experiments.incrementalRebuild &&
|
||||||
|
experiments.incrementalRebuild.make) {
|
||||||
|
experiments.incrementalRebuild.make = false;
|
||||||
|
// TODO: use logger to warn user enable cache for incrementalRebuild.make
|
||||||
|
}
|
||||||
|
D(experiments, 'rspackFuture', {});
|
||||||
|
if (typeof experiments.rspackFuture === 'object') {
|
||||||
|
D(experiments.rspackFuture, 'newResolver', true);
|
||||||
|
D(experiments.rspackFuture, 'newTreeshaking', false);
|
||||||
|
D(experiments.rspackFuture, 'disableTransformByDefault', true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const applyFeaturesDefaults = (features) => {
|
||||||
|
D(features, 'split_chunks_strategy', {});
|
||||||
|
if (typeof features.split_chunks_strategy === 'object') {
|
||||||
|
D(features.split_chunks_strategy, 'name', '');
|
||||||
|
D(features.split_chunks_strategy, 'topLevelFrameworks', []);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const applySnapshotDefaults = (snapshot, { production }) => {
|
||||||
|
F(snapshot, 'module', () => (production
|
||||||
|
? { timestamp: true, hash: true }
|
||||||
|
: { timestamp: true, hash: false }));
|
||||||
|
F(snapshot, 'resolve', () => (production
|
||||||
|
? { timestamp: true, hash: true }
|
||||||
|
: { timestamp: true, hash: false }));
|
||||||
|
};
|
||||||
|
const applyJavascriptParserOptionsDefaults = (parserOptions) => {
|
||||||
|
D(parserOptions, 'dynamicImportMode', 'lazy');
|
||||||
|
};
|
||||||
|
const applyModuleDefaults = (module, { asyncWebAssembly, css, disableTransformByDefault }) => {
|
||||||
|
(0, assertNotNil_1.assertNotNill)(module.parser);
|
||||||
|
F(module.parser, ModuleTypeConstants_1.ASSET_MODULE_TYPE, () => ({}));
|
||||||
|
(0, assertNotNil_1.assertNotNill)(module.parser.asset);
|
||||||
|
F(module.parser.asset, 'dataUrlCondition', () => ({}));
|
||||||
|
if (typeof module.parser.asset.dataUrlCondition === 'object') {
|
||||||
|
D(module.parser.asset.dataUrlCondition, 'maxSize', 8096);
|
||||||
|
}
|
||||||
|
F(module.parser, 'javascript', () => ({}));
|
||||||
|
(0, assertNotNil_1.assertNotNill)(module.parser.javascript);
|
||||||
|
applyJavascriptParserOptionsDefaults(module.parser.javascript);
|
||||||
|
A(module, 'defaultRules', () => {
|
||||||
|
const esm = {
|
||||||
|
type: 'javascript/esm',
|
||||||
|
resolve: {
|
||||||
|
byDependency: {
|
||||||
|
esm: {
|
||||||
|
fullySpecified: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const commonjs = {
|
||||||
|
type: 'javascript/dynamic',
|
||||||
|
};
|
||||||
|
const rules = [
|
||||||
|
{
|
||||||
|
mimetype: 'application/node',
|
||||||
|
type: 'javascript/auto',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.json$/i,
|
||||||
|
type: 'json',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mimetype: 'application/json',
|
||||||
|
type: 'json',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.mjs$/i,
|
||||||
|
...esm,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.js$/i,
|
||||||
|
descriptionData: {
|
||||||
|
type: 'module',
|
||||||
|
},
|
||||||
|
...esm,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.cjs$/i,
|
||||||
|
...commonjs,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.js$/i,
|
||||||
|
descriptionData: {
|
||||||
|
type: 'commonjs',
|
||||||
|
},
|
||||||
|
...commonjs,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mimetype: {
|
||||||
|
or: ['text/javascript', 'application/javascript'],
|
||||||
|
},
|
||||||
|
...esm,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
// TODO: remove in 0.5.0
|
||||||
|
if (!disableTransformByDefault) {
|
||||||
|
rules.push({
|
||||||
|
test: /\.jsx$/i,
|
||||||
|
type: 'jsx',
|
||||||
|
}, {
|
||||||
|
test: /\.ts$/i,
|
||||||
|
type: 'ts',
|
||||||
|
}, {
|
||||||
|
test: /\.tsx$/i,
|
||||||
|
type: 'tsx',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (asyncWebAssembly) {
|
||||||
|
const wasm = {
|
||||||
|
type: 'webassembly/async',
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
descriptionData: {
|
||||||
|
type: 'module',
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
fullySpecified: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
rules.push({
|
||||||
|
test: /\.wasm$/i,
|
||||||
|
...wasm,
|
||||||
|
});
|
||||||
|
rules.push({
|
||||||
|
mimetype: 'application/wasm',
|
||||||
|
...wasm,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (css) {
|
||||||
|
const cssRule = {
|
||||||
|
type: 'css',
|
||||||
|
resolve: {
|
||||||
|
fullySpecified: true,
|
||||||
|
preferRelative: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const cssModulesRule = {
|
||||||
|
type: 'css/module',
|
||||||
|
resolve: {
|
||||||
|
fullySpecified: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
rules.push({
|
||||||
|
test: /\.css$/i,
|
||||||
|
oneOf: [
|
||||||
|
{
|
||||||
|
test: /\.module\.css$/i,
|
||||||
|
...cssModulesRule,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
...cssRule,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
rules.push({
|
||||||
|
mimetype: 'text/css+module',
|
||||||
|
...cssModulesRule,
|
||||||
|
});
|
||||||
|
rules.push({
|
||||||
|
mimetype: 'text/css',
|
||||||
|
...cssRule,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
rules.push({
|
||||||
|
dependency: 'url',
|
||||||
|
oneOf: [
|
||||||
|
{
|
||||||
|
scheme: /^data$/,
|
||||||
|
type: 'asset/inline',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'asset/resource',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
return rules;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const applyOutputDefaults = (output, { context, outputModule, targetProperties: tp, isAffectedByBrowserslist, entry, futureDefaults }) => {
|
||||||
|
F(output, 'uniqueName', () => {
|
||||||
|
const pkgPath = path_1.default.resolve(context, 'package.json');
|
||||||
|
try {
|
||||||
|
const packageInfo = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf-8'));
|
||||||
|
return packageInfo.name || '';
|
||||||
|
} catch (e) {
|
||||||
|
if (e.code !== 'ENOENT') {
|
||||||
|
e.message += `\nwhile determining default 'output.uniqueName' from 'name' in ${pkgPath}`;
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
F(output, 'chunkLoadingGlobal', () => Template_1.default.toIdentifier(`webpackChunk${Template_1.default.toIdentifier(output.uniqueName)}`));
|
||||||
|
F(output, 'module', () => !!outputModule);
|
||||||
|
D(output, 'filename', output.module ? '[name].mjs' : '[name].js');
|
||||||
|
F(output, 'iife', () => !output.module);
|
||||||
|
F(output, 'chunkFilename', () => {
|
||||||
|
const { filename } = output;
|
||||||
|
if (typeof filename !== 'function') {
|
||||||
|
const hasName = filename.includes('[name]');
|
||||||
|
const hasId = filename.includes('[id]');
|
||||||
|
const hasChunkHash = filename.includes('[chunkhash]');
|
||||||
|
const hasContentHash = filename.includes('[contenthash]');
|
||||||
|
// Anything changing depending on chunk is fine
|
||||||
|
if (hasChunkHash || hasContentHash || hasName || hasId) return filename;
|
||||||
|
// Otherwise prefix "[id]." in front of the basename to make it changing
|
||||||
|
return filename.replace(/(^|\/)([^/]*(?:\?|$))/, '$1[id].$2');
|
||||||
|
}
|
||||||
|
return '[id].js';
|
||||||
|
});
|
||||||
|
F(output, 'cssFilename', () => {
|
||||||
|
const { filename } = output;
|
||||||
|
if (typeof filename !== 'function') {
|
||||||
|
return filename.replace(/\.[mc]?js(\?|$)/, '.css$1');
|
||||||
|
}
|
||||||
|
return '[id].css';
|
||||||
|
});
|
||||||
|
F(output, 'cssChunkFilename', () => {
|
||||||
|
const { chunkFilename } = output;
|
||||||
|
if (typeof chunkFilename !== 'function') {
|
||||||
|
return chunkFilename.replace(/\.[mc]?js(\?|$)/, '.css$1');
|
||||||
|
}
|
||||||
|
return '[id].css';
|
||||||
|
});
|
||||||
|
D(output, 'hotUpdateChunkFilename', `[id].[fullhash].hot-update.${output.module ? 'mjs' : 'js'}`);
|
||||||
|
D(output, 'hotUpdateMainFilename', '[runtime].[fullhash].hot-update.json');
|
||||||
|
F(output, 'hotUpdateGlobal', () => Template_1.default.toIdentifier(`webpackHotUpdate${Template_1.default.toIdentifier(output.uniqueName)}`));
|
||||||
|
D(output, 'assetModuleFilename', '[hash][ext][query]');
|
||||||
|
D(output, 'webassemblyModuleFilename', '[hash].module.wasm');
|
||||||
|
F(output, 'path', () => path_1.default.join(process.cwd(), 'dist'));
|
||||||
|
D(output, 'publicPath', tp && (tp.document || tp.importScripts) ? 'auto' : '');
|
||||||
|
D(output, 'hashFunction', futureDefaults ? 'xxhash64' : 'md4');
|
||||||
|
D(output, 'hashDigest', 'hex');
|
||||||
|
D(output, 'hashDigestLength', futureDefaults ? 16 : 20);
|
||||||
|
D(output, 'strictModuleErrorHandling', false);
|
||||||
|
if (output.library) {
|
||||||
|
F(output.library, 'type', () => (output.module ? 'module' : 'var'));
|
||||||
|
}
|
||||||
|
F(output, 'chunkFormat', () => {
|
||||||
|
if (tp) {
|
||||||
|
const helpMessage = isAffectedByBrowserslist
|
||||||
|
? "Make sure that your 'browserslist' includes only platforms that support these features or select an appropriate 'target' to allow selecting a chunk format by default. Alternatively specify the 'output.chunkFormat' directly."
|
||||||
|
: "Select an appropriate 'target' to allow selecting one by default, or specify the 'output.chunkFormat' directly.";
|
||||||
|
if (output.module) {
|
||||||
|
if (tp.dynamicImport) return 'module';
|
||||||
|
if (tp.document) return 'array-push';
|
||||||
|
throw new Error('For the selected environment is no default ESM chunk format available:\n' +
|
||||||
|
'ESM exports can be chosen when \'import()\' is available.\n' +
|
||||||
|
`JSONP Array push can be chosen when 'document' is available.\n${
|
||||||
|
helpMessage}`);
|
||||||
|
} else {
|
||||||
|
if (tp.document) return 'array-push';
|
||||||
|
if (tp.require) return 'commonjs';
|
||||||
|
if (tp.nodeBuiltins) return 'commonjs';
|
||||||
|
if (tp.importScripts) return 'array-push';
|
||||||
|
throw new Error('For the selected environment is no default script chunk format available:\n' +
|
||||||
|
'JSONP Array push can be chosen when \'document\' or \'importScripts\' is available.\n' +
|
||||||
|
`CommonJs exports can be chosen when 'require' or node builtins are available.\n${
|
||||||
|
helpMessage}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error("Chunk format can't be selected by default when no target is specified");
|
||||||
|
});
|
||||||
|
D(output, 'asyncChunks', true);
|
||||||
|
F(output, 'chunkLoading', () => {
|
||||||
|
if (tp) {
|
||||||
|
switch (output.chunkFormat) {
|
||||||
|
case 'array-push':
|
||||||
|
if (tp.document) return 'jsonp';
|
||||||
|
if (tp.importScripts) return 'import-scripts';
|
||||||
|
break;
|
||||||
|
case 'commonjs':
|
||||||
|
if (tp.require) return 'require';
|
||||||
|
if (tp.nodeBuiltins) return 'async-node';
|
||||||
|
break;
|
||||||
|
case 'module':
|
||||||
|
if (tp.dynamicImport) return 'import';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (tp.require === null ||
|
||||||
|
tp.nodeBuiltins === null ||
|
||||||
|
tp.document === null ||
|
||||||
|
tp.importScripts === null) {
|
||||||
|
return 'universal';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
F(output, 'workerChunkLoading', () => {
|
||||||
|
if (tp) {
|
||||||
|
switch (output.chunkFormat) {
|
||||||
|
case 'array-push':
|
||||||
|
if (tp.importScriptsInWorker) return 'import-scripts';
|
||||||
|
break;
|
||||||
|
case 'commonjs':
|
||||||
|
if (tp.require) return 'require';
|
||||||
|
if (tp.nodeBuiltins) return 'async-node';
|
||||||
|
break;
|
||||||
|
case 'module':
|
||||||
|
if (tp.dynamicImportInWorker) return 'import';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (tp.require === null ||
|
||||||
|
tp.nodeBuiltins === null ||
|
||||||
|
tp.importScriptsInWorker === null) {
|
||||||
|
return 'universal';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
F(output, 'wasmLoading', () => {
|
||||||
|
if (tp) {
|
||||||
|
if (tp.fetchWasm) return 'fetch';
|
||||||
|
if (tp.nodeBuiltins) return output.module ? 'async-node-module' : 'async-node';
|
||||||
|
if (tp.nodeBuiltins === null || tp.fetchWasm === null) {
|
||||||
|
return 'universal';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
F(output, 'workerWasmLoading', () => output.wasmLoading);
|
||||||
|
F(output, 'globalObject', () => {
|
||||||
|
if (tp) {
|
||||||
|
if (tp.global) return 'global';
|
||||||
|
if (tp.globalThis) return 'globalThis';
|
||||||
|
}
|
||||||
|
return 'self';
|
||||||
|
});
|
||||||
|
D(output, 'importFunctionName', 'import');
|
||||||
|
F(output, 'clean', () => !!output.clean);
|
||||||
|
D(output, 'crossOriginLoading', false);
|
||||||
|
D(output, 'workerPublicPath', '');
|
||||||
|
F(output, 'sourceMapFilename', () => {
|
||||||
|
return '[file].map';
|
||||||
|
});
|
||||||
|
const { trustedTypes } = output;
|
||||||
|
if (trustedTypes) {
|
||||||
|
F(trustedTypes, 'policyName', () => output.uniqueName.replace(/[^a-zA-Z0-9\-#=_/@.%]+/g, '_') || 'webpack');
|
||||||
|
}
|
||||||
|
const forEachEntry = (fn) => {
|
||||||
|
for (const name of Object.keys(entry)) {
|
||||||
|
fn(entry[name]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
A(output, 'enabledLibraryTypes', () => {
|
||||||
|
const enabledLibraryTypes = [];
|
||||||
|
if (output.library) {
|
||||||
|
enabledLibraryTypes.push(output.library.type);
|
||||||
|
}
|
||||||
|
forEachEntry(desc => {
|
||||||
|
if (desc.library) {
|
||||||
|
enabledLibraryTypes.push(desc.library.type);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return enabledLibraryTypes;
|
||||||
|
});
|
||||||
|
A(output, 'enabledChunkLoadingTypes', () => {
|
||||||
|
const enabledChunkLoadingTypes = new Set();
|
||||||
|
if (output.chunkLoading) {
|
||||||
|
enabledChunkLoadingTypes.add(output.chunkLoading);
|
||||||
|
}
|
||||||
|
if (output.workerChunkLoading) {
|
||||||
|
enabledChunkLoadingTypes.add(output.workerChunkLoading);
|
||||||
|
}
|
||||||
|
forEachEntry(desc => {
|
||||||
|
if (desc.chunkLoading) {
|
||||||
|
enabledChunkLoadingTypes.add(desc.chunkLoading);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Array.from(enabledChunkLoadingTypes);
|
||||||
|
});
|
||||||
|
A(output, 'enabledWasmLoadingTypes', () => {
|
||||||
|
const enabledWasmLoadingTypes = new Set();
|
||||||
|
if (output.wasmLoading) {
|
||||||
|
enabledWasmLoadingTypes.add(output.wasmLoading);
|
||||||
|
}
|
||||||
|
if (output.workerWasmLoading) {
|
||||||
|
enabledWasmLoadingTypes.add(output.workerWasmLoading);
|
||||||
|
}
|
||||||
|
// forEachEntry(desc => {
|
||||||
|
// if (desc.wasmLoading) {
|
||||||
|
// enabledWasmLoadingTypes.add(desc.wasmLoading);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
return Array.from(enabledWasmLoadingTypes);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const applyExternalsPresetsDefaults = (externalsPresets, { targetProperties }) => {
|
||||||
|
D(externalsPresets, 'web', targetProperties && targetProperties.web);
|
||||||
|
D(externalsPresets, 'node', targetProperties && targetProperties.node);
|
||||||
|
D(externalsPresets, 'electron', targetProperties && targetProperties.electron);
|
||||||
|
D(externalsPresets, 'electronMain', targetProperties &&
|
||||||
|
targetProperties.electron &&
|
||||||
|
targetProperties.electronMain);
|
||||||
|
D(externalsPresets, 'electronPreload', targetProperties &&
|
||||||
|
targetProperties.electron &&
|
||||||
|
targetProperties.electronPreload);
|
||||||
|
D(externalsPresets, 'electronRenderer', targetProperties &&
|
||||||
|
targetProperties.electron &&
|
||||||
|
targetProperties.electronRenderer);
|
||||||
|
};
|
||||||
|
const applyNodeDefaults = (node, { targetProperties }) => {
|
||||||
|
if (node === false) return;
|
||||||
|
F(node, 'global', () => {
|
||||||
|
if (targetProperties && targetProperties.global) return false;
|
||||||
|
return 'warn';
|
||||||
|
});
|
||||||
|
F(node, '__dirname', () => {
|
||||||
|
if (targetProperties && targetProperties.node) return 'eval-only';
|
||||||
|
return 'warn-mock';
|
||||||
|
});
|
||||||
|
F(node, '__filename', () => {
|
||||||
|
if (targetProperties && targetProperties.node) return 'eval-only';
|
||||||
|
return 'warn-mock';
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const applyOptimizationDefaults = (optimization, { production, development }) => {
|
||||||
|
D(optimization, 'removeAvailableModules', true);
|
||||||
|
D(optimization, 'removeEmptyChunks', true);
|
||||||
|
F(optimization, 'moduleIds', () => {
|
||||||
|
if (production) return 'deterministic';
|
||||||
|
return 'named';
|
||||||
|
});
|
||||||
|
F(optimization, 'chunkIds', () => 'named');
|
||||||
|
F(optimization, 'sideEffects', () => (production ? true : 'flag'));
|
||||||
|
D(optimization, 'providedExports', true);
|
||||||
|
D(optimization, 'usedExports', production);
|
||||||
|
D(optimization, 'innerGraph', production);
|
||||||
|
D(optimization, 'runtimeChunk', false);
|
||||||
|
D(optimization, 'realContentHash', production);
|
||||||
|
D(optimization, 'minimize', production);
|
||||||
|
A(optimization, 'minimizer', () => [
|
||||||
|
// TODO: enable this when drop support for builtins options
|
||||||
|
// new SwcJsMinimizerPlugin(),
|
||||||
|
// new SwcCssMinimizerPlugin()
|
||||||
|
]);
|
||||||
|
F(optimization, 'nodeEnv', () => {
|
||||||
|
if (production) return 'production';
|
||||||
|
if (development) return 'development';
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
const { splitChunks } = optimization;
|
||||||
|
if (splitChunks) {
|
||||||
|
// A(splitChunks, "defaultSizeTypes", () =>
|
||||||
|
// css ? ["javascript", "css", "unknown"] : ["javascript", "unknown"]
|
||||||
|
// );
|
||||||
|
// D(splitChunks, "hidePathInfo", production);
|
||||||
|
D(splitChunks, 'chunks', 'async');
|
||||||
|
// D(splitChunks, "usedExports", optimization.usedExports === true);
|
||||||
|
D(splitChunks, 'minChunks', 1);
|
||||||
|
F(splitChunks, 'minSize', () => (production ? 20000 : 10000));
|
||||||
|
// F(splitChunks, "minRemainingSize", () => (development ? 0 : undefined));
|
||||||
|
// F(splitChunks, "enforceSizeThreshold", () => (production ? 50000 : 30000));
|
||||||
|
F(splitChunks, 'maxAsyncRequests', () => (production ? 30 : Infinity));
|
||||||
|
F(splitChunks, 'maxInitialRequests', () => (production ? 30 : Infinity));
|
||||||
|
// D(splitChunks, "automaticNameDelimiter", "-");
|
||||||
|
const { cacheGroups } = splitChunks;
|
||||||
|
if (cacheGroups) {
|
||||||
|
F(cacheGroups, 'default', () => ({
|
||||||
|
idHint: '',
|
||||||
|
reuseExistingChunk: true,
|
||||||
|
minChunks: 2,
|
||||||
|
priority: -20,
|
||||||
|
}));
|
||||||
|
F(cacheGroups, 'defaultVendors', () => ({
|
||||||
|
idHint: 'vendors',
|
||||||
|
reuseExistingChunk: true,
|
||||||
|
test: /[\\/]node_modules[\\/]/i,
|
||||||
|
priority: -10,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const getResolveLoaderDefaults = () => {
|
||||||
|
const resolveOptions = {
|
||||||
|
conditionNames: ['loader', 'require', 'node'],
|
||||||
|
exportsFields: ['exports'],
|
||||||
|
mainFields: ['loader', 'main'],
|
||||||
|
extensions: ['.js'],
|
||||||
|
mainFiles: ['index'],
|
||||||
|
};
|
||||||
|
return resolveOptions;
|
||||||
|
};
|
||||||
|
const getResolveDefaults = ({ targetProperties, mode }) => {
|
||||||
|
const conditions = ['webpack'];
|
||||||
|
conditions.push(mode === 'development' ? 'development' : 'production');
|
||||||
|
if (targetProperties) {
|
||||||
|
if (targetProperties.webworker) conditions.push('worker');
|
||||||
|
if (targetProperties.node) conditions.push('node');
|
||||||
|
if (targetProperties.web) conditions.push('browser');
|
||||||
|
if (targetProperties.electron) conditions.push('electron');
|
||||||
|
if (targetProperties.nwjs) conditions.push('nwjs');
|
||||||
|
}
|
||||||
|
const jsExtensions = ['.js', '.json', '.wasm', '.tsx', '.ts', '.jsx'];
|
||||||
|
const tp = targetProperties;
|
||||||
|
const browserField = tp && tp.web && (!tp.node || (tp.electron && tp.electronRenderer));
|
||||||
|
const cjsDeps = () => ({
|
||||||
|
browserField,
|
||||||
|
mainFields: browserField ? ['browser', 'module', '...'] : ['module', '...'],
|
||||||
|
conditionNames: ['require', 'module', '...'],
|
||||||
|
extensions: [...jsExtensions],
|
||||||
|
});
|
||||||
|
const esmDeps = () => ({
|
||||||
|
browserField,
|
||||||
|
mainFields: browserField ? ['browser', 'module', '...'] : ['module', '...'],
|
||||||
|
conditionNames: ['import', 'module', '...'],
|
||||||
|
extensions: [...jsExtensions],
|
||||||
|
});
|
||||||
|
const resolveOptions = {
|
||||||
|
modules: ['node_modules'],
|
||||||
|
conditionNames: conditions,
|
||||||
|
mainFiles: ['index'],
|
||||||
|
extensions: [],
|
||||||
|
browserField,
|
||||||
|
mainFields: ['main'].filter(Boolean),
|
||||||
|
exportsFields: ['exports'],
|
||||||
|
byDependency: {
|
||||||
|
wasm: esmDeps(),
|
||||||
|
esm: esmDeps(),
|
||||||
|
url: {
|
||||||
|
preferRelative: true,
|
||||||
|
},
|
||||||
|
worker: {
|
||||||
|
...esmDeps(),
|
||||||
|
preferRelative: true,
|
||||||
|
},
|
||||||
|
commonjs: cjsDeps(),
|
||||||
|
// amd: cjsDeps(),
|
||||||
|
// for backward-compat: loadModule
|
||||||
|
// loader: cjsDeps(),
|
||||||
|
// for backward-compat: Custom Dependency and getResolve without dependencyType
|
||||||
|
unknown: cjsDeps(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
return resolveOptions;
|
||||||
|
};
|
||||||
|
const D = (obj, prop, value) => {
|
||||||
|
if (obj[prop] === undefined) {
|
||||||
|
obj[prop] = value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const F = (obj, prop, factory) => {
|
||||||
|
if (obj[prop] === undefined) {
|
||||||
|
obj[prop] = factory();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const A = (obj, prop, factory) => {
|
||||||
|
const value = obj[prop];
|
||||||
|
if (value === undefined) {
|
||||||
|
obj[prop] = factory();
|
||||||
|
} else if (Array.isArray(value)) {
|
||||||
|
let newArray;
|
||||||
|
for (let i = 0; i < value.length; i++) {
|
||||||
|
const item = value[i];
|
||||||
|
if (item === '...') {
|
||||||
|
if (newArray === undefined) {
|
||||||
|
newArray = value.slice(0, i);
|
||||||
|
// @ts-expect-error
|
||||||
|
obj[prop] = newArray;
|
||||||
|
}
|
||||||
|
const items = factory();
|
||||||
|
if (items !== undefined) {
|
||||||
|
for (const item of items) {
|
||||||
|
newArray.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (newArray !== undefined) {
|
||||||
|
newArray.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,705 @@
|
||||||
|
'use strict';
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
exports.rspackOptions = void 0;
|
||||||
|
const zod_1 = require('zod');
|
||||||
|
const util_1 = require('../util');
|
||||||
|
// #region Name
|
||||||
|
const name = zod_1.z.string();
|
||||||
|
// #endregion
|
||||||
|
// #region Dependencies
|
||||||
|
const dependencies = zod_1.z.array(name);
|
||||||
|
// #endregion
|
||||||
|
// #region Context
|
||||||
|
const context = zod_1.z.string();
|
||||||
|
// #endregion
|
||||||
|
// #region Mode
|
||||||
|
const mode = zod_1.z.enum(['development', 'production', 'none']);
|
||||||
|
// #endregion
|
||||||
|
// #region Entry
|
||||||
|
const rawPublicPath = zod_1.z.string();
|
||||||
|
const publicPath = zod_1.z.literal('auto').or(rawPublicPath);
|
||||||
|
const baseUri = zod_1.z.string();
|
||||||
|
const chunkLoadingType = zod_1.z
|
||||||
|
.enum(['jsonp', 'import-scripts', 'require', 'async-node', 'import'])
|
||||||
|
.or(zod_1.z.string());
|
||||||
|
const chunkLoading = zod_1.z.literal(false).or(chunkLoadingType);
|
||||||
|
const asyncChunks = zod_1.z.boolean();
|
||||||
|
const wasmLoadingType = zod_1.z
|
||||||
|
.enum(['fetch-streaming', 'fetch', 'async-node'])
|
||||||
|
.or(zod_1.z.string());
|
||||||
|
const wasmLoading = zod_1.z.literal(false).or(wasmLoadingType);
|
||||||
|
const libraryCustomUmdObject = zod_1.z.strictObject({
|
||||||
|
amd: zod_1.z.string().optional(),
|
||||||
|
commonjs: zod_1.z.string().optional(),
|
||||||
|
root: zod_1.z.string().or(zod_1.z.array(zod_1.z.string())).optional(),
|
||||||
|
});
|
||||||
|
const libraryName = zod_1.z
|
||||||
|
.string()
|
||||||
|
.or(zod_1.z.array(zod_1.z.string()))
|
||||||
|
.or(libraryCustomUmdObject);
|
||||||
|
const libraryCustomUmdCommentObject = zod_1.z.strictObject({
|
||||||
|
amd: zod_1.z.string().optional(),
|
||||||
|
commonjs: zod_1.z.string().optional(),
|
||||||
|
commonjs2: zod_1.z.string().optional(),
|
||||||
|
root: zod_1.z.string().optional(),
|
||||||
|
});
|
||||||
|
const amdContainer = zod_1.z.string();
|
||||||
|
const auxiliaryComment = zod_1.z.string().or(libraryCustomUmdCommentObject);
|
||||||
|
const libraryExport = zod_1.z.string().or(zod_1.z.array(zod_1.z.string()));
|
||||||
|
const libraryType = zod_1.z
|
||||||
|
.enum([
|
||||||
|
'var',
|
||||||
|
'module',
|
||||||
|
'assign',
|
||||||
|
'assign-properties',
|
||||||
|
'this',
|
||||||
|
'window',
|
||||||
|
'self',
|
||||||
|
'global',
|
||||||
|
'commonjs',
|
||||||
|
'commonjs2',
|
||||||
|
'commonjs-module',
|
||||||
|
'commonjs-static',
|
||||||
|
'amd',
|
||||||
|
'amd-require',
|
||||||
|
'umd',
|
||||||
|
'umd2',
|
||||||
|
'jsonp',
|
||||||
|
'system',
|
||||||
|
])
|
||||||
|
.or(zod_1.z.string());
|
||||||
|
const umdNamedDefine = zod_1.z.boolean();
|
||||||
|
const libraryOptions = zod_1.z.strictObject({
|
||||||
|
amdContainer: amdContainer.optional(),
|
||||||
|
auxiliaryComment: auxiliaryComment.optional(),
|
||||||
|
export: libraryExport.optional(),
|
||||||
|
name: libraryName.optional(),
|
||||||
|
type: libraryType,
|
||||||
|
umdNamedDefine: umdNamedDefine.optional(),
|
||||||
|
});
|
||||||
|
const filenameTemplate = zod_1.z.string();
|
||||||
|
const filename = filenameTemplate;
|
||||||
|
const entryFilename = filenameTemplate;
|
||||||
|
const entryRuntime = zod_1.z.literal(false).or(zod_1.z.string());
|
||||||
|
const entryItem = zod_1.z.string().or(zod_1.z.array(zod_1.z.string()));
|
||||||
|
const entryDescription = zod_1.z.strictObject({
|
||||||
|
import: entryItem,
|
||||||
|
runtime: entryRuntime.optional(),
|
||||||
|
publicPath: publicPath.optional(),
|
||||||
|
baseUri: baseUri.optional(),
|
||||||
|
chunkLoading: chunkLoading.optional(),
|
||||||
|
asyncChunks: asyncChunks.optional(),
|
||||||
|
wasmLoading: wasmLoading.optional(),
|
||||||
|
filename: entryFilename.optional(),
|
||||||
|
library: libraryOptions.optional(),
|
||||||
|
});
|
||||||
|
const entryUnnamed = entryItem;
|
||||||
|
const entryObject = zod_1.z.record(entryItem.or(entryDescription));
|
||||||
|
const entryStatic = entryObject.or(entryUnnamed);
|
||||||
|
const entry = entryStatic;
|
||||||
|
// #endregion
|
||||||
|
// #region Output
|
||||||
|
const path = zod_1.z.string();
|
||||||
|
const assetModuleFilename = zod_1.z.string();
|
||||||
|
const webassemblyModuleFilename = zod_1.z.string();
|
||||||
|
const chunkFilename = filenameTemplate;
|
||||||
|
const crossOriginLoading = zod_1.z
|
||||||
|
.literal(false)
|
||||||
|
.or(zod_1.z.enum(['anonymous', 'use-credentials']));
|
||||||
|
const cssFilename = filenameTemplate;
|
||||||
|
const cssChunkFilename = filenameTemplate;
|
||||||
|
const hotUpdateChunkFilename = filenameTemplate;
|
||||||
|
const hotUpdateMainFilename = filenameTemplate;
|
||||||
|
const hotUpdateGlobal = zod_1.z.string();
|
||||||
|
const uniqueName = zod_1.z.string();
|
||||||
|
const chunkLoadingGlobal = zod_1.z.string();
|
||||||
|
const enabledLibraryTypes = zod_1.z.array(libraryType);
|
||||||
|
const clean = zod_1.z.boolean();
|
||||||
|
const outputModule = zod_1.z.boolean();
|
||||||
|
const strictModuleErrorHandling = zod_1.z.boolean();
|
||||||
|
const globalObject = zod_1.z.string();
|
||||||
|
const enabledWasmLoadingTypes = zod_1.z.array(wasmLoadingType);
|
||||||
|
const importFunctionName = zod_1.z.string();
|
||||||
|
const iife = zod_1.z.boolean();
|
||||||
|
const enabledChunkLoadingTypes = zod_1.z.array(chunkLoadingType);
|
||||||
|
const chunkFormat = zod_1.z.literal(false).or(zod_1.z.string());
|
||||||
|
const workerPublicPath = zod_1.z.string();
|
||||||
|
const trustedTypes = zod_1.z.strictObject({
|
||||||
|
policyName: zod_1.z.string().optional(),
|
||||||
|
});
|
||||||
|
const hashDigest = zod_1.z.string();
|
||||||
|
const hashDigestLength = zod_1.z.number();
|
||||||
|
const hashFunction = zod_1.z.string();
|
||||||
|
const hashSalt = zod_1.z.string();
|
||||||
|
const sourceMapFilename = zod_1.z.string();
|
||||||
|
const output = zod_1.z.strictObject({
|
||||||
|
path: path.optional(),
|
||||||
|
clean: clean.optional(),
|
||||||
|
publicPath: publicPath.optional(),
|
||||||
|
filename: filename.optional(),
|
||||||
|
chunkFilename: chunkFilename.optional(),
|
||||||
|
crossOriginLoading: crossOriginLoading.optional(),
|
||||||
|
cssFilename: cssFilename.optional(),
|
||||||
|
cssChunkFilename: cssChunkFilename.optional(),
|
||||||
|
hotUpdateMainFilename: hotUpdateMainFilename.optional(),
|
||||||
|
hotUpdateChunkFilename: hotUpdateChunkFilename.optional(),
|
||||||
|
hotUpdateGlobal: hotUpdateGlobal.optional(),
|
||||||
|
assetModuleFilename: assetModuleFilename.optional(),
|
||||||
|
uniqueName: uniqueName.optional(),
|
||||||
|
chunkLoadingGlobal: chunkLoadingGlobal.optional(),
|
||||||
|
enabledLibraryTypes: enabledLibraryTypes.optional(),
|
||||||
|
library: libraryName.or(libraryOptions).optional(),
|
||||||
|
libraryExport: libraryExport.optional(),
|
||||||
|
libraryTarget: libraryType.optional(),
|
||||||
|
umdNamedDefine: umdNamedDefine.optional(),
|
||||||
|
amdContainer: amdContainer.optional(),
|
||||||
|
auxiliaryComment: auxiliaryComment.optional(),
|
||||||
|
module: outputModule.optional(),
|
||||||
|
strictModuleErrorHandling: strictModuleErrorHandling.optional(),
|
||||||
|
globalObject: globalObject.optional(),
|
||||||
|
importFunctionName: importFunctionName.optional(),
|
||||||
|
iife: iife.optional(),
|
||||||
|
wasmLoading: wasmLoading.optional(),
|
||||||
|
enabledWasmLoadingTypes: enabledWasmLoadingTypes.optional(),
|
||||||
|
webassemblyModuleFilename: webassemblyModuleFilename.optional(),
|
||||||
|
chunkFormat: chunkFormat.optional(),
|
||||||
|
chunkLoading: chunkLoading.optional(),
|
||||||
|
enabledChunkLoadingTypes: enabledChunkLoadingTypes.optional(),
|
||||||
|
trustedTypes: zod_1.z.literal(true).or(zod_1.z.string()).or(trustedTypes).optional(),
|
||||||
|
sourceMapFilename: sourceMapFilename.optional(),
|
||||||
|
hashDigest: hashDigest.optional(),
|
||||||
|
hashDigestLength: hashDigestLength.optional(),
|
||||||
|
hashFunction: hashFunction.optional(),
|
||||||
|
hashSalt: hashSalt.optional(),
|
||||||
|
asyncChunks: asyncChunks.optional(),
|
||||||
|
workerChunkLoading: chunkLoading.optional(),
|
||||||
|
workerWasmLoading: wasmLoading.optional(),
|
||||||
|
workerPublicPath: workerPublicPath.optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region Resolve
|
||||||
|
const resolveAlias = zod_1.z.record(zod_1.z
|
||||||
|
.literal(false)
|
||||||
|
.or(zod_1.z.string())
|
||||||
|
.or(zod_1.z.array(zod_1.z.string().or(zod_1.z.literal(false)))));
|
||||||
|
const resolveTsconfig = zod_1.z.strictObject({
|
||||||
|
configFile: zod_1.z.string(),
|
||||||
|
references: zod_1.z.array(zod_1.z.string()).or(zod_1.z.literal('auto')).optional(),
|
||||||
|
});
|
||||||
|
const baseResolveOptions = zod_1.z.strictObject({
|
||||||
|
alias: resolveAlias.optional(),
|
||||||
|
/**
|
||||||
|
* This is `aliasField: ["browser"]` in webpack, because no one
|
||||||
|
* uses aliasField other than "browser". ---@bvanjoi
|
||||||
|
*/
|
||||||
|
browserField: zod_1.z.boolean().optional(),
|
||||||
|
conditionNames: zod_1.z.array(zod_1.z.string()).optional(),
|
||||||
|
extensions: zod_1.z.array(zod_1.z.string()).optional(),
|
||||||
|
fallback: resolveAlias.optional(),
|
||||||
|
mainFields: zod_1.z.array(zod_1.z.string()).optional(),
|
||||||
|
mainFiles: zod_1.z.array(zod_1.z.string()).optional(),
|
||||||
|
modules: zod_1.z.array(zod_1.z.string()).optional(),
|
||||||
|
preferRelative: zod_1.z.boolean().optional(),
|
||||||
|
tsConfigPath: zod_1.z.string().optional(),
|
||||||
|
tsConfig: resolveTsconfig.optional(),
|
||||||
|
fullySpecified: zod_1.z.boolean().optional(),
|
||||||
|
exportsFields: zod_1.z.array(zod_1.z.string()).optional(),
|
||||||
|
extensionAlias: zod_1.z.record(zod_1.z.string().or(zod_1.z.array(zod_1.z.string()))).optional(),
|
||||||
|
});
|
||||||
|
const resolveOptions = baseResolveOptions.extend({
|
||||||
|
byDependency: zod_1.z.lazy(() => zod_1.z.record(resolveOptions)).optional(),
|
||||||
|
});
|
||||||
|
const resolve = resolveOptions;
|
||||||
|
// #endregion
|
||||||
|
// #region Module
|
||||||
|
const baseRuleSetCondition = zod_1.z
|
||||||
|
.instanceof(RegExp)
|
||||||
|
.or(zod_1.z.string())
|
||||||
|
.or(zod_1.z.function().args(zod_1.z.string()).returns(zod_1.z.boolean()));
|
||||||
|
const ruleSetCondition = baseRuleSetCondition
|
||||||
|
.or(zod_1.z.lazy(() => ruleSetConditions))
|
||||||
|
.or(zod_1.z.lazy(() => ruleSetLogicalConditions));
|
||||||
|
const ruleSetConditions = zod_1.z.lazy(() => zod_1.z.array(ruleSetCondition));
|
||||||
|
const ruleSetLogicalConditions = zod_1.z.strictObject({
|
||||||
|
and: ruleSetConditions.optional(),
|
||||||
|
or: ruleSetConditions.optional(),
|
||||||
|
not: ruleSetConditions.optional(),
|
||||||
|
});
|
||||||
|
const ruleSetLoader = zod_1.z.string();
|
||||||
|
const ruleSetLoaderOptions = zod_1.z.string().or(zod_1.z.record(zod_1.z.any()));
|
||||||
|
const ruleSetLoaderWithOptions = zod_1.z.strictObject({
|
||||||
|
ident: zod_1.z.string().optional(),
|
||||||
|
loader: ruleSetLoader,
|
||||||
|
options: ruleSetLoaderOptions.optional(),
|
||||||
|
});
|
||||||
|
const ruleSetUseItem = ruleSetLoader.or(ruleSetLoaderWithOptions);
|
||||||
|
const ruleSetUse = ruleSetUseItem
|
||||||
|
.or(ruleSetUseItem.array())
|
||||||
|
.or(zod_1.z.function().args(zod_1.z.custom()).returns(ruleSetUseItem.array()));
|
||||||
|
const baseRuleSetRule = zod_1.z.strictObject({
|
||||||
|
test: ruleSetCondition.optional(),
|
||||||
|
exclude: ruleSetCondition.optional(),
|
||||||
|
include: ruleSetCondition.optional(),
|
||||||
|
issuer: ruleSetCondition.optional(),
|
||||||
|
dependency: ruleSetCondition.optional(),
|
||||||
|
resource: ruleSetCondition.optional(),
|
||||||
|
resourceFragment: ruleSetCondition.optional(),
|
||||||
|
resourceQuery: ruleSetCondition.optional(),
|
||||||
|
scheme: ruleSetCondition.optional(),
|
||||||
|
mimetype: ruleSetCondition.optional(),
|
||||||
|
descriptionData: zod_1.z.record(ruleSetCondition).optional(),
|
||||||
|
type: zod_1.z.string().optional(),
|
||||||
|
loader: ruleSetLoader.optional(),
|
||||||
|
options: ruleSetLoaderOptions.optional(),
|
||||||
|
use: ruleSetUse.optional(),
|
||||||
|
parser: zod_1.z.record(zod_1.z.any()).optional(),
|
||||||
|
generator: zod_1.z.record(zod_1.z.any()).optional(),
|
||||||
|
resolve: resolveOptions.optional(),
|
||||||
|
sideEffects: zod_1.z.boolean().optional(),
|
||||||
|
enforce: zod_1.z.literal('pre').or(zod_1.z.literal('post')).optional(),
|
||||||
|
});
|
||||||
|
const ruleSetRule = baseRuleSetRule.extend({
|
||||||
|
oneOf: zod_1.z.lazy(() => ruleSetRule.array()).optional(),
|
||||||
|
rules: zod_1.z.lazy(() => ruleSetRule.array()).optional(),
|
||||||
|
});
|
||||||
|
const ruleSetRules = zod_1.z.array(zod_1.z.literal('...').or(ruleSetRule));
|
||||||
|
const assetParserDataUrlOptions = zod_1.z.strictObject({
|
||||||
|
maxSize: zod_1.z.number().optional(),
|
||||||
|
});
|
||||||
|
const assetParserDataUrl = assetParserDataUrlOptions;
|
||||||
|
const assetParserOptions = zod_1.z.strictObject({
|
||||||
|
dataUrlCondition: assetParserDataUrl.optional(),
|
||||||
|
});
|
||||||
|
// TODO: "weak", "lazy-once"
|
||||||
|
const dynamicImportMode = zod_1.z.enum(['eager', 'lazy']);
|
||||||
|
const javascriptParserOptions = zod_1.z.strictObject({
|
||||||
|
dynamicImportMode: dynamicImportMode.optional(),
|
||||||
|
});
|
||||||
|
const parserOptionsByModuleTypeKnown = zod_1.z.strictObject({
|
||||||
|
asset: assetParserOptions.optional(),
|
||||||
|
javascript: javascriptParserOptions.optional(),
|
||||||
|
});
|
||||||
|
const parserOptionsByModuleTypeUnknown = zod_1.z.record(zod_1.z.record(zod_1.z.any()));
|
||||||
|
const parserOptionsByModuleType = parserOptionsByModuleTypeKnown.or(parserOptionsByModuleTypeUnknown);
|
||||||
|
const assetGeneratorDataUrlOptions = zod_1.z.strictObject({
|
||||||
|
encoding: zod_1.z.literal(false).or(zod_1.z.literal('base64')).optional(),
|
||||||
|
mimetype: zod_1.z.string().optional(),
|
||||||
|
});
|
||||||
|
const assetGeneratorDataUrl = assetGeneratorDataUrlOptions;
|
||||||
|
const assetInlineGeneratorOptions = zod_1.z.strictObject({
|
||||||
|
dataUrl: assetGeneratorDataUrl.optional(),
|
||||||
|
});
|
||||||
|
const assetResourceGeneratorOptions = zod_1.z.strictObject({
|
||||||
|
filename: filenameTemplate.optional(),
|
||||||
|
publicPath: publicPath.optional(),
|
||||||
|
});
|
||||||
|
const assetGeneratorOptions = assetInlineGeneratorOptions.merge(assetResourceGeneratorOptions);
|
||||||
|
const generatorOptionsByModuleTypeKnown = zod_1.z.strictObject({
|
||||||
|
asset: assetGeneratorOptions.optional(),
|
||||||
|
'asset/inline': assetInlineGeneratorOptions.optional(),
|
||||||
|
'asset/resource': assetResourceGeneratorOptions.optional(),
|
||||||
|
});
|
||||||
|
const generatorOptionsByModuleTypeUnknown = zod_1.z.record(zod_1.z.record(zod_1.z.any()));
|
||||||
|
const generatorOptionsByModuleType = generatorOptionsByModuleTypeKnown.or(generatorOptionsByModuleTypeUnknown);
|
||||||
|
const moduleOptions = zod_1.z.strictObject({
|
||||||
|
defaultRules: ruleSetRules.optional(),
|
||||||
|
rules: ruleSetRules.optional(),
|
||||||
|
parser: parserOptionsByModuleType.optional(),
|
||||||
|
generator: generatorOptionsByModuleType.optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region Target
|
||||||
|
const allowTarget = zod_1.z
|
||||||
|
.enum([
|
||||||
|
'web',
|
||||||
|
'webworker',
|
||||||
|
'es3',
|
||||||
|
'es5',
|
||||||
|
'es2015',
|
||||||
|
'es2016',
|
||||||
|
'es2017',
|
||||||
|
'es2018',
|
||||||
|
'es2019',
|
||||||
|
'es2020',
|
||||||
|
'es2021',
|
||||||
|
'es2022',
|
||||||
|
'browserslist',
|
||||||
|
])
|
||||||
|
.or(zod_1.z.literal('node'))
|
||||||
|
.or(zod_1.z.literal('async-node'))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^node\d+$/.test(value)))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^async-node\d+$/.test(value)))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^node\d+\.\d+$/.test(value)))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^async-node\d+\.\d+$/.test(value)))
|
||||||
|
.or(zod_1.z.literal('electron-main'))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^electron\d+-main$/.test(value)))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^electron\d+\.\d+-main$/.test(value)))
|
||||||
|
.or(zod_1.z.literal('electron-renderer'))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^electron\d+-renderer$/.test(value)))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^electron\d+\.\d+-renderer$/.test(value)))
|
||||||
|
.or(zod_1.z.literal('electron-preload'))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^electron\d+-preload$/.test(value)))
|
||||||
|
.or(zod_1.z.custom(value => typeof value === 'string' && /^electron\d+\.\d+-preload$/.test(value)));
|
||||||
|
const target = zod_1.z.literal(false).or(allowTarget).or(allowTarget.array());
|
||||||
|
// #endregion
|
||||||
|
// #region ExternalsType
|
||||||
|
const externalsType = zod_1.z.enum([
|
||||||
|
'var',
|
||||||
|
'module',
|
||||||
|
'assign',
|
||||||
|
'this',
|
||||||
|
'window',
|
||||||
|
'self',
|
||||||
|
'global',
|
||||||
|
'commonjs',
|
||||||
|
'commonjs2',
|
||||||
|
'commonjs-module',
|
||||||
|
'commonjs-static',
|
||||||
|
'amd',
|
||||||
|
'amd-require',
|
||||||
|
'umd',
|
||||||
|
'umd2',
|
||||||
|
'jsonp',
|
||||||
|
'system',
|
||||||
|
'promise',
|
||||||
|
'import',
|
||||||
|
'script',
|
||||||
|
'node-commonjs',
|
||||||
|
]);
|
||||||
|
// #endregion
|
||||||
|
// #region Externals
|
||||||
|
const externalItemValue = zod_1.z
|
||||||
|
.string()
|
||||||
|
.or(zod_1.z.boolean())
|
||||||
|
.or(zod_1.z.string().array().min(1))
|
||||||
|
.or(zod_1.z.record(zod_1.z.string().or(zod_1.z.string().array())));
|
||||||
|
const externalItemObjectUnknown = zod_1.z.record(externalItemValue);
|
||||||
|
const externalItemFunctionData = zod_1.z.strictObject({
|
||||||
|
context: zod_1.z.string().optional(),
|
||||||
|
dependencyType: zod_1.z.string().optional(),
|
||||||
|
request: zod_1.z.string().optional(),
|
||||||
|
});
|
||||||
|
const externalItem = zod_1.z
|
||||||
|
.string()
|
||||||
|
.or(zod_1.z.instanceof(RegExp))
|
||||||
|
.or(externalItemObjectUnknown)
|
||||||
|
.or(zod_1.z
|
||||||
|
.function()
|
||||||
|
.args(externalItemFunctionData, zod_1.z
|
||||||
|
.function()
|
||||||
|
.args(zod_1.z.instanceof(Error).optional(), externalItemValue.optional(), externalsType.optional())
|
||||||
|
.returns(zod_1.z.void())))
|
||||||
|
.or(zod_1.z
|
||||||
|
.function()
|
||||||
|
.args(externalItemFunctionData)
|
||||||
|
.returns(zod_1.z.promise(externalItemValue)));
|
||||||
|
const externals = externalItem.array().or(externalItem);
|
||||||
|
// #endregion
|
||||||
|
// #region ExternalsPresets
|
||||||
|
const externalsPresets = zod_1.z.strictObject({
|
||||||
|
node: zod_1.z.boolean().optional(),
|
||||||
|
web: zod_1.z.boolean().optional(),
|
||||||
|
webAsync: zod_1.z.boolean().optional(),
|
||||||
|
electron: zod_1.z.boolean().optional(),
|
||||||
|
electronMain: zod_1.z.boolean().optional(),
|
||||||
|
electronPreload: zod_1.z.boolean().optional(),
|
||||||
|
electronRenderer: zod_1.z.boolean().optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region InfrastructureLogging
|
||||||
|
const filterItemTypes = zod_1.z
|
||||||
|
.instanceof(RegExp)
|
||||||
|
.or(zod_1.z.string())
|
||||||
|
.or(zod_1.z.function().args(zod_1.z.string()).returns(zod_1.z.boolean()));
|
||||||
|
const filterTypes = filterItemTypes.array().or(filterItemTypes);
|
||||||
|
const infrastructureLogging = zod_1.z.strictObject({
|
||||||
|
appendOnly: zod_1.z.boolean().optional(),
|
||||||
|
colors: zod_1.z.boolean().optional(),
|
||||||
|
console: zod_1.z.custom().optional(),
|
||||||
|
debug: zod_1.z.boolean().or(filterTypes).optional(),
|
||||||
|
level: zod_1.z.enum(['none', 'error', 'warn', 'info', 'log', 'verbose']).optional(),
|
||||||
|
stream: zod_1.z.custom().optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region DevTool
|
||||||
|
const devTool = zod_1.z
|
||||||
|
.literal(false)
|
||||||
|
.or(zod_1.z.enum([
|
||||||
|
'cheap-source-map',
|
||||||
|
'cheap-module-source-map',
|
||||||
|
'source-map',
|
||||||
|
'inline-cheap-source-map',
|
||||||
|
'inline-cheap-module-source-map',
|
||||||
|
'inline-source-map',
|
||||||
|
'inline-nosources-cheap-module-source-map',
|
||||||
|
'inline-nosources-source-map',
|
||||||
|
'nosources-cheap-source-map',
|
||||||
|
'nosources-cheap-module-source-map',
|
||||||
|
'nosources-source-map',
|
||||||
|
'hidden-nosources-cheap-source-map',
|
||||||
|
'hidden-nosources-cheap-module-source-map',
|
||||||
|
'hidden-nosources-source-map',
|
||||||
|
'hidden-cheap-source-map',
|
||||||
|
'hidden-cheap-module-source-map',
|
||||||
|
'hidden-source-map',
|
||||||
|
'eval-cheap-source-map',
|
||||||
|
'eval-cheap-module-source-map',
|
||||||
|
'eval-source-map',
|
||||||
|
'eval-nosources-cheap-source-map',
|
||||||
|
'eval-nosources-cheap-module-source-map',
|
||||||
|
'eval-nosources-source-map',
|
||||||
|
]));
|
||||||
|
// #endregion
|
||||||
|
// #region Node
|
||||||
|
const nodeOptions = zod_1.z.strictObject({
|
||||||
|
__dirname: zod_1.z
|
||||||
|
.boolean()
|
||||||
|
.or(zod_1.z.enum(['warn-mock', 'mock', 'eval-only']))
|
||||||
|
.optional(),
|
||||||
|
__filename: zod_1.z
|
||||||
|
.boolean()
|
||||||
|
.or(zod_1.z.enum(['warn-mock', 'mock', 'eval-only']))
|
||||||
|
.optional(),
|
||||||
|
global: zod_1.z.boolean().or(zod_1.z.literal('warn')).optional(),
|
||||||
|
});
|
||||||
|
const node = zod_1.z.literal(false).or(nodeOptions);
|
||||||
|
// #endregion
|
||||||
|
// #region Snapshot
|
||||||
|
const snapshotOptions = zod_1.z.strictObject({
|
||||||
|
module: zod_1.z
|
||||||
|
.strictObject({
|
||||||
|
hash: zod_1.z.boolean().optional(),
|
||||||
|
timestamp: zod_1.z.boolean().optional(),
|
||||||
|
})
|
||||||
|
.optional(),
|
||||||
|
resolve: zod_1.z
|
||||||
|
.strictObject({
|
||||||
|
hash: zod_1.z.boolean().optional(),
|
||||||
|
timestamp: zod_1.z.boolean().optional(),
|
||||||
|
})
|
||||||
|
.optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region Cache
|
||||||
|
const cacheOptions = zod_1.z.boolean();
|
||||||
|
// #endregion
|
||||||
|
// #region Stats
|
||||||
|
const statsOptions = zod_1.z.strictObject({
|
||||||
|
all: zod_1.z.boolean().optional(),
|
||||||
|
preset: zod_1.z
|
||||||
|
.enum(['normal', 'none', 'verbose', 'errors-only', 'errors-warnings'])
|
||||||
|
.optional(),
|
||||||
|
assets: zod_1.z.boolean().optional(),
|
||||||
|
chunks: zod_1.z.boolean().optional(),
|
||||||
|
modules: zod_1.z.boolean().optional(),
|
||||||
|
entrypoints: zod_1.z.boolean().optional(),
|
||||||
|
chunkGroups: zod_1.z.boolean().optional(),
|
||||||
|
warnings: zod_1.z.boolean().optional(),
|
||||||
|
warningsCount: zod_1.z.boolean().optional(),
|
||||||
|
errors: zod_1.z.boolean().optional(),
|
||||||
|
errorsCount: zod_1.z.boolean().optional(),
|
||||||
|
colors: zod_1.z.boolean().optional(),
|
||||||
|
hash: zod_1.z.boolean().optional(),
|
||||||
|
version: zod_1.z.boolean().optional(),
|
||||||
|
reasons: zod_1.z.boolean().optional(),
|
||||||
|
publicPath: zod_1.z.boolean().optional(),
|
||||||
|
outputPath: zod_1.z.boolean().optional(),
|
||||||
|
chunkModules: zod_1.z.boolean().optional(),
|
||||||
|
chunkRelations: zod_1.z.boolean().optional(),
|
||||||
|
ids: zod_1.z.boolean().optional(),
|
||||||
|
timings: zod_1.z.boolean().optional(),
|
||||||
|
builtAt: zod_1.z.boolean().optional(),
|
||||||
|
moduleAssets: zod_1.z.boolean().optional(),
|
||||||
|
modulesSpace: zod_1.z.number().optional(),
|
||||||
|
nestedModules: zod_1.z.boolean().optional(),
|
||||||
|
source: zod_1.z.boolean().optional(),
|
||||||
|
logging: zod_1.z
|
||||||
|
.enum(['none', 'error', 'warn', 'info', 'log', 'verbose'])
|
||||||
|
.or(zod_1.z.boolean())
|
||||||
|
.optional(),
|
||||||
|
loggingDebug: zod_1.z.boolean().or(filterTypes).optional(),
|
||||||
|
loggingTrace: zod_1.z.boolean().optional(),
|
||||||
|
runtimeModules: zod_1.z.boolean().optional(),
|
||||||
|
});
|
||||||
|
const statsValue = zod_1.z
|
||||||
|
.enum(['none', 'errors-only', 'errors-warnings', 'normal', 'verbose'])
|
||||||
|
.or(zod_1.z.boolean())
|
||||||
|
.or(statsOptions);
|
||||||
|
const plugin = zod_1.z.union([
|
||||||
|
zod_1.z.custom(),
|
||||||
|
zod_1.z.custom(),
|
||||||
|
]);
|
||||||
|
const plugins = plugin.array();
|
||||||
|
// #endregion
|
||||||
|
// #region Optimization
|
||||||
|
const optimizationRuntimeChunk = zod_1.z
|
||||||
|
.enum(['single', 'multiple'])
|
||||||
|
.or(zod_1.z.boolean())
|
||||||
|
.or(zod_1.z.strictObject({
|
||||||
|
name: zod_1.z
|
||||||
|
.string()
|
||||||
|
.or(zod_1.z.function().returns(zod_1.z.string().or(zod_1.z.undefined())))
|
||||||
|
.optional(),
|
||||||
|
}));
|
||||||
|
const optimizationSplitChunksName = zod_1.z.string().or(zod_1.z.literal(false));
|
||||||
|
const optimizationSplitChunksChunks = zod_1.z
|
||||||
|
.enum(['initial', 'async', 'all'])
|
||||||
|
.or(zod_1.z.instanceof(RegExp));
|
||||||
|
const optimizationSplitChunksSizes = zod_1.z.number();
|
||||||
|
const sharedOptimizationSplitChunksCacheGroup = {
|
||||||
|
chunks: optimizationSplitChunksChunks.optional(),
|
||||||
|
minChunks: zod_1.z.number().optional(),
|
||||||
|
name: optimizationSplitChunksName.optional(),
|
||||||
|
minSize: optimizationSplitChunksSizes.optional(),
|
||||||
|
maxSize: optimizationSplitChunksSizes.optional(),
|
||||||
|
maxAsyncSize: optimizationSplitChunksSizes.optional(),
|
||||||
|
maxInitialSize: optimizationSplitChunksSizes.optional(),
|
||||||
|
};
|
||||||
|
const optimizationSplitChunksCacheGroup = zod_1.z.strictObject({
|
||||||
|
test: zod_1.z.string().or(zod_1.z.instanceof(RegExp)).optional(),
|
||||||
|
priority: zod_1.z.number().optional(),
|
||||||
|
enforce: zod_1.z.boolean().optional(),
|
||||||
|
reuseExistingChunk: zod_1.z.boolean().optional(),
|
||||||
|
type: zod_1.z.string().or(zod_1.z.instanceof(RegExp)).optional(),
|
||||||
|
idHint: zod_1.z.string().optional(),
|
||||||
|
...sharedOptimizationSplitChunksCacheGroup,
|
||||||
|
});
|
||||||
|
const optimizationSplitChunksOptions = zod_1.z.strictObject({
|
||||||
|
cacheGroups: zod_1.z
|
||||||
|
.record(zod_1.z.literal(false).or(optimizationSplitChunksCacheGroup))
|
||||||
|
.optional(),
|
||||||
|
maxAsyncRequests: zod_1.z.number().optional(),
|
||||||
|
maxInitialRequests: zod_1.z.number().optional(),
|
||||||
|
fallbackCacheGroup: zod_1.z
|
||||||
|
.strictObject({
|
||||||
|
chunks: optimizationSplitChunksChunks.optional(),
|
||||||
|
minSize: zod_1.z.number().optional(),
|
||||||
|
maxSize: zod_1.z.number().optional(),
|
||||||
|
maxAsyncSize: zod_1.z.number().optional(),
|
||||||
|
maxInitialSize: zod_1.z.number().optional(),
|
||||||
|
})
|
||||||
|
.optional(),
|
||||||
|
...sharedOptimizationSplitChunksCacheGroup,
|
||||||
|
});
|
||||||
|
const optimization = zod_1.z.strictObject({
|
||||||
|
moduleIds: zod_1.z.enum(['named', 'deterministic']).optional(),
|
||||||
|
chunkIds: zod_1.z.enum(['named', 'deterministic']).optional(),
|
||||||
|
minimize: zod_1.z.boolean().optional(),
|
||||||
|
minimizer: zod_1.z.literal('...').or(plugin).array().optional(),
|
||||||
|
splitChunks: optimizationSplitChunksOptions.optional(),
|
||||||
|
runtimeChunk: optimizationRuntimeChunk.optional(),
|
||||||
|
removeAvailableModules: zod_1.z.boolean().optional(),
|
||||||
|
removeEmptyChunks: zod_1.z.boolean().optional(),
|
||||||
|
realContentHash: zod_1.z.boolean().optional(),
|
||||||
|
sideEffects: zod_1.z.enum(['flag']).or(zod_1.z.boolean()).optional(),
|
||||||
|
providedExports: zod_1.z.boolean().optional(),
|
||||||
|
innerGraph: zod_1.z.boolean().optional(),
|
||||||
|
usedExports: zod_1.z.enum(['global']).or(zod_1.z.boolean()).optional(),
|
||||||
|
nodeEnv: zod_1.z.union([zod_1.z.string(), zod_1.z.literal(false)]).optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region Experiments
|
||||||
|
const incrementalRebuildOptions = zod_1.z.strictObject({
|
||||||
|
make: zod_1.z.boolean().optional(),
|
||||||
|
emitAsset: zod_1.z.boolean().optional(),
|
||||||
|
});
|
||||||
|
const rspackFutureOptions = zod_1.z.strictObject({
|
||||||
|
newResolver: zod_1.z.boolean().optional(),
|
||||||
|
newTreeshaking: zod_1.z.boolean().optional(),
|
||||||
|
disableTransformByDefault: zod_1.z.boolean().optional(),
|
||||||
|
});
|
||||||
|
const experiments = zod_1.z.strictObject({
|
||||||
|
lazyCompilation: zod_1.z.boolean().optional(),
|
||||||
|
incrementalRebuild: zod_1.z
|
||||||
|
.boolean()
|
||||||
|
.or(incrementalRebuildOptions)
|
||||||
|
.optional()
|
||||||
|
.refine(val => {
|
||||||
|
if (val !== undefined) {
|
||||||
|
(0, util_1.deprecatedWarn)(`'experiments.incrementalRebuild' has been deprecated, and will be drop support in 0.5.0. See the discussion ${(0, util_1.termlink)('here', 'https://github.com/web-infra-dev/rspack/issues/4708')}`);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
asyncWebAssembly: zod_1.z.boolean().optional(),
|
||||||
|
outputModule: zod_1.z.boolean().optional(),
|
||||||
|
topLevelAwait: zod_1.z.boolean().optional(),
|
||||||
|
newSplitChunks: zod_1.z
|
||||||
|
.boolean()
|
||||||
|
.optional()
|
||||||
|
.refine(val => {
|
||||||
|
if (val === false) {
|
||||||
|
(0, util_1.deprecatedWarn)(`'experiments.newSplitChunks = ${JSON.stringify(val)}' has been deprecated, please switch to 'experiments.newSplitChunks = true' to use webpack's behavior.
|
||||||
|
See the discussion ${(0, util_1.termlink)('here', 'https://github.com/web-infra-dev/rspack/discussions/4168')}`);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
css: zod_1.z.boolean().optional(),
|
||||||
|
futureDefaults: zod_1.z.boolean().optional(),
|
||||||
|
rspackFuture: rspackFutureOptions.optional(),
|
||||||
|
});
|
||||||
|
// #endregion
|
||||||
|
// #region Watch
|
||||||
|
const watch = zod_1.z.boolean();
|
||||||
|
// #endregion
|
||||||
|
// #region WatchOptions
|
||||||
|
const watchOptions = zod_1.z.strictObject({
|
||||||
|
aggregateTimeout: zod_1.z.number().optional(),
|
||||||
|
followSymlinks: zod_1.z.boolean().optional(),
|
||||||
|
ignored: zod_1.z
|
||||||
|
.string()
|
||||||
|
.array()
|
||||||
|
.or(zod_1.z.instanceof(RegExp))
|
||||||
|
.or(zod_1.z.string())
|
||||||
|
.optional(),
|
||||||
|
poll: zod_1.z.number().or(zod_1.z.boolean()).optional(),
|
||||||
|
stdin: zod_1.z.boolean().optional(),
|
||||||
|
});
|
||||||
|
const devServer = zod_1.z.custom();
|
||||||
|
// #endregion
|
||||||
|
// #region IgnoreWarnings
|
||||||
|
const ignoreWarnings = zod_1.z
|
||||||
|
.instanceof(RegExp)
|
||||||
|
.or(zod_1.z
|
||||||
|
.function()
|
||||||
|
.args(zod_1.z.instanceof(Error), zod_1.z.custom())
|
||||||
|
.returns(zod_1.z.boolean()))
|
||||||
|
.array();
|
||||||
|
// #endregion
|
||||||
|
// #region Profile
|
||||||
|
const profile = zod_1.z.boolean();
|
||||||
|
// #endregion
|
||||||
|
// #region Builtins (deprecated)
|
||||||
|
const builtins = zod_1.z.custom();
|
||||||
|
const features = zod_1.z.custom();
|
||||||
|
// #endregion
|
||||||
|
exports.rspackOptions = zod_1.z.strictObject({
|
||||||
|
name: name.optional(),
|
||||||
|
dependencies: dependencies.optional(),
|
||||||
|
entry: entry.optional(),
|
||||||
|
output: output.optional(),
|
||||||
|
target: target.optional(),
|
||||||
|
mode: mode.optional(),
|
||||||
|
experiments: experiments.optional(),
|
||||||
|
externals: externals.optional(),
|
||||||
|
externalsType: externalsType.optional(),
|
||||||
|
externalsPresets: externalsPresets.optional(),
|
||||||
|
infrastructureLogging: infrastructureLogging.optional(),
|
||||||
|
cache: cacheOptions.optional(),
|
||||||
|
context: context.optional(),
|
||||||
|
devtool: devTool.optional(),
|
||||||
|
node: node.optional(),
|
||||||
|
ignoreWarnings: ignoreWarnings.optional(),
|
||||||
|
watchOptions: watchOptions.optional(),
|
||||||
|
watch: watch.optional(),
|
||||||
|
stats: statsValue.optional(),
|
||||||
|
snapshot: snapshotOptions.optional(),
|
||||||
|
optimization: optimization.optional(),
|
||||||
|
resolve: resolve.optional(),
|
||||||
|
resolveLoader: resolve.optional(),
|
||||||
|
plugins: plugins.optional(),
|
||||||
|
devServer: devServer.optional(),
|
||||||
|
builtins: builtins.optional(),
|
||||||
|
module: moduleOptions.optional(),
|
||||||
|
profile: profile.optional(),
|
||||||
|
features: features.optional(),
|
||||||
|
});
|
||||||
|
|
@ -33,7 +33,6 @@
|
||||||
"react-refresh": "0.14.0",
|
"react-refresh": "0.14.0",
|
||||||
"core-js-pure": "^3.8.1",
|
"core-js-pure": "^3.8.1",
|
||||||
"error-stack-parser": "^2.0.6",
|
"error-stack-parser": "^2.0.6",
|
||||||
"@rspack/dev-server": "0.3.11",
|
|
||||||
"@ice/css-modules-hash": "0.0.6",
|
"@ice/css-modules-hash": "0.0.6",
|
||||||
"browserslist": "^4.21.3",
|
"browserslist": "^4.21.3",
|
||||||
"compare-versions": "6.0.0-rc.1",
|
"compare-versions": "6.0.0-rc.1",
|
||||||
|
|
@ -45,10 +44,13 @@
|
||||||
"webpack-sources": "3.2.3",
|
"webpack-sources": "3.2.3",
|
||||||
"zod": "^3.21.4",
|
"zod": "^3.21.4",
|
||||||
"zod-validation-error": "1.2.0",
|
"zod-validation-error": "1.2.0",
|
||||||
"@rspack/binding": "0.3.11"
|
"terminal-link": "^2.1.1",
|
||||||
|
"@ice/pack-binding": "0.0.2",
|
||||||
|
"@rspack/plugin-react-refresh": "0.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rspack/core": "0.3.11",
|
"@rspack/dev-server": "0.4.0",
|
||||||
|
"@rspack/core": "0.4.0",
|
||||||
"@types/less": "^3.0.3",
|
"@types/less": "^3.0.3",
|
||||||
"@types/lodash": "^4.14.181",
|
"@types/lodash": "^4.14.181",
|
||||||
"@types/webpack-bundle-analyzer": "^4.4.1",
|
"@types/webpack-bundle-analyzer": "^4.4.1",
|
||||||
|
|
@ -86,7 +88,7 @@
|
||||||
"bonjour-service": "^1.0.13",
|
"bonjour-service": "^1.0.13",
|
||||||
"colorette": "^2.0.10",
|
"colorette": "^2.0.10",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
"connect-history-api-fallback": "^1.6.0",
|
"connect-history-api-fallback": "2.0.0",
|
||||||
"default-gateway": "^6.0.3",
|
"default-gateway": "^6.0.3",
|
||||||
"express": "^4.17.3",
|
"express": "^4.17.3",
|
||||||
"graceful-fs": "4.2.10",
|
"graceful-fs": "4.2.10",
|
||||||
|
|
|
||||||
|
|
@ -227,20 +227,57 @@ const tasks = [
|
||||||
patch: () => {
|
patch: () => {
|
||||||
const pkgPath = path.join(__dirname, '../node_modules/@rspack/core');
|
const pkgPath = path.join(__dirname, '../node_modules/@rspack/core');
|
||||||
const targetPath = path.join(__dirname, '../compiled/@rspack/core');
|
const targetPath = path.join(__dirname, '../compiled/@rspack/core');
|
||||||
fs.removeSync(targetPath);
|
|
||||||
// Copy the entire directory.
|
// Copy the entire directory.
|
||||||
// Mark: when copy each file separately, the build process will be stuck.
|
|
||||||
fs.copySync(pkgPath, targetPath);
|
|
||||||
// Remove node_modules while bin files may be linked to node_modules.
|
|
||||||
fs.removeSync(path.join(pkgPath, 'node_modules'));
|
|
||||||
// filter out js files and replace with compiled files.
|
// filter out js files and replace with compiled files.
|
||||||
const filePaths = globbySync(['**/*.js'], { cwd: targetPath, ignore: ['node_modules'] });
|
const filePaths = globbySync(['**/*'], { cwd: pkgPath, ignore: ['node_modules'] });
|
||||||
|
const filesAddOverwrite = ['dist/config/adapter.js', 'dist/config/defaults.js', 'dist/config/zod.js', 'dist/util/bindingVersionCheck.js'];
|
||||||
filePaths.forEach((filePath) => {
|
filePaths.forEach((filePath) => {
|
||||||
const sourcePath = path.join(targetPath, filePath);
|
const sourcePath = path.join(pkgPath, filePath);
|
||||||
const fileContent = fs.readFileSync(sourcePath, 'utf8');
|
const targetFilePath = path.join(targetPath, filePath);
|
||||||
fs.writeFileSync(sourcePath, replaceDeps(fileContent, ['tapable', 'schema-utils', 'graceful-fs']));
|
fs.ensureDirSync(path.dirname(targetFilePath));
|
||||||
|
if (path.extname(filePath) === '.js') {
|
||||||
|
const matched = filesAddOverwrite.some(filePath => {
|
||||||
|
const matched = sourcePath.split(path.sep).join('/').includes(filePath);
|
||||||
|
if (matched) {
|
||||||
|
fs.copyFileSync(path.join(__dirname, `../override/rspack/${path.basename(filePath)}`), targetFilePath);
|
||||||
|
}
|
||||||
|
return matched;
|
||||||
|
});
|
||||||
|
if (!matched) {
|
||||||
|
const fileContent = fs.readFileSync(sourcePath, 'utf8');
|
||||||
|
fs.writeFileSync(
|
||||||
|
targetFilePath,
|
||||||
|
replaceDeps(fileContent, ['tapable', 'schema-utils', 'graceful-fs'])
|
||||||
|
.replace(new RegExp('require\\(["\']@rspack/binding["\']\\)', 'g'), 'require("@ice/pack-binding")'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
fs.copyFileSync(sourcePath, targetFilePath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
pkgName: '@rspack/dev-server',
|
||||||
|
skipCompile: true,
|
||||||
|
patch: () => {
|
||||||
|
// Copy webpack-dev-server while all dependencies has been packed.
|
||||||
|
const pkgPath = path.join(__dirname, '../node_modules/@rspack/dev-server');
|
||||||
|
const filePaths = globbySync(['**/*'], { cwd: pkgPath, ignore: ['node_modules', 'types', 'bin'] });
|
||||||
|
filePaths.forEach((filePath) => {
|
||||||
|
fs.ensureDirSync(path.join(__dirname, `../compiled/@rspack/dev-server/${path.dirname(filePath)}`));
|
||||||
|
const sourcePath = path.join(pkgPath, filePath);
|
||||||
|
const targetPath = path.join(__dirname, `../compiled/@rspack/dev-server/${filePath}`);
|
||||||
|
if (path.extname(filePath) === '.js') {
|
||||||
|
const fileContent = fs.readFileSync(sourcePath, 'utf8');
|
||||||
|
fs.writeFileSync(targetPath,
|
||||||
|
replaceDeps(fileContent, webpackDevServerDeps.concat([...commonDeps, '@rspack/core', 'webpack-dev-server']))
|
||||||
|
.replace(/webpack-dev-server\/client\/clients/g, '@ice/bundles/compiled/webpack-dev-server/client/clients'),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
fs.copyFileSync(sourcePath, targetPath);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
// TODO: replace @rspack/binding.
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
export * from '@rspack/dev-server';
|
export * from '../compiled/@rspack/dev-server/dist/index.js';
|
||||||
|
|
|
||||||
|
|
@ -98,8 +98,8 @@
|
||||||
"unplugin": "^1.5.0",
|
"unplugin": "^1.5.0",
|
||||||
"webpack": "^5.88.0",
|
"webpack": "^5.88.0",
|
||||||
"webpack-dev-server": "4.15.0",
|
"webpack-dev-server": "4.15.0",
|
||||||
"@rspack/core": "0.3.11",
|
"@rspack/core": "0.4.0",
|
||||||
"@rspack/dev-server": "0.3.11"
|
"@rspack/dev-server": "0.4.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=18.0.0",
|
"react": ">=18.0.0",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,11 @@ async function build(options: BuildOptions) {
|
||||||
});
|
});
|
||||||
const { stats, isSuccessful, messages } = await new Promise<CompileResults>((resolve, reject) => {
|
const { stats, isSuccessful, messages } = await new Promise<CompileResults>((resolve, reject) => {
|
||||||
let messages: { errors: string[]; warnings: string[] };
|
let messages: { errors: string[]; warnings: string[] };
|
||||||
compiler.run(async (_, stats: MultiStats) => {
|
compiler.run(async (err: any, stats: MultiStats) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const obj = stats.toJson({
|
const obj = stats.toJson({
|
||||||
all: false,
|
all: false,
|
||||||
timings: true,
|
timings: true,
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ async function bundler(
|
||||||
rspackConfigs,
|
rspackConfigs,
|
||||||
};
|
};
|
||||||
if (command === 'start') {
|
if (command === 'start') {
|
||||||
|
// @ts-expect-error dev-server has been pre-packed, so it will have different type.
|
||||||
devServer = await start(buildOptions);
|
devServer = await start(buildOptions);
|
||||||
} else if (command === 'build') {
|
} else if (command === 'build') {
|
||||||
await build(buildOptions);
|
await build(buildOptions);
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ export default class ServerCompilerPlugin {
|
||||||
if (compilation) {
|
if (compilation) {
|
||||||
// Option of compilationInfo need to be object, while it may changed during multi-time compilation.
|
// Option of compilationInfo need to be object, while it may changed during multi-time compilation.
|
||||||
this.compilerOptions.compilationInfo.assetsManifest =
|
this.compilerOptions.compilationInfo.assetsManifest =
|
||||||
JSON.parse(compilation.assets['assets-manifest.json'].source().toString());
|
JSON.parse(compilation.getAsset('assets-manifest.json').source.source().toString());
|
||||||
}
|
}
|
||||||
// For first time, we create a new task.
|
// For first time, we create a new task.
|
||||||
// The next time, we use incremental build so do not create task again.
|
// The next time, we use incremental build so do not create task again.
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,11 @@
|
||||||
"*.d.ts"
|
"*.d.ts"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ice/shared-config": "1.1.2",
|
"@ice/bundles": "0.1.17",
|
||||||
"@ice/bundles": "0.1.17"
|
"@ice/shared-config": "1.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rspack/core": "0.3.11"
|
"@rspack/core": "0.4.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"watch": "tsc -w --sourceMap",
|
"watch": "tsc -w --sourceMap",
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { createRequire } from 'module';
|
import { createRequire } from 'module';
|
||||||
import { compilationPlugin, compileExcludes, getDefineVars, getCompilerPlugins } from '@ice/shared-config';
|
import { compilationPlugin, compileExcludes, getDefineVars, getCompilerPlugins, getJsxTransformOptions } from '@ice/shared-config';
|
||||||
import type { Config, ModifyWebpackConfig } from '@ice/shared-config/types';
|
import type { Config, ModifyWebpackConfig } from '@ice/shared-config/types';
|
||||||
import type { Configuration, rspack as Rspack } from '@rspack/core';
|
import type { Configuration, rspack as Rspack } from '@rspack/core';
|
||||||
import AssetManifest from './plugins/AssetManifest.js';
|
import lodash from '@ice/bundles/compiled/lodash/index.js';
|
||||||
import getSplitChunks from './splitChunks.js';
|
import getSplitChunks from './splitChunks.js';
|
||||||
import getAssetsRule from './assetsRule.js';
|
import getAssetsRule from './assetsRule.js';
|
||||||
import getCssRules from './cssRules.js';
|
import getCssRules from './cssRules.js';
|
||||||
|
|
@ -25,6 +25,7 @@ type GetConfig = (
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
const require = createRequire(import.meta.url);
|
||||||
|
|
||||||
|
const { merge } = lodash;
|
||||||
const getConfig: GetConfig = async (options) => {
|
const getConfig: GetConfig = async (options) => {
|
||||||
const {
|
const {
|
||||||
rootDir,
|
rootDir,
|
||||||
|
|
@ -39,6 +40,7 @@ const getConfig: GetConfig = async (options) => {
|
||||||
|
|
||||||
const {
|
const {
|
||||||
mode,
|
mode,
|
||||||
|
minify,
|
||||||
publicPath = '/',
|
publicPath = '/',
|
||||||
cacheDir,
|
cacheDir,
|
||||||
outputDir = 'build',
|
outputDir = 'build',
|
||||||
|
|
@ -58,6 +60,7 @@ const getConfig: GetConfig = async (options) => {
|
||||||
plugins = [],
|
plugins = [],
|
||||||
middlewares,
|
middlewares,
|
||||||
configureWebpack = [],
|
configureWebpack = [],
|
||||||
|
minimizerOptions = {},
|
||||||
} = taskConfig || {};
|
} = taskConfig || {};
|
||||||
const absoluteOutputDir = path.isAbsolute(outputDir) ? outputDir : path.join(rootDir, outputDir);
|
const absoluteOutputDir = path.isAbsolute(outputDir) ? outputDir : path.join(rootDir, outputDir);
|
||||||
const hashKey = hash === true ? 'hash:8' : (hash || '');
|
const hashKey = hash === true ? 'hash:8' : (hash || '');
|
||||||
|
|
@ -74,10 +77,33 @@ const getConfig: GetConfig = async (options) => {
|
||||||
enableEnv: true,
|
enableEnv: true,
|
||||||
getRoutesFile,
|
getRoutesFile,
|
||||||
});
|
});
|
||||||
const { DefinePlugin, ProvidePlugin } = await import('@ice/bundles/esm/rspack.js');
|
|
||||||
|
const { rspack: { DefinePlugin, ProvidePlugin, SwcJsMinimizerRspackPlugin } } = await import('@ice/bundles/esm/rspack.js');
|
||||||
const cssFilename = `css/${hashKey ? `[name]-[${hashKey}].css` : '[name].css'}`;
|
const cssFilename = `css/${hashKey ? `[name]-[${hashKey}].css` : '[name].css'}`;
|
||||||
// get compile plugins
|
// get compile plugins
|
||||||
const compilerWebpackPlugins = getCompilerPlugins(rootDir, taskConfig || {}, 'rspack', { isServer: false });
|
const compilerWebpackPlugins = getCompilerPlugins(rootDir, taskConfig || {}, 'rspack', { isServer: false });
|
||||||
|
const jsMinimizerPluginOptions: any = merge({
|
||||||
|
compress: {
|
||||||
|
ecma: 5,
|
||||||
|
unused: true,
|
||||||
|
dead_code: true,
|
||||||
|
// The following two options are known to break valid JavaScript code
|
||||||
|
// https://github.com/vercel/next.js/issues/7178#issuecomment-493048965
|
||||||
|
comparisons: false,
|
||||||
|
inline: 2,
|
||||||
|
passes: 4,
|
||||||
|
},
|
||||||
|
mangle: {
|
||||||
|
safari10: true,
|
||||||
|
},
|
||||||
|
format: {
|
||||||
|
safari10: true,
|
||||||
|
comments: false,
|
||||||
|
// Fixes usage of Emoji and certain Regex
|
||||||
|
asciiOnly: true,
|
||||||
|
},
|
||||||
|
module: true,
|
||||||
|
}, minimizerOptions);
|
||||||
const config: Configuration = {
|
const config: Configuration = {
|
||||||
entry: {
|
entry: {
|
||||||
main: [path.join(rootDir, runtimeTmpDir, 'entry.client.tsx')],
|
main: [path.join(rootDir, runtimeTmpDir, 'entry.client.tsx')],
|
||||||
|
|
@ -97,15 +123,19 @@ const getConfig: GetConfig = async (options) => {
|
||||||
context: rootDir,
|
context: rootDir,
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
// Compliation rules for js / ts.
|
|
||||||
{
|
{
|
||||||
|
// TODO: use regexp to improve performance.
|
||||||
test: compilation.transformInclude,
|
test: compilation.transformInclude,
|
||||||
use: [{
|
use: {
|
||||||
loader: require.resolve('@ice/shared-config/compilation-loader'),
|
loader: 'builtin:compilation-loader',
|
||||||
options: {
|
options: {
|
||||||
transform: compilation.transform,
|
swcOptions: getJsxTransformOptions({ suffix: 'jsx', rootDir, mode, fastRefresh: false, polyfill, enableEnv: true }),
|
||||||
|
transformFeatures: {
|
||||||
|
removeExport: swcOptions.removeExportExprs,
|
||||||
|
keepExport: swcOptions.keepExports,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}],
|
},
|
||||||
},
|
},
|
||||||
...getAssetsRule(),
|
...getAssetsRule(),
|
||||||
...getCssRules({
|
...getCssRules({
|
||||||
|
|
@ -123,6 +153,7 @@ const getConfig: GetConfig = async (options) => {
|
||||||
aggregateTimeout: 100,
|
aggregateTimeout: 100,
|
||||||
},
|
},
|
||||||
optimization: {
|
optimization: {
|
||||||
|
minimize: !!minify,
|
||||||
splitChunks: typeof splitChunks == 'object'
|
splitChunks: typeof splitChunks == 'object'
|
||||||
? splitChunks
|
? splitChunks
|
||||||
: getSplitChunks(rootDir, splitChunks),
|
: getSplitChunks(rootDir, splitChunks),
|
||||||
|
|
@ -132,22 +163,23 @@ const getConfig: GetConfig = async (options) => {
|
||||||
...plugins,
|
...plugins,
|
||||||
// Unplugin should be compatible with rspack.
|
// Unplugin should be compatible with rspack.
|
||||||
...compilerWebpackPlugins,
|
...compilerWebpackPlugins,
|
||||||
new AssetManifest({
|
|
||||||
fileName: 'assets-manifest.json',
|
|
||||||
outputDir: path.join(rootDir, runtimeTmpDir),
|
|
||||||
}),
|
|
||||||
new DefinePlugin(getDefineVars(define, runtimeDefineVars, getExpandedEnvs)),
|
new DefinePlugin(getDefineVars(define, runtimeDefineVars, getExpandedEnvs)),
|
||||||
new ProvidePlugin({
|
new ProvidePlugin({
|
||||||
process: [require.resolve('process/browser')],
|
process: [require.resolve('process/browser')],
|
||||||
$ReactRefreshRuntime$: [require.resolve('./client/reactRefresh.cjs')],
|
$ReactRefreshRuntime$: [require.resolve('./client/reactRefresh.cjs')],
|
||||||
}),
|
}),
|
||||||
|
!!minify && new SwcJsMinimizerRspackPlugin(jsMinimizerPluginOptions),
|
||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
builtins: {
|
builtins: {
|
||||||
devFriendlySplitChunks: true,
|
|
||||||
css: {
|
css: {
|
||||||
modules: { localIdentName },
|
modules: { localIdentName },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
experiments: {
|
||||||
|
rspackFuture: {
|
||||||
|
disableTransformByDefault: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
stats: 'none',
|
stats: 'none',
|
||||||
infrastructureLogging: {
|
infrastructureLogging: {
|
||||||
level: 'warn',
|
level: 'warn',
|
||||||
|
|
@ -172,6 +204,7 @@ const getConfig: GetConfig = async (options) => {
|
||||||
...devServer,
|
...devServer,
|
||||||
setupMiddlewares: middlewares,
|
setupMiddlewares: middlewares,
|
||||||
},
|
},
|
||||||
|
features: {},
|
||||||
};
|
};
|
||||||
// Compatible with API configureWebpack.
|
// Compatible with API configureWebpack.
|
||||||
const ctx = {
|
const ctx = {
|
||||||
|
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
import { existsSync } from 'fs';
|
|
||||||
import { resolve } from 'path';
|
|
||||||
import type { Compiler, Compilation, RspackPluginInstance } from '@rspack/core';
|
|
||||||
|
|
||||||
export default class AssetManifest implements RspackPluginInstance {
|
|
||||||
private fileName: string;
|
|
||||||
private outputDir: string;
|
|
||||||
|
|
||||||
constructor(options) {
|
|
||||||
this.fileName = options?.fileName || 'assets-manifest.json';
|
|
||||||
this.outputDir = options?.outputDir || './';
|
|
||||||
}
|
|
||||||
|
|
||||||
apply(compiler: Compiler) {
|
|
||||||
compiler.hooks.thisCompilation.tap(this.constructor.name, (compilation) => {
|
|
||||||
compilation.hooks.processAssets.tapAsync(
|
|
||||||
{
|
|
||||||
name: this.constructor.name,
|
|
||||||
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE,
|
|
||||||
},
|
|
||||||
(_: Compilation['assets'], callback) => {
|
|
||||||
const entries = {};
|
|
||||||
const pages = {};
|
|
||||||
// TODO: get assets info by compilation.assetsInfo (not supported yet).
|
|
||||||
const assets = {};
|
|
||||||
const entryNames = Array.from(compilation.entrypoints.keys());
|
|
||||||
entryNames.forEach((entryName: string) => {
|
|
||||||
const entryUnfilteredPointFiles = compilation.entrypoints.get(entryName)?.getFiles();
|
|
||||||
const entryPointFiles = entryUnfilteredPointFiles?.filter((chunkFile) => {
|
|
||||||
const asset = compilation.getAsset(chunkFile);
|
|
||||||
if (!asset) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
const assetMetaInfo = asset.info;
|
|
||||||
return !(
|
|
||||||
assetMetaInfo.hotModuleReplacement ||
|
|
||||||
assetMetaInfo.development
|
|
||||||
);
|
|
||||||
});
|
|
||||||
entries[entryName] = entryPointFiles;
|
|
||||||
});
|
|
||||||
const stats = compilation.getStats().toJson({
|
|
||||||
all: false,
|
|
||||||
chunks: true,
|
|
||||||
});
|
|
||||||
stats.chunks.filter(({ entry, initial }) => !entry && !initial).forEach((chunk) => {
|
|
||||||
const chunkName = chunk.id;
|
|
||||||
|
|
||||||
if (chunkName) {
|
|
||||||
pages[chunkName.replace(/^p_/, '')] = chunk.files.filter((file: string) => {
|
|
||||||
return file.endsWith('.js') || file.endsWith('.css');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const manifest = {
|
|
||||||
publicPath: compilation.outputOptions?.publicPath,
|
|
||||||
entries,
|
|
||||||
pages,
|
|
||||||
assets,
|
|
||||||
};
|
|
||||||
|
|
||||||
const dataLoader = resolve(this.outputDir, './data-loader.ts');
|
|
||||||
if (existsSync(dataLoader)) {
|
|
||||||
manifest['dataLoader'] = 'js/data-loader.js';
|
|
||||||
}
|
|
||||||
|
|
||||||
const output = JSON.stringify(manifest, null, 2);
|
|
||||||
// Emit asset manifest for server compile.
|
|
||||||
compilation.emitAsset(this.fileName, new compiler.webpack.sources.RawSource(output));
|
|
||||||
callback();
|
|
||||||
},
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const SKIP_COMPILE = [
|
export const SKIP_COMPILE = [
|
||||||
// polyfill and helpers
|
// polyfill and helpers
|
||||||
'core-js', 'core-js-pure', '@swc/helpers', '@babel/runtime', 'tslib',
|
'core-js', 'core-js-pure', '@swc/helpers', '@babel/runtime', 'tslib',
|
||||||
// Deprecate version of @babel/runtime.
|
// Deprecate version of @babel/runtime.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import compilationPlugin, { isSupportedFeature } from './unPlugins/compilation.js';
|
import compilationPlugin, { isSupportedFeature, getJsxTransformOptions } from './unPlugins/compilation.js';
|
||||||
import compileExcludes from './compileExcludes.js';
|
import compileExcludes, { SKIP_COMPILE as skipCompilePackages } from './compileExcludes.js';
|
||||||
import getCompilerPlugins from './getCompilerPlugins.js';
|
import getCompilerPlugins from './getCompilerPlugins.js';
|
||||||
import getDefineVars from './getDefineVars.js';
|
import getDefineVars from './getDefineVars.js';
|
||||||
import getPostcssOpts from './getPostcssOpts.js';
|
import getPostcssOpts from './getPostcssOpts.js';
|
||||||
|
|
@ -10,6 +10,8 @@ export {
|
||||||
compilationPlugin,
|
compilationPlugin,
|
||||||
isSupportedFeature,
|
isSupportedFeature,
|
||||||
compileExcludes,
|
compileExcludes,
|
||||||
|
skipCompilePackages,
|
||||||
|
getJsxTransformOptions,
|
||||||
getCompilerPlugins,
|
getCompilerPlugins,
|
||||||
getDefineVars,
|
getDefineVars,
|
||||||
getPostcssOpts,
|
getPostcssOpts,
|
||||||
|
|
|
||||||
|
|
@ -71,14 +71,12 @@ const compilationPlugin = (options: Options): UnpluginOptions => {
|
||||||
transformInclude(id) {
|
transformInclude(id) {
|
||||||
// Resolved id is not formatted when used in webpack loader test.
|
// Resolved id is not formatted when used in webpack loader test.
|
||||||
const formatedId = formatId(id);
|
const formatedId = formatId(id);
|
||||||
return extensionRegex.test(formatedId) && !compileExcludes.some((regex) => regex.test(formatedId));
|
const needCompile = extensionRegex.test(formatedId) && !compileExcludes.some((regex) => regex.test(formatedId));
|
||||||
|
const skipCompile = /node_modules/.test(id) && !compileRegex.some((regex) => regex.test(id));
|
||||||
|
return needCompile && !skipCompile;
|
||||||
},
|
},
|
||||||
async transform(source: string, fileId: string) {
|
async transform(source: string, fileId: string) {
|
||||||
const id = formatId(fileId);
|
const id = formatId(fileId);
|
||||||
if ((/node_modules/.test(id) && !compileRegex.some((regex) => regex.test(id)))) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const suffix = (['jsx', 'tsx'] as JSXSuffix[]).find(suffix => new RegExp(`\\.${suffix}?$`).test(id));
|
const suffix = (['jsx', 'tsx'] as JSXSuffix[]).find(suffix => new RegExp(`\\.${suffix}?$`).test(id));
|
||||||
|
|
||||||
const programmaticOptions: SwcConfig = {
|
const programmaticOptions: SwcConfig = {
|
||||||
|
|
@ -184,13 +182,13 @@ const compilationPlugin = (options: Options): UnpluginOptions => {
|
||||||
interface GetJsxTransformOptions {
|
interface GetJsxTransformOptions {
|
||||||
rootDir: string;
|
rootDir: string;
|
||||||
mode: Options['mode'];
|
mode: Options['mode'];
|
||||||
suffix: JSXSuffix;
|
suffix?: JSXSuffix;
|
||||||
fastRefresh: boolean;
|
fastRefresh: boolean;
|
||||||
polyfill: Config['polyfill'];
|
polyfill: Config['polyfill'];
|
||||||
enableEnv: boolean;
|
enableEnv: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getJsxTransformOptions({
|
export function getJsxTransformOptions({
|
||||||
suffix,
|
suffix,
|
||||||
fastRefresh,
|
fastRefresh,
|
||||||
polyfill,
|
polyfill,
|
||||||
|
|
@ -250,6 +248,7 @@ function getJsxTransformOptions({
|
||||||
parser: {
|
parser: {
|
||||||
jsx: true,
|
jsx: true,
|
||||||
...syntaxFeatures,
|
...syntaxFeatures,
|
||||||
|
syntax: 'ecmascript',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}, commonOptions);
|
}, commonOptions);
|
||||||
|
|
|
||||||
271
pnpm-lock.yaml
271
pnpm-lock.yaml
|
|
@ -1267,6 +1267,9 @@ importers:
|
||||||
'@ice/css-modules-hash':
|
'@ice/css-modules-hash':
|
||||||
specifier: 0.0.6
|
specifier: 0.0.6
|
||||||
version: 0.0.6
|
version: 0.0.6
|
||||||
|
'@ice/pack-binding':
|
||||||
|
specifier: 0.0.2
|
||||||
|
version: 0.0.2
|
||||||
'@ice/swc-plugin-keep-export':
|
'@ice/swc-plugin-keep-export':
|
||||||
specifier: 0.2.0
|
specifier: 0.2.0
|
||||||
version: 0.2.0
|
version: 0.2.0
|
||||||
|
|
@ -1276,12 +1279,9 @@ importers:
|
||||||
'@ice/swc-plugin-remove-export':
|
'@ice/swc-plugin-remove-export':
|
||||||
specifier: 0.2.0
|
specifier: 0.2.0
|
||||||
version: 0.2.0
|
version: 0.2.0
|
||||||
'@rspack/binding':
|
'@rspack/plugin-react-refresh':
|
||||||
specifier: 0.3.11
|
specifier: 0.4.0
|
||||||
version: 0.3.11
|
version: 0.4.0(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2)
|
||||||
'@rspack/dev-server':
|
|
||||||
specifier: 0.3.11
|
|
||||||
version: 0.3.11(@rspack/core@0.3.11)(@swc/core@1.3.80)(esbuild@0.17.16)(react-refresh@0.14.0)
|
|
||||||
'@swc/core':
|
'@swc/core':
|
||||||
specifier: 1.3.80
|
specifier: 1.3.80
|
||||||
version: 1.3.80
|
version: 1.3.80
|
||||||
|
|
@ -1345,6 +1345,9 @@ importers:
|
||||||
sass:
|
sass:
|
||||||
specifier: 1.50.0
|
specifier: 1.50.0
|
||||||
version: 1.50.0
|
version: 1.50.0
|
||||||
|
terminal-link:
|
||||||
|
specifier: ^2.1.1
|
||||||
|
version: 2.1.1
|
||||||
watchpack:
|
watchpack:
|
||||||
specifier: ^2.4.0
|
specifier: ^2.4.0
|
||||||
version: 2.4.0
|
version: 2.4.0
|
||||||
|
|
@ -1362,8 +1365,11 @@ importers:
|
||||||
specifier: 0.5.10
|
specifier: 0.5.10
|
||||||
version: 0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2)
|
version: 0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2)
|
||||||
'@rspack/core':
|
'@rspack/core':
|
||||||
specifier: 0.3.11
|
specifier: 0.4.0
|
||||||
version: 0.3.11
|
version: 0.4.0
|
||||||
|
'@rspack/dev-server':
|
||||||
|
specifier: 0.4.0
|
||||||
|
version: 0.4.0(@rspack/core@0.4.0)(@swc/core@1.3.80)(esbuild@0.17.16)(react-refresh@0.14.0)
|
||||||
'@types/less':
|
'@types/less':
|
||||||
specifier: ^3.0.3
|
specifier: ^3.0.3
|
||||||
version: 3.0.3
|
version: 3.0.3
|
||||||
|
|
@ -1389,8 +1395,8 @@ importers:
|
||||||
specifier: ^1.7.4
|
specifier: ^1.7.4
|
||||||
version: 1.7.4
|
version: 1.7.4
|
||||||
connect-history-api-fallback:
|
connect-history-api-fallback:
|
||||||
specifier: ^1.6.0
|
specifier: 2.0.0
|
||||||
version: 1.6.0
|
version: 2.0.0
|
||||||
copy-webpack-plugin:
|
copy-webpack-plugin:
|
||||||
specifier: 10.2.4
|
specifier: 10.2.4
|
||||||
version: 10.2.4(webpack@5.88.2)
|
version: 10.2.4(webpack@5.88.2)
|
||||||
|
|
@ -1683,11 +1689,11 @@ importers:
|
||||||
version: 21.1.1
|
version: 21.1.1
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@rspack/core':
|
'@rspack/core':
|
||||||
specifier: 0.3.11
|
specifier: 0.4.0
|
||||||
version: 0.3.11
|
version: 0.4.0
|
||||||
'@rspack/dev-server':
|
'@rspack/dev-server':
|
||||||
specifier: 0.3.11
|
specifier: 0.4.0
|
||||||
version: 0.3.11(@rspack/core@0.3.11)(@types/express@4.17.17)(esbuild@0.17.16)(react-refresh@0.14.0)
|
version: 0.4.0(@rspack/core@0.4.0)(@types/express@4.17.17)(esbuild@0.17.16)(react-refresh@0.14.0)
|
||||||
'@types/babel__generator':
|
'@types/babel__generator':
|
||||||
specifier: ^7.6.4
|
specifier: ^7.6.4
|
||||||
version: 7.6.4
|
version: 7.6.4
|
||||||
|
|
@ -2284,8 +2290,8 @@ importers:
|
||||||
version: link:../shared-config
|
version: link:../shared-config
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@rspack/core':
|
'@rspack/core':
|
||||||
specifier: 0.3.11
|
specifier: 0.4.0
|
||||||
version: 0.3.11
|
version: 0.4.0
|
||||||
|
|
||||||
packages/runtime:
|
packages/runtime:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -6641,6 +6647,81 @@ packages:
|
||||||
'@ice/css-modules-hash-win32-x64-msvc': 0.0.6
|
'@ice/css-modules-hash-win32-x64-msvc': 0.0.6
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@ice/pack-binding-darwin-arm64@0.0.2:
|
||||||
|
resolution: {integrity: sha512-OvwDHEqcYr5coVgQGLQxb90MTC6/ySnmQkq03dikAMf8w3o5ooMzqSfRGLL8uAqBBhNNNipYPI97C7b9Pz+eaw==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding-darwin-universal@0.0.2:
|
||||||
|
resolution: {integrity: sha512-TG0e5NT6r2+yzL3eBU20RegLfWHDXjSyPjfQc0HM9sWgAHABQ0q+gE47rTv0ThWL8vC1uh4jlhPamwUCpjvLoQ==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding-darwin-x64@0.0.2:
|
||||||
|
resolution: {integrity: sha512-WcNGfHUClA4x0KjZf9ju0hG0/xFHnMUR1neoEyMw0UW1m6jZF76aWKBfQABocZkFV+veIyTZFXs/2GAmGZOJYw==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding-linux-x64-gnu@0.0.2:
|
||||||
|
resolution: {integrity: sha512-FQM056bjtP3gyp1ilS7PdrNMhpfwJS1PJvktw0LsrulCrsg+7vkUSvYHY5Jb2IcUAWX0JvTOhvyUeFQ4sN4S6A==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding-linux-x64-musl@0.0.2:
|
||||||
|
resolution: {integrity: sha512-h2ELqYZbo/Ckpa0YS6U0z+/oFsJ7gVcta4Ib8IWjUdoXQpK4r37DxY7GdDe+VafGoYGwSJijdzbYQRYsobSVhQ==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding-win32-arm64-msvc@0.0.2:
|
||||||
|
resolution: {integrity: sha512-hgxGL5c2gReksGcPeLkdgtmTBKC8baxb7ZAXN3HQoYyT8TJmTjeG6tJvDAfoJU7k6VrGWD2IQvdjWGSsdHUQzw==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding-win32-x64-msvc@0.0.2:
|
||||||
|
resolution: {integrity: sha512-TRacy9q8O2GLS1vA1Mh6ySPvpmzN459sTaOQ21WoGdbq+z6lrAgEKezbdB50hUoNZsw4DBDIPKwzZv2hhJGb6w==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/@ice/pack-binding@0.0.2:
|
||||||
|
resolution: {integrity: sha512-UkWq7iZG0pH3u4yaU0lVRJjQT8CKfaRyPWSfiD6M8A8klRs3Ksd+yRWqsaIlQ6TxpQ9LvtAGKdAWBEYoJHqm/Q==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
optionalDependencies:
|
||||||
|
'@ice/pack-binding-darwin-arm64': 0.0.2
|
||||||
|
'@ice/pack-binding-darwin-universal': 0.0.2
|
||||||
|
'@ice/pack-binding-darwin-x64': 0.0.2
|
||||||
|
'@ice/pack-binding-linux-x64-gnu': 0.0.2
|
||||||
|
'@ice/pack-binding-linux-x64-musl': 0.0.2
|
||||||
|
'@ice/pack-binding-win32-arm64-msvc': 0.0.2
|
||||||
|
'@ice/pack-binding-win32-x64-msvc': 0.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@ice/pkg@1.5.5:
|
/@ice/pkg@1.5.5:
|
||||||
resolution: {integrity: sha512-0BIfv6Uzs2wpHv7RmFwz+kWfoJLfx0yJrQyh3yqy+F6TZWxTwrqQmX+5yRmgqK5f7lGGhYfMMVNWjRSCw5MHPQ==}
|
resolution: {integrity: sha512-0BIfv6Uzs2wpHv7RmFwz+kWfoJLfx0yJrQyh3yqy+F6TZWxTwrqQmX+5yRmgqK5f7lGGhYfMMVNWjRSCw5MHPQ==}
|
||||||
engines: {node: '>=16.14.0'}
|
engines: {node: '>=16.14.0'}
|
||||||
|
|
@ -7541,6 +7622,7 @@ packages:
|
||||||
source-map: 0.7.4
|
source-map: 0.7.4
|
||||||
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
||||||
webpack-dev-server: 4.13.1(webpack@5.76.0)
|
webpack-dev-server: 4.13.1(webpack@5.76.0)
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2):
|
/@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2):
|
||||||
resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==}
|
resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==}
|
||||||
|
|
@ -7580,7 +7662,6 @@ packages:
|
||||||
source-map: 0.7.4
|
source-map: 0.7.4
|
||||||
webpack: 5.88.2(@swc/core@1.3.80)(esbuild@0.17.16)
|
webpack: 5.88.2(@swc/core@1.3.80)(esbuild@0.17.16)
|
||||||
webpack-dev-server: 4.15.0(webpack@5.88.2)
|
webpack-dev-server: 4.15.0(webpack@5.88.2)
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@polka/url@1.0.0-next.21:
|
/@polka/url@1.0.0-next.21:
|
||||||
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
|
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
|
||||||
|
|
@ -7875,86 +7956,97 @@ packages:
|
||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
/@rspack/binding-darwin-arm64@0.3.11:
|
/@rspack/binding-darwin-arm64@0.4.0:
|
||||||
resolution: {integrity: sha512-rTDHDvhGEk/6B+42ptlvMn8EkYi3mR0A0+safWeO87Ca0j73Zs0lN0wNGkpQmWjX4xul8flBw1VcRfFvCAfKmg==}
|
resolution: {integrity: sha512-iQ6ERHXzY58zgHIZZAC7L7hrosO7BZXH3RpOTTibiZdTVex4Bq10CVmy6q6m88iQuqAQS2BHOXzAYLJtZlZRRw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-darwin-x64@0.3.11:
|
/@rspack/binding-darwin-x64@0.4.0:
|
||||||
resolution: {integrity: sha512-bKFvkVE5emmnvbjy7Te7gzo5yv6hWGzDp2j2uWWo6uK+fZ49UMcQW0JmpMs6TNkCEGXO6V1DKnCdDn0aQrQajA==}
|
resolution: {integrity: sha512-LRCiMPCbAIwwo0euqao7+8peUXj+qPDSi0nSK2y6wjaXfUVi8FwpWQ+O+B3RH3rpyFBU63IqatC8razalt8JgQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-linux-arm64-gnu@0.3.11:
|
/@rspack/binding-linux-arm64-gnu@0.4.0:
|
||||||
resolution: {integrity: sha512-3Mo2YoCbAm1aDCuPMP/wZoYivHQ1V2U/LeD1Hn5DDSGxQhSFUSx+SADiVIycG9MgaUlYEfDT/14NCsv23DawNw==}
|
resolution: {integrity: sha512-trfEUQ7awu6dLWUlIXmSJmwW48lSxEl7kW4FUas/UMNH3/B/wim8TPx6ZuDrCzVhYk5HP7ccjbQg7mnbJ+E48w==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-linux-arm64-musl@0.3.11:
|
/@rspack/binding-linux-arm64-musl@0.4.0:
|
||||||
resolution: {integrity: sha512-lAZCBD6mZJwQ9BgTmreLHq2aPnu8rKxBIA+g+NVe48k+Z8YqwIj3lxSv6r6EDdH9Zq5TCgdfei99QK4tCwlc6g==}
|
resolution: {integrity: sha512-ubIcXmRopSJ6n+F/cRXDfGSgK847OX0CPeSSL4tiJ4dah5lz8iISZ9GLrNHJQ+SvphOH8F9lDpp8h2iwVt0Pbw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-linux-x64-gnu@0.3.11:
|
/@rspack/binding-linux-x64-gnu@0.4.0:
|
||||||
resolution: {integrity: sha512-9LuB64CaFt+G4a245HLdOvg8C4Ei1zIjeU0eghrd0svWQewQnOeoC+vXI0pSTGpNlcXiieKzJi502A/cwIJFIA==}
|
resolution: {integrity: sha512-Q3mqjgV2k68F8VuzZwaqhHggBhcSlD0N+vvtFP8BxXIX4Pdkmk2shwwVjniZmY+oKB16dbSmXxShdMlCE3CCng==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-linux-x64-musl@0.3.11:
|
/@rspack/binding-linux-x64-musl@0.4.0:
|
||||||
resolution: {integrity: sha512-zaZVY3o02M6UMmCPozEFNJ9vurkMPdtdxaSutnVS5s8fVAioSVrojaKGy2A2mtnWkNlUmhkiUaafFrHsTjV9gw==}
|
resolution: {integrity: sha512-5l6Q00yZDIeT8T1ruxEfF1Wj3m3SqnSHrPFiUqYydmgmNll1iCCRC2AmGVsmAACDQ7rg9z8BhhHtKukNBvmwTQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-win32-arm64-msvc@0.3.11:
|
/@rspack/binding-win32-arm64-msvc@0.4.0:
|
||||||
resolution: {integrity: sha512-Hee6+g8q/o+sXs42lE5skzwGrjMoWbugu9Vjzoqi4cEnzVLaiJ3tVO7z5Ov8gdhvyb31r8yFJL7tJW8qkIcTjQ==}
|
resolution: {integrity: sha512-k96/PSkVT/VEvqHygenzgr8Z7n4SuCSKONVFB5zazWDPaJwCqaqANQuvX0PbuazVy6PbiLE/YI0+4TDjL7dHCw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-win32-ia32-msvc@0.3.11:
|
/@rspack/binding-win32-ia32-msvc@0.4.0:
|
||||||
resolution: {integrity: sha512-les3RZWROP/rvM43hKydxsBIJbKB4XmhJcB9+0ihJTOlu7saX+3twkW2dd/5NFlcbahdw0SHDq1Nz6DFWnC3Eg==}
|
resolution: {integrity: sha512-DmC7MumePZuss1AigT4FaIbFPZFtZXdcWBhD7dF88CvsvQRVtOcMujtByWkkNJ6ZDp+IUHyXOtPQWr1iRjDOCQ==}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding-win32-x64-msvc@0.3.11:
|
/@rspack/binding-win32-x64-msvc@0.4.0:
|
||||||
resolution: {integrity: sha512-+KK96D9/lSq/d28gf+Fuki4/AF7TKoiMP8CcfXoUoQaNyThb7Kr43je16NNfCIbAQHPCEbdeevIkn7+yuSyIdw==}
|
resolution: {integrity: sha512-F3pAxz1GakFkyq8S+iPTqVkvIFnHG9te36wLW+tIzY4oC0vNPsEVunBp6NrYHzTaOf3aBZ+bvsLZyfvg+pKxqA==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@rspack/binding@0.3.11:
|
/@rspack/binding@0.4.0:
|
||||||
resolution: {integrity: sha512-0l46yjP7WCWkUngSKbyR2hYqH/AQ3ya0jT4rMPmQose9uKFZCqAd/otLDqKI4akRn6gDrESkBQXzfcvhyP9bhA==}
|
resolution: {integrity: sha512-SpjaySPGmyRnRHrQItl9W9NGE2WoHsUPnererZaLK+pfVgO92q9uoEoKl3EBNNI9uttG132SCz4cx1zXwN394w==}
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@rspack/binding-darwin-arm64': 0.3.11
|
'@rspack/binding-darwin-arm64': 0.4.0
|
||||||
'@rspack/binding-darwin-x64': 0.3.11
|
'@rspack/binding-darwin-x64': 0.4.0
|
||||||
'@rspack/binding-linux-arm64-gnu': 0.3.11
|
'@rspack/binding-linux-arm64-gnu': 0.4.0
|
||||||
'@rspack/binding-linux-arm64-musl': 0.3.11
|
'@rspack/binding-linux-arm64-musl': 0.4.0
|
||||||
'@rspack/binding-linux-x64-gnu': 0.3.11
|
'@rspack/binding-linux-x64-gnu': 0.4.0
|
||||||
'@rspack/binding-linux-x64-musl': 0.3.11
|
'@rspack/binding-linux-x64-musl': 0.4.0
|
||||||
'@rspack/binding-win32-arm64-msvc': 0.3.11
|
'@rspack/binding-win32-arm64-msvc': 0.4.0
|
||||||
'@rspack/binding-win32-ia32-msvc': 0.3.11
|
'@rspack/binding-win32-ia32-msvc': 0.4.0
|
||||||
'@rspack/binding-win32-x64-msvc': 0.3.11
|
'@rspack/binding-win32-x64-msvc': 0.4.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@rspack/core@0.3.11:
|
/@rspack/core@0.4.0:
|
||||||
resolution: {integrity: sha512-aEjCshlm1dXD5Wls2ksROEjpl5yVWVbd0BwkoRpDz27qr2bmAecnCwROjEWKZFoEZ10VHDrvSc8n/Q3mH3Erhg==}
|
resolution: {integrity: sha512-GY8lsCGRzj1mj5q1Ss5kjazpSisT/HJdXpIU730pG4Os6mE2sGYVUJ0ncYRv/DEBcL1c2dVr5vtMKTHlNYRlfg==}
|
||||||
|
engines: {node: '>=16.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rspack/binding': 0.3.11
|
'@rspack/binding': 0.4.0
|
||||||
'@swc/helpers': 0.5.1
|
'@swc/helpers': 0.5.1
|
||||||
browserslist: 4.21.5
|
browserslist: 4.21.5
|
||||||
compare-versions: 6.0.0-rc.1
|
compare-versions: 6.0.0-rc.1
|
||||||
|
|
@ -7964,21 +8056,21 @@ packages:
|
||||||
json-parse-even-better-errors: 3.0.0
|
json-parse-even-better-errors: 3.0.0
|
||||||
neo-async: 2.6.2
|
neo-async: 2.6.2
|
||||||
react-refresh: 0.14.0
|
react-refresh: 0.14.0
|
||||||
schema-utils: 4.0.0
|
|
||||||
tapable: 2.2.1
|
tapable: 2.2.1
|
||||||
terminal-link: 2.1.1
|
terminal-link: 2.1.1
|
||||||
watchpack: 2.4.0
|
watchpack: 2.4.0
|
||||||
webpack-sources: 3.2.3
|
webpack-sources: 3.2.3
|
||||||
zod: 3.21.4
|
zod: 3.21.4
|
||||||
zod-validation-error: 1.2.0(zod@3.21.4)
|
zod-validation-error: 1.2.0(zod@3.21.4)
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@rspack/dev-server@0.3.11(@rspack/core@0.3.11)(@swc/core@1.3.80)(esbuild@0.17.16)(react-refresh@0.14.0):
|
/@rspack/dev-server@0.4.0(@rspack/core@0.4.0)(@swc/core@1.3.80)(esbuild@0.17.16)(react-refresh@0.14.0):
|
||||||
resolution: {integrity: sha512-ZJSMf/ZZt3+9oBUa25c2fABU5s0zFAzG8g8SUYXrxTX96PzAZwjr/s/piA1NgegzpFN14ydYvL+aEjg48cC2yA==}
|
resolution: {integrity: sha512-qi70BKcGspjlNpufF+AOf5MHbEGnumMtVTtWzdw8I4xDWr2AguesrOEgACHMJx/EZks9vtbSqepf4anYglvsng==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@rspack/core': '*'
|
'@rspack/core': '*'
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rspack/core': 0.3.11
|
'@rspack/core': 0.4.0
|
||||||
'@rspack/plugin-react-refresh': 0.3.11(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0)
|
'@rspack/plugin-react-refresh': 0.4.0(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0)
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
connect-history-api-fallback: 2.0.0
|
connect-history-api-fallback: 2.0.0
|
||||||
express: 4.18.1
|
express: 4.18.1
|
||||||
|
|
@ -8004,15 +8096,15 @@ packages:
|
||||||
- webpack-cli
|
- webpack-cli
|
||||||
- webpack-hot-middleware
|
- webpack-hot-middleware
|
||||||
- webpack-plugin-serve
|
- webpack-plugin-serve
|
||||||
dev: false
|
dev: true
|
||||||
|
|
||||||
/@rspack/dev-server@0.3.11(@rspack/core@0.3.11)(@types/express@4.17.17)(esbuild@0.17.16)(react-refresh@0.14.0):
|
/@rspack/dev-server@0.4.0(@rspack/core@0.4.0)(@types/express@4.17.17)(esbuild@0.17.16)(react-refresh@0.14.0):
|
||||||
resolution: {integrity: sha512-ZJSMf/ZZt3+9oBUa25c2fABU5s0zFAzG8g8SUYXrxTX96PzAZwjr/s/piA1NgegzpFN14ydYvL+aEjg48cC2yA==}
|
resolution: {integrity: sha512-qi70BKcGspjlNpufF+AOf5MHbEGnumMtVTtWzdw8I4xDWr2AguesrOEgACHMJx/EZks9vtbSqepf4anYglvsng==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@rspack/core': '*'
|
'@rspack/core': '*'
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rspack/core': 0.3.11
|
'@rspack/core': 0.4.0
|
||||||
'@rspack/plugin-react-refresh': 0.3.11(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0)
|
'@rspack/plugin-react-refresh': 0.4.0(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0)
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
connect-history-api-fallback: 2.0.0
|
connect-history-api-fallback: 2.0.0
|
||||||
express: 4.18.1
|
express: 4.18.1
|
||||||
|
|
@ -8040,8 +8132,8 @@ packages:
|
||||||
- webpack-plugin-serve
|
- webpack-plugin-serve
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@rspack/plugin-react-refresh@0.3.11(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0):
|
/@rspack/plugin-react-refresh@0.4.0(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0):
|
||||||
resolution: {integrity: sha512-S5LjsV4HeZ5sCV4168QXCiuZL1dnwiLtpykB+1RAIQH+rBLDZebiflwgWHKD0B8oxYYiqGeVbQ5JvGWn4jyZVg==}
|
resolution: {integrity: sha512-yo2FXVj6P2HrBGIxBqqRJQzAdG6CrL0WFE+kQk/Uz+7Ct09nPvl7zRdHE1BUXHnSXIjrMJj4fRmd7hXsmtTHXQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react-refresh: '>=0.10.0 <1.0.0'
|
react-refresh: '>=0.10.0 <1.0.0'
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
|
|
@ -8050,7 +8142,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0)
|
'@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.13.1)(webpack@5.76.0)
|
||||||
react-refresh: 0.14.0
|
react-refresh: 0.14.0
|
||||||
schema-utils: 4.0.0
|
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/webpack'
|
- '@types/webpack'
|
||||||
- sockjs-client
|
- sockjs-client
|
||||||
|
|
@ -8059,6 +8150,27 @@ packages:
|
||||||
- webpack-dev-server
|
- webpack-dev-server
|
||||||
- webpack-hot-middleware
|
- webpack-hot-middleware
|
||||||
- webpack-plugin-serve
|
- webpack-plugin-serve
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@rspack/plugin-react-refresh@0.4.0(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2):
|
||||||
|
resolution: {integrity: sha512-yo2FXVj6P2HrBGIxBqqRJQzAdG6CrL0WFE+kQk/Uz+7Ct09nPvl7zRdHE1BUXHnSXIjrMJj4fRmd7hXsmtTHXQ==}
|
||||||
|
peerDependencies:
|
||||||
|
react-refresh: '>=0.10.0 <1.0.0'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
react-refresh:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
'@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.15.0)(webpack@5.88.2)
|
||||||
|
react-refresh: 0.14.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@types/webpack'
|
||||||
|
- sockjs-client
|
||||||
|
- type-fest
|
||||||
|
- webpack
|
||||||
|
- webpack-dev-server
|
||||||
|
- webpack-hot-middleware
|
||||||
|
- webpack-plugin-serve
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@sideway/address@4.1.4:
|
/@sideway/address@4.1.4:
|
||||||
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
|
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
|
||||||
|
|
@ -8779,6 +8891,7 @@ packages:
|
||||||
|
|
||||||
/@types/estree@0.0.51:
|
/@types/estree@0.0.51:
|
||||||
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
|
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/estree@1.0.0:
|
/@types/estree@1.0.0:
|
||||||
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
|
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
|
||||||
|
|
@ -9652,6 +9765,7 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@webassemblyjs/helper-numbers': 1.11.1
|
'@webassemblyjs/helper-numbers': 1.11.1
|
||||||
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
|
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/ast@1.11.5:
|
/@webassemblyjs/ast@1.11.5:
|
||||||
resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==}
|
resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==}
|
||||||
|
|
@ -9661,18 +9775,21 @@ packages:
|
||||||
|
|
||||||
/@webassemblyjs/floating-point-hex-parser@1.11.1:
|
/@webassemblyjs/floating-point-hex-parser@1.11.1:
|
||||||
resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==}
|
resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/floating-point-hex-parser@1.11.5:
|
/@webassemblyjs/floating-point-hex-parser@1.11.5:
|
||||||
resolution: {integrity: sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==}
|
resolution: {integrity: sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==}
|
||||||
|
|
||||||
/@webassemblyjs/helper-api-error@1.11.1:
|
/@webassemblyjs/helper-api-error@1.11.1:
|
||||||
resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==}
|
resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/helper-api-error@1.11.5:
|
/@webassemblyjs/helper-api-error@1.11.5:
|
||||||
resolution: {integrity: sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==}
|
resolution: {integrity: sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==}
|
||||||
|
|
||||||
/@webassemblyjs/helper-buffer@1.11.1:
|
/@webassemblyjs/helper-buffer@1.11.1:
|
||||||
resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==}
|
resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/helper-buffer@1.11.5:
|
/@webassemblyjs/helper-buffer@1.11.5:
|
||||||
resolution: {integrity: sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==}
|
resolution: {integrity: sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==}
|
||||||
|
|
@ -9683,6 +9800,7 @@ packages:
|
||||||
'@webassemblyjs/floating-point-hex-parser': 1.11.1
|
'@webassemblyjs/floating-point-hex-parser': 1.11.1
|
||||||
'@webassemblyjs/helper-api-error': 1.11.1
|
'@webassemblyjs/helper-api-error': 1.11.1
|
||||||
'@xtuc/long': 4.2.2
|
'@xtuc/long': 4.2.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/helper-numbers@1.11.5:
|
/@webassemblyjs/helper-numbers@1.11.5:
|
||||||
resolution: {integrity: sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==}
|
resolution: {integrity: sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==}
|
||||||
|
|
@ -9693,6 +9811,7 @@ packages:
|
||||||
|
|
||||||
/@webassemblyjs/helper-wasm-bytecode@1.11.1:
|
/@webassemblyjs/helper-wasm-bytecode@1.11.1:
|
||||||
resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==}
|
resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/helper-wasm-bytecode@1.11.5:
|
/@webassemblyjs/helper-wasm-bytecode@1.11.5:
|
||||||
resolution: {integrity: sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==}
|
resolution: {integrity: sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==}
|
||||||
|
|
@ -9704,6 +9823,7 @@ packages:
|
||||||
'@webassemblyjs/helper-buffer': 1.11.1
|
'@webassemblyjs/helper-buffer': 1.11.1
|
||||||
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
|
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
|
||||||
'@webassemblyjs/wasm-gen': 1.11.1
|
'@webassemblyjs/wasm-gen': 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/helper-wasm-section@1.11.5:
|
/@webassemblyjs/helper-wasm-section@1.11.5:
|
||||||
resolution: {integrity: sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==}
|
resolution: {integrity: sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==}
|
||||||
|
|
@ -9717,6 +9837,7 @@ packages:
|
||||||
resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==}
|
resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@xtuc/ieee754': 1.2.0
|
'@xtuc/ieee754': 1.2.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/ieee754@1.11.5:
|
/@webassemblyjs/ieee754@1.11.5:
|
||||||
resolution: {integrity: sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==}
|
resolution: {integrity: sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==}
|
||||||
|
|
@ -9727,6 +9848,7 @@ packages:
|
||||||
resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==}
|
resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@xtuc/long': 4.2.2
|
'@xtuc/long': 4.2.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/leb128@1.11.5:
|
/@webassemblyjs/leb128@1.11.5:
|
||||||
resolution: {integrity: sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==}
|
resolution: {integrity: sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==}
|
||||||
|
|
@ -9735,6 +9857,7 @@ packages:
|
||||||
|
|
||||||
/@webassemblyjs/utf8@1.11.1:
|
/@webassemblyjs/utf8@1.11.1:
|
||||||
resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==}
|
resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/utf8@1.11.5:
|
/@webassemblyjs/utf8@1.11.5:
|
||||||
resolution: {integrity: sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==}
|
resolution: {integrity: sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==}
|
||||||
|
|
@ -9750,6 +9873,7 @@ packages:
|
||||||
'@webassemblyjs/wasm-opt': 1.11.1
|
'@webassemblyjs/wasm-opt': 1.11.1
|
||||||
'@webassemblyjs/wasm-parser': 1.11.1
|
'@webassemblyjs/wasm-parser': 1.11.1
|
||||||
'@webassemblyjs/wast-printer': 1.11.1
|
'@webassemblyjs/wast-printer': 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/wasm-edit@1.11.5:
|
/@webassemblyjs/wasm-edit@1.11.5:
|
||||||
resolution: {integrity: sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==}
|
resolution: {integrity: sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==}
|
||||||
|
|
@ -9771,6 +9895,7 @@ packages:
|
||||||
'@webassemblyjs/ieee754': 1.11.1
|
'@webassemblyjs/ieee754': 1.11.1
|
||||||
'@webassemblyjs/leb128': 1.11.1
|
'@webassemblyjs/leb128': 1.11.1
|
||||||
'@webassemblyjs/utf8': 1.11.1
|
'@webassemblyjs/utf8': 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/wasm-gen@1.11.5:
|
/@webassemblyjs/wasm-gen@1.11.5:
|
||||||
resolution: {integrity: sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==}
|
resolution: {integrity: sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==}
|
||||||
|
|
@ -9788,6 +9913,7 @@ packages:
|
||||||
'@webassemblyjs/helper-buffer': 1.11.1
|
'@webassemblyjs/helper-buffer': 1.11.1
|
||||||
'@webassemblyjs/wasm-gen': 1.11.1
|
'@webassemblyjs/wasm-gen': 1.11.1
|
||||||
'@webassemblyjs/wasm-parser': 1.11.1
|
'@webassemblyjs/wasm-parser': 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/wasm-opt@1.11.5:
|
/@webassemblyjs/wasm-opt@1.11.5:
|
||||||
resolution: {integrity: sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==}
|
resolution: {integrity: sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==}
|
||||||
|
|
@ -9806,6 +9932,7 @@ packages:
|
||||||
'@webassemblyjs/ieee754': 1.11.1
|
'@webassemblyjs/ieee754': 1.11.1
|
||||||
'@webassemblyjs/leb128': 1.11.1
|
'@webassemblyjs/leb128': 1.11.1
|
||||||
'@webassemblyjs/utf8': 1.11.1
|
'@webassemblyjs/utf8': 1.11.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/wasm-parser@1.11.5:
|
/@webassemblyjs/wasm-parser@1.11.5:
|
||||||
resolution: {integrity: sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==}
|
resolution: {integrity: sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==}
|
||||||
|
|
@ -9822,6 +9949,7 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@webassemblyjs/ast': 1.11.1
|
'@webassemblyjs/ast': 1.11.1
|
||||||
'@xtuc/long': 4.2.2
|
'@xtuc/long': 4.2.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@webassemblyjs/wast-printer@1.11.5:
|
/@webassemblyjs/wast-printer@1.11.5:
|
||||||
resolution: {integrity: sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==}
|
resolution: {integrity: sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==}
|
||||||
|
|
@ -10810,6 +10938,7 @@ packages:
|
||||||
unpipe: 1.0.0
|
unpipe: 1.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
/body-parser@1.20.1:
|
/body-parser@1.20.1:
|
||||||
resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
|
resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
|
||||||
|
|
@ -11560,11 +11689,6 @@ packages:
|
||||||
write-file-atomic: 3.0.3
|
write-file-atomic: 3.0.3
|
||||||
xdg-basedir: 4.0.0
|
xdg-basedir: 4.0.0
|
||||||
|
|
||||||
/connect-history-api-fallback@1.6.0:
|
|
||||||
resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==}
|
|
||||||
engines: {node: '>=0.8'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/connect-history-api-fallback@2.0.0:
|
/connect-history-api-fallback@2.0.0:
|
||||||
resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
|
resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
|
||||||
engines: {node: '>=0.8'}
|
engines: {node: '>=0.8'}
|
||||||
|
|
@ -12852,6 +12976,7 @@ packages:
|
||||||
|
|
||||||
/es-module-lexer@0.9.3:
|
/es-module-lexer@0.9.3:
|
||||||
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
|
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/es-module-lexer@1.2.0:
|
/es-module-lexer@1.2.0:
|
||||||
resolution: {integrity: sha512-2BMfqBDeVCcOlLaL1ZAfp+D868SczNpKArrTM3dhpd7dK/OVlogzY15qpUngt+LMTq5UC/csb9vVQAgupucSbA==}
|
resolution: {integrity: sha512-2BMfqBDeVCcOlLaL1ZAfp+D868SczNpKArrTM3dhpd7dK/OVlogzY15qpUngt+LMTq5UC/csb9vVQAgupucSbA==}
|
||||||
|
|
@ -13820,6 +13945,7 @@ packages:
|
||||||
vary: 1.1.2
|
vary: 1.1.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
/express@4.18.2:
|
/express@4.18.2:
|
||||||
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
|
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
|
||||||
|
|
@ -14868,7 +14994,7 @@ packages:
|
||||||
he: 1.2.0
|
he: 1.2.0
|
||||||
param-case: 3.0.4
|
param-case: 3.0.4
|
||||||
relateurl: 0.2.7
|
relateurl: 0.2.7
|
||||||
terser: 5.16.5
|
terser: 5.14.2
|
||||||
|
|
||||||
/html-minifier@4.0.0:
|
/html-minifier@4.0.0:
|
||||||
resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==}
|
resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==}
|
||||||
|
|
@ -19322,6 +19448,7 @@ packages:
|
||||||
engines: {node: '>=0.6'}
|
engines: {node: '>=0.6'}
|
||||||
dependencies:
|
dependencies:
|
||||||
side-channel: 1.0.4
|
side-channel: 1.0.4
|
||||||
|
dev: true
|
||||||
|
|
||||||
/qs@6.11.0:
|
/qs@6.11.0:
|
||||||
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
|
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
|
||||||
|
|
@ -22377,6 +22504,7 @@ packages:
|
||||||
serialize-javascript: 6.0.1
|
serialize-javascript: 6.0.1
|
||||||
terser: 5.14.2
|
terser: 5.14.2
|
||||||
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
||||||
|
dev: true
|
||||||
|
|
||||||
/terser-webpack-plugin@5.3.5(@swc/core@1.3.80)(esbuild@0.17.16)(webpack@5.88.2):
|
/terser-webpack-plugin@5.3.5(@swc/core@1.3.80)(esbuild@0.17.16)(webpack@5.88.2):
|
||||||
resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==}
|
resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==}
|
||||||
|
|
@ -22449,7 +22577,7 @@ packages:
|
||||||
jest-worker: 27.5.1
|
jest-worker: 27.5.1
|
||||||
schema-utils: 3.3.0
|
schema-utils: 3.3.0
|
||||||
serialize-javascript: 6.0.1
|
serialize-javascript: 6.0.1
|
||||||
terser: 5.16.5
|
terser: 5.14.2
|
||||||
webpack: 5.88.2
|
webpack: 5.88.2
|
||||||
|
|
||||||
/terser-webpack-plugin@5.3.7(@swc/core@1.3.80)(esbuild@0.17.16)(webpack@5.88.2):
|
/terser-webpack-plugin@5.3.7(@swc/core@1.3.80)(esbuild@0.17.16)(webpack@5.88.2):
|
||||||
|
|
@ -23827,6 +23955,7 @@ packages:
|
||||||
range-parser: 1.2.1
|
range-parser: 1.2.1
|
||||||
schema-utils: 4.0.0
|
schema-utils: 4.0.0
|
||||||
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
||||||
|
dev: true
|
||||||
|
|
||||||
/webpack-dev-middleware@5.3.3(webpack@5.86.0):
|
/webpack-dev-middleware@5.3.3(webpack@5.86.0):
|
||||||
resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==}
|
resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==}
|
||||||
|
|
@ -23870,6 +23999,7 @@ packages:
|
||||||
range-parser: 1.2.1
|
range-parser: 1.2.1
|
||||||
schema-utils: 4.0.0
|
schema-utils: 4.0.0
|
||||||
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
webpack: 5.76.0(@swc/core@1.3.80)(esbuild@0.17.16)
|
||||||
|
dev: true
|
||||||
|
|
||||||
/webpack-dev-server@4.13.1(webpack@5.76.0):
|
/webpack-dev-server@4.13.1(webpack@5.76.0):
|
||||||
resolution: {integrity: sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==}
|
resolution: {integrity: sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==}
|
||||||
|
|
@ -23920,6 +24050,7 @@ packages:
|
||||||
- debug
|
- debug
|
||||||
- supports-color
|
- supports-color
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
dev: true
|
||||||
|
|
||||||
/webpack-dev-server@4.15.0(debug@4.3.4)(webpack@5.88.2):
|
/webpack-dev-server@4.15.0(debug@4.3.4)(webpack@5.88.2):
|
||||||
resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==}
|
resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==}
|
||||||
|
|
@ -24138,6 +24269,7 @@ packages:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
- esbuild
|
- esbuild
|
||||||
- uglify-js
|
- uglify-js
|
||||||
|
dev: true
|
||||||
|
|
||||||
/webpack@5.76.0(esbuild@0.17.16):
|
/webpack@5.76.0(esbuild@0.17.16):
|
||||||
resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==}
|
resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==}
|
||||||
|
|
@ -24583,6 +24715,7 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
utf-8-validate:
|
utf-8-validate:
|
||||||
optional: true
|
optional: true
|
||||||
|
dev: true
|
||||||
|
|
||||||
/xdg-basedir@4.0.0:
|
/xdg-basedir@4.0.0:
|
||||||
resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
|
resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue