code review + esbuild for faster bundle (1.7x boost)

This commit is contained in:
Rachel Powers
2024-04-12 12:56:44 -07:00
parent bc51a8d794
commit fac6616b2c
13 changed files with 598 additions and 149 deletions

View File

@@ -25,7 +25,7 @@ fn write_repr_enum<'a, T: std::io::Write, I, P>(
use_phf: bool,
) where
P: Display + FromStr + 'a,
I: Iterator<Item = (&'a String, &'a EnumVariant<P>)>,
I: IntoIterator<Item = &'a (String, EnumVariant<P>)>,
{
let additional_strum = if use_phf { "#[strum(use_phf)]\n" } else { "" };
write!(
@@ -156,25 +156,11 @@ fn write_logictypes() {
}
}
write_repr_enum(
&mut writer,
"LogicType",
logictypes
.iter()
.map(|(key, variant)| (key, variant)),
true,
);
write_repr_enum(&mut writer, "LogicType", &logictypes, true);
println!("cargo:rerun-if-changed=data/logictypes.txt");
write_repr_enum(
&mut writer,
"SlotLogicType",
slotlogictypes
.iter()
.map(|(key, variant)| (key, variant)),
true,
);
write_repr_enum(&mut writer, "SlotLogicType", &slotlogictypes, true);
println!("cargo:rerun-if-changed=data/slotlogictypes.txt");
}
@@ -210,14 +196,7 @@ fn write_enums() {
));
}
write_repr_enum(
&mut writer,
"LogicEnums",
enums_map
.iter()
.map(|(key, variant)| (key, variant)),
true,
);
write_repr_enum(&mut writer, "LogicEnums", &enums_map, true);
println!("cargo:rerun-if-changed=data/enums.txt");
}
@@ -305,21 +284,11 @@ fn write_modes() {
}
}
write_repr_enum(
&mut writer,
"BatchMode",
batchmodes.iter().map(|(key, variant)| (key, variant)),
false,
);
write_repr_enum(&mut writer, "BatchMode", &batchmodes, false);
println!("cargo:rerun-if-changed=data/batchmodes.txt");
write_repr_enum(
&mut writer,
"ReagentMode",
reagentmodes.iter().map(|(key, variant)| (key, variant)),
false,
);
write_repr_enum(&mut writer, "ReagentMode", &reagentmodes, false);
println!("cargo:rerun-if-changed=data/reagentmodes.txt");
}

View File

@@ -32,83 +32,83 @@ impl Error for LineError {}
#[derive(Debug, Error, Clone, Serialize, Deserialize)]
pub enum ICError {
#[error("Error Compiling Code: {0}")]
#[error("error compiling code: {0}")]
ParseError(#[from] ParseError),
#[error("Duplicate label {0}")]
#[error("duplicate label {0}")]
DuplicateLabel(String),
#[error("Instruction Pointer out of range: '{0}'")]
#[error("instruction pointer out of range: '{0}'")]
InstructionPointerOutOfRange(u32),
#[error("Register Pointer out of range: '{0}'")]
#[error("register pointer out of range: '{0}'")]
RegisterIndexOutOfRange(f64),
#[error("Device Pointer out of range: '{0}'")]
#[error("device pointer out of range: '{0}'")]
DeviceIndexOutOfRange(f64),
#[error("Stack index out of range: '{0}'")]
#[error("stack index out of range: '{0}'")]
StackIndexOutOfRange(f64),
#[error("slot index out of range: '{0}'")]
SlotIndexOutOfRange(f64),
#[error("pin index {0} out of range 0-6")]
PinIndexOutOfRange(usize),
#[error("Connection index {0} out of range {1}")]
#[error("connection index {0} out of range {1}")]
ConnectionIndexOutOfRange(usize, usize),
#[error("Unknown device ID '{0}'")]
#[error("unknown device ID '{0}'")]
UnknownDeviceID(f64),
#[error("Too few operands!: provide: '{provided}', desired: '{desired}'")]
#[error("too few operands!: provide: '{provided}', desired: '{desired}'")]
TooFewOperands { provided: u32, desired: u32 },
#[error("Too many operands!: provide: '{provided}', desired: '{desired}'")]
#[error("too many operands!: provide: '{provided}', desired: '{desired}'")]
TooManyOperands { provided: u32, desired: u32 },
#[error("Incorrect Operand Type for instruction `{inst}` operand {index}, not a {desired} ")]
#[error("incorrect operand type for instruction `{inst}` operand {index}, not a {desired} ")]
IncorrectOperandType {
inst: grammar::InstructionOp,
index: u32,
desired: String,
},
#[error("Unknown identifier {0}")]
#[error("unknown identifier {0}")]
UnknownIdentifier(String),
#[error("Device Not Set")]
#[error("device Not Set")]
DeviceNotSet,
#[error("Shift Underflow i64(signed long)")]
#[error("shift Underflow i64(signed long)")]
ShiftUnderflowI64,
#[error("Shift Overflow i64(signed long)")]
#[error("shift Overflow i64(signed long)")]
ShiftOverflowI64,
#[error("Shift Underflow i32(signed int)")]
#[error("shift underflow i32(signed int)")]
ShiftUnderflowI32,
#[error("Shift Overflow i32(signed int)")]
#[error("shift overflow i32(signed int)")]
ShiftOverflowI32,
#[error("Stack Underflow")]
#[error("stack underflow")]
StackUnderflow,
#[error("Stack Overflow")]
#[error("stack overflow")]
StackOverflow,
#[error("Duplicate Define '{0}'")]
#[error("duplicate define '{0}'")]
DuplicateDefine(String),
#[error("Read Only field '{0}'")]
#[error("read only field '{0}'")]
ReadOnlyField(String),
#[error("Write Only field '{0}'")]
#[error("write only field '{0}'")]
WriteOnlyField(String),
#[error("Device Has No Field '{0}'")]
#[error("device has no field '{0}'")]
DeviceHasNoField(String),
#[error("Device has not IC")]
#[error("device has not ic")]
DeviceHasNoIC,
#[error("Unknown Device '{0}'")]
UnknownDeviceId(f64),
#[error("Unknown Logic Type '{0}'")]
#[error("unknown device '{0}'")]
unknownDeviceId(f64),
#[error("unknown logic type '{0}'")]
UnknownLogicType(f64),
#[error("Unknown Slot Logic Type '{0}'")]
#[error("unknown slot logic type '{0}'")]
UnknownSlotLogicType(f64),
#[error("Unknown Batch Mode '{0}'")]
#[error("unknown batch mode '{0}'")]
UnknownBatchMode(f64),
#[error("Unknown Reagent Mode '{0}'")]
#[error("unknown reagent mode '{0}'")]
UnknownReagentMode(f64),
#[error("Type Value Not Known")]
#[error("type value not known")]
TypeValueNotKnown,
#[error("Empty Device List")]
#[error("empty device list")]
EmptyDeviceList,
#[error("Connection specifier missing")]
#[error("connection specifier missing")]
MissingConnectionSpecifier,
#[error("No data network on connection '{0}'")]
#[error("no data network on connection '{0}'")]
NotDataConnection(usize),
#[error("Network not connected on connection '{0}'")]
#[error("network not connected on connection '{0}'")]
NetworkNotConnected(usize),
#[error("Bad Network Id '{0}'")]
#[error("bad network Id '{0}'")]
BadNetworkId(u32),
}

View File

@@ -18,19 +18,19 @@ use thiserror::Error;
#[derive(Error, Debug, Serialize, Deserialize)]
pub enum VMError {
#[error("Device with id '{0}' does not exist")]
#[error("device with id '{0}' does not exist")]
UnknownId(u16),
#[error("IC with id '{0}' does not exist")]
#[error("ic with id '{0}' does not exist")]
UnknownIcId(u16),
#[error("Device with id '{0}' does not have a IC Slot")]
#[error("device with id '{0}' does not have a ic slot")]
NoIC(u16),
#[error("IC encountered an error: {0}")]
#[error("ic encountered an error: {0}")]
ICError(#[from] ICError),
#[error("IC encountered an error: {0}")]
#[error("ic encountered an error: {0}")]
LineError(#[from] LineError),
#[error("Invalid network ID {0}")]
#[error("invalid network id {0}")]
InvalidNetwork(u16),
#[error("Device {0} not visible to device {1} (not on the same networks)")]
#[error("device {0} not visible to device {1} (not on the same networks)")]
DeviceNotVisible(u16, u16),
}
@@ -867,7 +867,7 @@ impl VM {
for conn in device_ref.connections.iter_mut() {
if let Connection::CableNetwork(conn) = conn {
if *conn == Some(network_id) {
if conn.is_some_and(|id| id == network_id) {
*conn = None;
}
}

View File

@@ -1,8 +1,21 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# About\n",
"\n",
"This is a notebook for finding and copying Textures form extracted game assets to named images for the item database. \n",
"\n",
"## Why not a script?\n",
"\n",
"because depending on what extractor you use and the whims of the developers all this could use some serious tweaking every run. The notebook lets you run things in stages and inspect what your working with."
]
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -16,32 +29,58 @@
"db = database[\"db\"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Item Database Pulled in"
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from pathlib import Path \n",
"\n",
"# Location were https://github.com/SeriousCache/UABE has extracted all Texture2D assets\n",
"# Change as necessary\n",
"datapath = Path(r\"E:\\Games\\SteamLibrary\\steamapps\\common\\Stationeers\\Stationpedia\\exported_textures\")\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Change this Datapath to point to the extracted textures"
]
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"\n",
"# Pull in a list of all found textures\n",
"images = list(datapath.glob(\"*.png\"))\n",
"names = [image.name for image in images]\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Finding matches\n",
"\n",
"This next section loops through all the item names and collects all the candidate textures. Then, through a series of rules, attempts to narrow down the choices to 1 texture."
]
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -143,9 +182,16 @@
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some Items end up with no match but these items are often subtypes of an item that will have a match"
]
},
{
"cell_type": "code",
"execution_count": 46,
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -157,9 +203,16 @@
" image_candidates[other] = image_candidates[name]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prepare out List of file copies. at this point a few items will never have a match. and one or two will have two choices but those choices will be arbitrary."
]
},
{
"cell_type": "code",
"execution_count": 47,
"execution_count": 6,
"metadata": {},
"outputs": [
{
@@ -201,30 +254,43 @@
},
{
"cell_type": "code",
"execution_count": 48,
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"|████████████████████████████████████████| 1223/1223 [100%] in 0.8s (1494.22/s) \n"
"1223 of 1223 | 100.00% \n",
"Done\n"
]
}
],
"source": [
"import shutil\n",
"from alive_progress import alive_bar\n",
"\n",
"destpath = Path(\"img/stationpedia\")\n",
"total_files = len(to_copy)\n",
"\n",
"with alive_bar(total_files) as bar:\n",
" for name, file in to_copy:\n",
" source = datapath / file\n",
" dest = destpath / f\"{name}.png\"\n",
" shutil.copy(source, dest)\n",
" bar()\n"
"count = 0\n",
"print ( f\"{count} of {total_files} | { count / total_files * 100}\", end=\"\\r\")\n",
"for name, file in to_copy:\n",
" source = datapath / file\n",
" dest = destpath / f\"{name}.png\"\n",
" shutil.copy(source, dest)\n",
" count += 1\n",
" print ( f\"{count} of {total_files} | { (count / total_files) * 100 :.2f}% \", end=\"\\r\")\n",
"print()\n",
"print(\"Done\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {

View File

@@ -32,7 +32,10 @@
"copy-webpack-plugin": "^12.0.2",
"css-loader": "^6.10.0",
"css-minimizer-webpack-plugin": "^6.0.0",
"esbuild": "^0.20.2",
"esbuild-loader": "^4.1.0",
"extract-loader": "^5.1.0",
"fork-ts-checker-webpack-plugin": "^9.0.2",
"hello-wasm-pack": "^0.1.0",
"html-webpack-plugin": "^5.6.0",
"image-minimizer-webpack-plugin": "^4.0.0",
@@ -47,6 +50,7 @@
"sass": "^1.72.0",
"sass-loader": "^14.1.1",
"style-loader": "^3.3.4",
"thread-loader": "^4.0.2",
"ts-lit-plugin": "^2.0.2",
"ts-loader": "^9.5.1",
"typescript": "^5.4.3",

446
www/pnpm-lock.yaml generated
View File

@@ -84,10 +84,19 @@ devDependencies:
version: 6.10.0(webpack@5.91.0)
css-minimizer-webpack-plugin:
specifier: ^6.0.0
version: 6.0.0(webpack@5.91.0)
version: 6.0.0(esbuild@0.20.2)(webpack@5.91.0)
esbuild:
specifier: ^0.20.2
version: 0.20.2
esbuild-loader:
specifier: ^4.1.0
version: 4.1.0(webpack@5.91.0)
extract-loader:
specifier: ^5.1.0
version: 5.1.0
fork-ts-checker-webpack-plugin:
specifier: ^9.0.2
version: 9.0.2(typescript@5.4.3)(webpack@5.91.0)
hello-wasm-pack:
specifier: ^0.1.0
version: 0.1.0
@@ -130,6 +139,9 @@ devDependencies:
style-loader:
specifier: ^3.3.4
version: 3.3.4(webpack@5.91.0)
thread-loader:
specifier: ^4.0.2
version: 4.0.2(webpack@5.91.0)
ts-lit-plugin:
specifier: ^2.0.2
version: 2.0.2
@@ -144,7 +156,7 @@ devDependencies:
version: 0.9.0
webpack:
specifier: ^5.91.0
version: 5.91.0(webpack-cli@5.1.4)
version: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-cli:
specifier: ^5.1.4
version: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0)
@@ -198,6 +210,213 @@ packages:
resolution: {integrity: sha512-Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw==}
dev: true
/@esbuild/aix-ppc64@0.20.2:
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-arm64@0.20.2:
resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-arm@0.20.2:
resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-x64@0.20.2:
resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-arm64@0.20.2:
resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-x64@0.20.2:
resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-arm64@0.20.2:
resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-x64@0.20.2:
resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm64@0.20.2:
resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm@0.20.2:
resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ia32@0.20.2:
resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-loong64@0.20.2:
resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-mips64el@0.20.2:
resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ppc64@0.20.2:
resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-riscv64@0.20.2:
resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-s390x@0.20.2:
resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-x64@0.20.2:
resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/netbsd-x64@0.20.2:
resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/openbsd-x64@0.20.2:
resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/sunos-x64@0.20.2:
resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-arm64@0.20.2:
resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-ia32@0.20.2:
resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-x64@0.20.2:
resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@floating-ui/core@1.6.0:
resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==}
dependencies:
@@ -739,7 +958,7 @@ packages:
webpack: 5.x.x
webpack-cli: 5.x.x
dependencies:
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0)
dev: true
@@ -750,7 +969,7 @@ packages:
webpack: 5.x.x
webpack-cli: 5.x.x
dependencies:
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0)
dev: true
@@ -765,7 +984,7 @@ packages:
webpack-dev-server:
optional: true
dependencies:
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0)
webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
dev: true
@@ -2137,7 +2356,7 @@ packages:
normalize-path: 3.0.0
schema-utils: 4.2.0
serialize-javascript: 6.0.2
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/core-js@2.6.12:
@@ -2149,6 +2368,22 @@ packages:
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
/cosmiconfig@8.3.6(typescript@5.4.3):
resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
engines: {node: '>=14'}
peerDependencies:
typescript: '>=4.9.5'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
typescript: 5.4.3
dev: true
/cosmiconfig@9.0.0(typescript@5.4.3):
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
engines: {node: '>=14'}
@@ -2266,10 +2501,10 @@ packages:
postcss-modules-values: 4.0.0(postcss@8.4.38)
postcss-value-parser: 4.2.0
semver: 7.6.0
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/css-minimizer-webpack-plugin@6.0.0(webpack@5.91.0):
/css-minimizer-webpack-plugin@6.0.0(esbuild@0.20.2)(webpack@5.91.0):
resolution: {integrity: sha512-BLpR9CCDkKvhO3i0oZQgad6v9pCxUuhSc5RT6iUEy9M8hBXi4TJb5vqF2GQ2deqYHmRi3O6IR9hgAZQWg0EBwA==}
engines: {node: '>= 18.12.0'}
peerDependencies:
@@ -2296,11 +2531,12 @@ packages:
dependencies:
'@jridgewell/trace-mapping': 0.3.25
cssnano: 6.1.2(postcss@8.4.38)
esbuild: 0.20.2
jest-worker: 29.7.0
postcss: 8.4.38
schema-utils: 4.2.0
serialize-javascript: 6.0.2
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/css-select@4.3.0:
@@ -2535,6 +2771,11 @@ packages:
strip-dirs: 2.1.0
dev: true
/deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
dev: true
/default-browser-id@5.0.0:
resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
engines: {node: '>=18'}
@@ -2833,6 +3074,49 @@ packages:
resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==}
dev: true
/esbuild-loader@4.1.0(webpack@5.91.0):
resolution: {integrity: sha512-543TtIvqbqouEMlOHg4xKoDQkmdImlwIpyAIgpUtDPvMuklU/c2k+Qt2O3VeDBgAwozxmlEbjOzV+F8CZ0g+Bw==}
peerDependencies:
webpack: ^4.40.0 || ^5.0.0
dependencies:
esbuild: 0.20.2
get-tsconfig: 4.7.3
loader-utils: 2.0.4
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-sources: 1.4.3
dev: true
/esbuild@0.20.2:
resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@esbuild/aix-ppc64': 0.20.2
'@esbuild/android-arm': 0.20.2
'@esbuild/android-arm64': 0.20.2
'@esbuild/android-x64': 0.20.2
'@esbuild/darwin-arm64': 0.20.2
'@esbuild/darwin-x64': 0.20.2
'@esbuild/freebsd-arm64': 0.20.2
'@esbuild/freebsd-x64': 0.20.2
'@esbuild/linux-arm': 0.20.2
'@esbuild/linux-arm64': 0.20.2
'@esbuild/linux-ia32': 0.20.2
'@esbuild/linux-loong64': 0.20.2
'@esbuild/linux-mips64el': 0.20.2
'@esbuild/linux-ppc64': 0.20.2
'@esbuild/linux-riscv64': 0.20.2
'@esbuild/linux-s390x': 0.20.2
'@esbuild/linux-x64': 0.20.2
'@esbuild/netbsd-x64': 0.20.2
'@esbuild/openbsd-x64': 0.20.2
'@esbuild/sunos-x64': 0.20.2
'@esbuild/win32-arm64': 0.20.2
'@esbuild/win32-ia32': 0.20.2
'@esbuild/win32-x64': 0.20.2
dev: true
/escalade@3.1.2:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
@@ -3206,6 +3490,29 @@ packages:
signal-exit: 4.1.0
dev: true
/fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.3)(webpack@5.91.0):
resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==}
engines: {node: '>=12.13.0', yarn: '>=1.0.0'}
peerDependencies:
typescript: '>3.6.0'
webpack: ^5.11.0
dependencies:
'@babel/code-frame': 7.24.2
chalk: 4.1.2
chokidar: 3.6.0
cosmiconfig: 8.3.6(typescript@5.4.3)
deepmerge: 4.3.1
fs-extra: 10.1.0
memfs: 3.5.3
minimatch: 3.1.2
node-abort-controller: 3.1.1
schema-utils: 3.3.0
semver: 7.6.0
tapable: 2.2.1
typescript: 5.4.3
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -3231,6 +3538,19 @@ packages:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
dev: true
/fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
dependencies:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.1
dev: true
/fs-monkey@1.0.5:
resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
dev: true
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -3299,6 +3619,12 @@ packages:
engines: {node: '>=10'}
dev: true
/get-tsconfig@4.7.3:
resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
dependencies:
resolve-pkg-maps: 1.0.0
dev: true
/gifsicle@5.3.0:
resolution: {integrity: sha512-FJTpgdj1Ow/FITB7SVza5HlzXa+/lqEY0tHQazAJbuAdvyJtkH4wIdsR2K414oaTwRXHFLLF+tYbipj+OpYg+Q==}
engines: {node: '>=10'}
@@ -3587,7 +3913,7 @@ packages:
lodash: 4.17.21
pretty-error: 4.0.0
tapable: 2.2.1
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/htmlhint@1.1.4:
@@ -3729,7 +4055,7 @@ packages:
imagemin: 8.0.1
schema-utils: 4.2.0
serialize-javascript: 6.0.2
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/imagemin-gifsicle@7.0.0:
@@ -4106,6 +4432,10 @@ packages:
resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
dev: true
/json-parse-better-errors@1.0.2:
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
dev: true
/json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
dev: true
@@ -4130,6 +4460,12 @@ packages:
minimist: 1.2.8
dev: true
/json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
dev: true
/jsonc-parser@1.0.3:
resolution: {integrity: sha512-hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g==}
dev: true
@@ -4138,6 +4474,14 @@ packages:
resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
dev: false
/jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
dev: true
/junk@3.1.0:
resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==}
engines: {node: '>=8'}
@@ -4210,7 +4554,7 @@ packages:
webpack: ^5.37.1
dependencies:
clean-css: 4.2.4
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/lit@3.1.2:
@@ -4246,6 +4590,15 @@ packages:
json5: 1.0.2
dev: true
/loader-utils@2.0.4:
resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
engines: {node: '>=8.9.0'}
dependencies:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 2.2.3
dev: true
/locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
@@ -4388,6 +4741,13 @@ packages:
engines: {node: '>= 0.6'}
dev: true
/memfs@3.5.3:
resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
engines: {node: '>= 4.0.0'}
dependencies:
fs-monkey: 1.0.5
dev: true
/memfs@4.8.1:
resolution: {integrity: sha512-7q/AdPzf2WpwPlPL4v1kE2KsJsHl7EF4+hAeVzlyanr2+YnR21NVn9mDqo+7DEaKDRsQy8nvxPlKH4WqMtiO0w==}
engines: {node: '>= 4.0.0'}
@@ -4487,7 +4847,7 @@ packages:
dependencies:
schema-utils: 4.2.0
tapable: 2.2.1
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/minimalistic-assert@1.0.1:
@@ -4571,6 +4931,10 @@ packages:
tslib: 2.6.2
dev: true
/node-abort-controller@3.1.1:
resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
dev: true
/node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -5087,7 +5451,7 @@ packages:
jiti: 1.21.0
postcss: 8.4.38
semver: 7.6.0
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
transitivePeerDependencies:
- typescript
dev: true
@@ -5647,6 +6011,10 @@ packages:
engines: {node: '>=8'}
dev: true
/resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
dev: true
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -5738,7 +6106,7 @@ packages:
dependencies:
neo-async: 2.6.2
sass: 1.72.0
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/sass@1.72.0:
@@ -6006,6 +6374,10 @@ packages:
is-plain-obj: 1.1.0
dev: true
/source-list-map@2.0.1:
resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==}
dev: true
/source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
@@ -6233,7 +6605,7 @@ packages:
peerDependencies:
webpack: ^5.0.0
dependencies:
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/stylehacks@6.1.1(postcss@8.4.38):
@@ -6336,7 +6708,7 @@ packages:
uuid: 3.4.0
dev: true
/terser-webpack-plugin@5.3.10(webpack@5.91.0):
/terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.91.0):
resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@@ -6353,11 +6725,12 @@ packages:
optional: true
dependencies:
'@jridgewell/trace-mapping': 0.3.25
esbuild: 0.20.2
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.2
terser: 5.30.0
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/terser@5.30.0:
@@ -6371,6 +6744,19 @@ packages:
source-map-support: 0.5.21
dev: true
/thread-loader@4.0.2(webpack@5.91.0):
resolution: {integrity: sha512-UOk/KBydsQjh4Ja5kocxDUzhv11KYptHN/h8gdSwo6/MBkYrWqQua6K2qwlpXnCXS9c/uLs8F/JF8rpveF0+fA==}
engines: {node: '>= 16.10.0'}
peerDependencies:
webpack: ^5.0.0
dependencies:
json-parse-better-errors: 1.0.2
loader-runner: 4.3.0
neo-async: 2.6.2
schema-utils: 4.2.0
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
dev: true
@@ -6455,7 +6841,7 @@ packages:
semver: 7.6.0
source-map: 0.7.4
typescript: 5.4.3
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/ts-simple-type@2.0.0-next.0:
@@ -6531,6 +6917,11 @@ packages:
engines: {node: '>=18'}
dev: true
/universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
dev: true
/unpipe@1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
@@ -6793,7 +7184,7 @@ packages:
import-local: 3.1.0
interpret: 3.1.1
rechoir: 0.8.0
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0)
webpack-merge: 5.10.0
dev: true
@@ -6813,7 +7204,7 @@ packages:
on-finished: 2.4.1
range-parser: 1.2.1
schema-utils: 4.2.0
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
dev: true
/webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0):
@@ -6857,7 +7248,7 @@ packages:
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
webpack: 5.91.0(webpack-cli@5.1.4)
webpack: 5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4)
webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0)
webpack-dev-middleware: 7.2.0(webpack@5.91.0)
ws: 8.16.0
@@ -6877,12 +7268,19 @@ packages:
wildcard: 2.0.1
dev: true
/webpack-sources@1.4.3:
resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
dependencies:
source-list-map: 2.0.1
source-map: 0.6.1
dev: true
/webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
dev: true
/webpack@5.91.0(webpack-cli@5.1.4):
/webpack@5.91.0(esbuild@0.20.2)(webpack-cli@5.1.4):
resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==}
engines: {node: '>=10.13.0'}
hasBin: true
@@ -6913,7 +7311,7 @@ packages:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
terser-webpack-plugin: 5.3.10(webpack@5.91.0)
terser-webpack-plugin: 5.3.10(esbuild@0.20.2)(webpack@5.91.0)
watchpack: 2.4.1
webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0)
webpack-sources: 3.2.3

View File

@@ -21,8 +21,6 @@ export async function setupLspWorker() {
}
export import Ace = ace.Ace;
export import EditSession = ace.Ace.EditSession;
export import Editor = ace.Ace.Editor;
import { Range } from "ace-builds";
export { ace, TextMode, Range, AceLanguageClient }

View File

@@ -1,8 +1,6 @@
import {
ace,
Ace,
Editor,
EditSession,
Range,
AceLanguageClient,
setupLspWorker,
@@ -45,7 +43,7 @@ export class IC10Editor extends BaseElement {
fontSize: number;
relativeLineNumbers: boolean;
};
sessions: Map<number, EditSession>;
sessions: Map<number, Ace.EditSession>;
@property({ type: Number })
accessor active_session: number = 0;
@@ -60,7 +58,7 @@ export class IC10Editor extends BaseElement {
editorDiv: HTMLElement;
editorContainerDiv: HTMLElement;
editorStatusbarDiv: HTMLElement;
editor: Editor;
editor: Ace.Editor;
statusBar: any;
snippetManager: any;
observer: ResizeObserver;
@@ -353,7 +351,7 @@ export class IC10Editor extends BaseElement {
name: "showSettingsMenu",
// description: "Show settings menu",
bindKey: { win: "Ctrl-,", mac: "Command-," },
exec: (_editor: Editor) => {
exec: (_editor: Ace.Editor) => {
that.settingDialog.show();
},
},
@@ -363,7 +361,7 @@ export class IC10Editor extends BaseElement {
win: "Ctrl-Alt-h",
mac: "Command-Alt-h",
},
exec: (_editor: Editor) => {
exec: (_editor: Ace.Editor) => {
that.kbShortcuts.show();
},
},
@@ -581,7 +579,7 @@ export class IC10Editor extends BaseElement {
return true;
}
bindSession(session_id: number, session?: EditSession) {
bindSession(session_id: number, session?: Ace.EditSession) {
if (session) {
session.on("change", () => {
var val = session.getValue();

View File

@@ -1,7 +1,7 @@
import { BaseElement, defaultCss } from "../components";
import { html, css, PropertyValueMap } from "lit";
import { customElement, property, query } from "lit/decorators.js";
import { ace, Editor } from "./ace";
import { ace, Ace } from "./ace";
import "@shoelace-style/shoelace/dist/components/drawer/drawer.js";
@@ -28,7 +28,7 @@ export class AceKeyboardShortcuts extends BaseElement {
`,
];
editor?: Editor;
editor?: Ace.Editor;
@query('.drawer') accessor drawer: SlDrawer;
constructor() {

View File

@@ -256,4 +256,4 @@ class VirtualMachine extends EventTarget {
}
}
export { VirtualMachine, DeviceDB };
export { VirtualMachine };

View File

@@ -8,10 +8,9 @@
"allowJs": true,
"moduleResolution": "bundler",
"resolveJsonModule": true,
"types": [
"@types/wicg-file-system-access",
"@types/ace"
],
"isolatedModules": true,
"experimentalDecorators": true,
"types": ["@types/wicg-file-system-access", "@types/ace"],
"plugins": [
{
"name": "ts-lit-plugin"
@@ -21,7 +20,5 @@
}
]
},
"include": [
"node_modules/lit-scss-loader/types.d.ts"
]
"include": ["src/**/*", "node_modules/lit-scss-loader/types.d.ts"]
}

View File

@@ -1,6 +1,7 @@
const CopyWebpackPlugin = require("copy-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const miniCssExtractPlugin = require("mini-css-extract-plugin");
const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");
const { SourceMap } = require("module");
const path = require("path");
@@ -20,6 +21,7 @@ module.exports = {
mode: "development",
devtool: "eval-source-map",
plugins: [
new ForkTsCheckerWebpackPlugin(),
new CopyWebpackPlugin({
patterns: [
"img/*.png",
@@ -41,9 +43,13 @@ module.exports = {
module: {
rules: [
{
test: /\.tsx?$/,
use: "ts-loader",
test: /\.[jt]sx?$/,
exclude: /node_modules/,
loader: "esbuild-loader",
options: {
target: "es2021",
tsconfig: "./tsconfig.json",
},
},
{
test: /\.(jpg|png|svg|gif)$/,
@@ -110,5 +116,5 @@ module.exports = {
},
optimization: {
chunkIds: "named",
}
},
};

View File

@@ -2,7 +2,9 @@ const CopyWebpackPlugin = require("copy-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const miniCssExtractPlugin = require("mini-css-extract-plugin");
const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");
const ImageMinimizerPlugin = require("image-minimizer-webpack-plugin");
const { EsbuildPlugin } = require("esbuild-loader");
const path = require("path");
@@ -16,6 +18,7 @@ module.exports = {
mode: "production",
devtool: "source-map",
plugins: [
new ForkTsCheckerWebpackPlugin(),
new CopyWebpackPlugin({
patterns: [
"img/*.png",
@@ -37,9 +40,13 @@ module.exports = {
module: {
rules: [
{
test: /\.tsx?$/,
use: "ts-loader",
test: /\.[jt]sx?$/,
exclude: /node_modules/,
loader: "esbuild-loader",
options: {
target: "es2021",
tsconfig: "./tsconfig.json",
},
},
{
test: /\.(jpg|png|svg|gif)$/,
@@ -56,6 +63,13 @@ module.exports = {
// translates CSS into CommonJS modules
loader: "css-loader",
},
{
loader: "esbuild-loader",
options: {
loader: 'css',
minify: true,
},
},
{
// Run postcss actions
loader: "postcss-loader",
@@ -75,9 +89,6 @@ module.exports = {
loader: "sass-loader",
},
],
// parser: {
// javascript : { importMeta: false }
// }
},
],
},
@@ -96,8 +107,10 @@ module.exports = {
},
optimization: {
minimizer: [
`...`,
new CssMinimizerPlugin(),
new EsbuildPlugin({
target: "es2021", // Syntax to transpile to (see options below for possible values)
css: true,
}),
new ImageMinimizerPlugin({
minimizer: {
implementation: ImageMinimizerPlugin.imageminMinify,