From 6695aa0fa0d3031c60efbd1f5a682fb2d0f8c68b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D1=97=D0=BB=20=D0=93=D1=80=D0=B8?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=27=D1=94=D0=B2?= Date: Sun, 6 Apr 2025 23:13:13 +0300 Subject: [PATCH] Remove most of "preloader" code (#60) Make the build process less complicated and reduce scatter of renderer source code. --- electron/src/config.ts | 1 + electron/src/index.ts | 3 +- eslint.config.js | 1 - gulp/html.js | 71 ++-------------- gulp/preloader/preloader.css | 125 +++------------------------- gulp/preloader/preloader.html | 21 ----- gulp/preloader/preloader.js | 151 ---------------------------------- gulp/tasks.js | 8 +- package.json | 1 - src/html/index.html | 26 ++++-- tsconfig.json | 1 - yarn.lock | 90 +------------------- 12 files changed, 47 insertions(+), 452 deletions(-) delete mode 100644 gulp/preloader/preloader.html delete mode 100644 gulp/preloader/preloader.js diff --git a/electron/src/config.ts b/electron/src/config.ts index 129dde77..4cbad037 100644 --- a/electron/src/config.ts +++ b/electron/src/config.ts @@ -3,6 +3,7 @@ import { app } from "electron"; const disabledFeatures = ["HardwareMediaKeyHandling"]; app.commandLine.appendSwitch("disable-features", disabledFeatures.join(",")); +export const defaultWindowTitle = "shapez CE"; app.setName("shapez-ce"); // This variable should be used to avoid situations where the app name diff --git a/electron/src/index.ts b/electron/src/index.ts index e4d67a8f..c2459977 100644 --- a/electron/src/index.ts +++ b/electron/src/index.ts @@ -1,6 +1,6 @@ import { BrowserWindow, app, shell } from "electron"; import path from "path"; -import { pageUrl, switches } from "./config.js"; +import { defaultWindowTitle, pageUrl, switches } from "./config.js"; import { FsJobHandler } from "./fsjob.js"; import { IpcHandler } from "./ipc.js"; import { ModsHandler } from "./mods.js"; @@ -35,6 +35,7 @@ function createWindow() { useContentSize: true, autoHideMenuBar: !switches.dev, show: false, + title: defaultWindowTitle, webPreferences: { preload: path.join(import.meta.dirname, "../preload.cjs"), }, diff --git a/eslint.config.js b/eslint.config.js index 23e61a01..6e5e2587 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -56,7 +56,6 @@ export default [ ...nodeConfig.map(config => ({ ...config, files: ["*.{ts,js}", "{gulp,electron}/**/*.{ts,js}"], - ignores: ["gulp/preloader/*.js"], })), ...runtimeConfig.map(config => ({ ...config, diff --git a/gulp/html.js b/gulp/html.js index 925afeca..e00c5d1b 100644 --- a/gulp/html.js +++ b/gulp/html.js @@ -1,29 +1,19 @@ -import { getRevision } from "./buildutils.js"; import fs from "fs"; -import path from "path/posix"; -import crypto from "crypto"; import gulp from "gulp"; +import path from "path/posix"; import { buildFolder } from "./config.js"; import gulpDom from "gulp-dom"; import gulpHtmlmin from "gulp-htmlmin"; -import gulpHtmlBeautify from "gulp-html-beautify"; import gulpRename from "gulp-rename"; -function computeIntegrityHash(fullPath, algorithm = "sha256") { - const file = fs.readFileSync(fullPath); - const hash = crypto.createHash(algorithm).update(file).digest("base64"); - return algorithm + "-" + hash; -} - /** * PROVIDES * - * html.dev - * html.prod + * html */ -const commitHash = getRevision(); -async function buildHtml({ integrity = true }) { + +async function buildHtml() { return gulp .src("../src/html/index.html") .pipe( @@ -31,52 +21,11 @@ async function buildHtml({ integrity = true }) { /** @this {Document} **/ function () { const document = this; - // Append css - const css = document.createElement("link"); - css.rel = "stylesheet"; - css.type = "text/css"; - css.media = "none"; - css.setAttribute("onload", "this.media='all'"); - css.href = "main.css"; - if (integrity) { - css.setAttribute( - "integrity", - computeIntegrityHash(path.join(buildFolder, "main.css")) - ); - } - document.head.appendChild(css); - - let fontCss = ` - @font-face { - font-family: "GameFont"; - font-style: normal; - font-weight: normal; - font-display: swap; - src: url('res/fonts/GameFont.woff2') format("woff2"); - } - `; - let loadingCss = - fontCss + fs.readFileSync(path.join("preloader", "preloader.css")).toString(); + let loadingCss = fs.readFileSync(path.join("preloader", "preloader.css")).toString(); const style = document.createElement("style"); - style.setAttribute("type", "text/css"); style.textContent = loadingCss; document.head.appendChild(style); - - let bodyContent = fs.readFileSync(path.join("preloader", "preloader.html")).toString(); - - const bundleScript = document.createElement("script"); - bundleScript.type = "text/javascript"; - bundleScript.src = "bundle.js"; - if (integrity) { - bundleScript.setAttribute( - "integrity", - computeIntegrityHash(path.join(buildFolder, "bundle.js")) - ); - } - document.head.appendChild(bundleScript); - - document.body.innerHTML = bodyContent; } ) ) @@ -93,16 +42,8 @@ async function buildHtml({ integrity = true }) { useShortDoctype: true, }) ) - .pipe(gulpHtmlBeautify()) .pipe(gulpRename("index.html")) .pipe(gulp.dest(buildFolder)); } -export const dev = () => - buildHtml({ - integrity: false, - }); -export const prod = () => - buildHtml({ - integrity: true, - }); +export default buildHtml; diff --git a/gulp/preloader/preloader.css b/gulp/preloader/preloader.css index 28b5b2cb..f05e248a 100644 --- a/gulp/preloader/preloader.css +++ b/gulp/preloader/preloader.css @@ -1,3 +1,11 @@ +@font-face { + font-family: "GameFont"; + font-style: normal; + font-weight: normal; + font-display: swap; + src: url("res/fonts/GameFont.woff2") format("woff2"); +} + * { margin: 0; padding: 0; @@ -8,9 +16,7 @@ html { position: fixed; - -ms-touch-action: pan-x, pan-y; touch-action: pan-x, pan-y; - -ms-content-zooming: none; top: 0; left: 0; bottom: 0; @@ -21,8 +27,6 @@ html { body { color: #555; user-select: none; - -moz-user-select: none; - -ms-user-select: none; background: inherit !important; text-transform: none; white-space: normal; @@ -62,8 +66,7 @@ body { right: 0; bottom: 0; justify-content: center; - justify-items: center; - align-items: center; + place-items: center; background: #d5d8de; grid-template-rows: 1fr 200px; grid-gap: 40px; @@ -72,7 +75,7 @@ body { } #ll_p * { - line-height: 1em; + line-height: 1; } #ll_loader { @@ -89,7 +92,7 @@ body { font-family: "GameFont", Arial, sans-serif; font-size: 24px; height: 30px; - line-height: 1.2em; + line-height: 1.2; } #ll_progressbar { @@ -131,62 +134,12 @@ body { min-width: 4%; } -#ll_progressbar > #ll_loadinglabel { - position: absolute; - z-index: 20; - top: 50%; - text-transform: uppercase; - border-radius: 7px; - left: 50%; - transform: translate(-50%, -50%); - font-size: 16px; - color: #33373f; -} - -@keyframes ShowStandaloneBannerAfterDelay { - 0% { - opacity: 0; - } - 95% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -#ll_standalone { - text-align: center; - color: #777a7f; - margin-top: 30px; - display: block; - font-size: 16px; - animation: ShowStandaloneBannerAfterDelay 60s linear; -} - -#ll_standalone a { - color: #39f; - margin-left: 5px; - font-weight: bold; -} - -#ll_logo { -} - #ll_logo > img { width: 40vw; max-width: 700px; min-width: 150px; } -#ll_loader > .ll_spinner { - width: 80px; - height: 80px; - display: inline-flex; - background: center center / contain no-repeat; - display: none; -} - #ll_preload_status { position: absolute; top: 40px; @@ -201,59 +154,3 @@ body { text-transform: uppercase; text-align: center; } - -#ll_preload_error { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 999999; - background: #d5d8de; - display: flex; - justify-content: center; - align-items: center; -} - -#ll_preload_error > .inner { - color: #fff; - font-family: Arial, "sans-serif"; - font-size: 15px; - padding: 0; - text-align: center; -} - -#ll_preload_error > .inner > .heading { - color: #ef5072; - margin-bottom: 40px; - font-size: 45px; -} - -#ll_preload_error > .inner > .content { - color: #55585f; - font-family: monospace; - text-align: left; - background-color: #fff; - padding: 20px; - border-radius: 10px; - - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); -} - -#ll_preload_error > .inner .discordLink { - color: #333; - margin-top: 20px; - margin-bottom: 20px; - font-family: Arial; -} - -#ll_preload_error > .inner .discordLink a { - color: #39f; -} -#ll_preload_error > .inner .discordLink strong { - font-weight: 900 !important; -} - -#ll_preload_error > .inner .source { - color: #777; -} diff --git a/gulp/preloader/preloader.html b/gulp/preloader/preloader.html deleted file mode 100644 index 48d3579c..00000000 --- a/gulp/preloader/preloader.html +++ /dev/null @@ -1,21 +0,0 @@ -
_
-
- -
- -
-
- -
Downloading Game
-
-
- Page does not load? Try the - Steam Version! -
-
-
diff --git a/gulp/preloader/preloader.js b/gulp/preloader/preloader.js deleted file mode 100644 index 553cd9c1..00000000 --- a/gulp/preloader/preloader.js +++ /dev/null @@ -1,151 +0,0 @@ -(function () { - var loadTimeout = null; - var callbackDone = false; - - // Catch load errors - - function errorHandler(event, source, lineno, colno, error) { - if (("" + event).indexOf("Script error.") >= 0) { - console.warn("Thirdparty script error:", event); - return; - } - - if (("" + event).indexOf("NS_ERROR_FAILURE") >= 0) { - console.warn("Firefox NS_ERROR_FAILURE error:", event); - return; - } - - if (("" + event).indexOf("Cannot read property 'postMessage' of null") >= 0) { - console.warn("Safari can not read post message error:", event); - return; - } - - if (("" + event).indexOf("Possible side-effect in debug-evaluate") >= 0) { - console.warn("Chrome debug-evaluate error:", event); - return; - } - - if (("" + source).indexOf("shapez.io") < 0) { - console.warn("Thirdparty error:", event); - return; - } - - console.error("👀 App Error:", event, source, lineno, colno, error); - var element = document.createElement("div"); - element.id = "ll_preload_error"; - - var inner = document.createElement("div"); - inner.classList.add("inner"); - element.appendChild(inner); - - var heading = document.createElement("h3"); - heading.classList.add("heading"); - heading.innerText = "Fatal Error"; - inner.appendChild(heading); - - var content = document.createElement("p"); - content.classList.add("content"); - content.innerText = error || (event && event.message) || event || "Unknown Error"; - inner.appendChild(content); - - var discordLink = document.createElement("p"); - discordLink.classList.add("discordLink"); - discordLink.innerHTML = - "Please report this error in the #bugs channel of the official discord!"; - - inner.appendChild(discordLink); - - if (source) { - var sourceElement = document.createElement("p"); - sourceElement.classList.add("source"); - sourceElement.innerText = source + ":" + lineno + ":" + colno; - inner.appendChild(sourceElement); - } - - document.documentElement.appendChild(element); - - window.APP_ERROR_OCCURED = true; - } - - window.onerror = errorHandler; - - function expectJsParsed() { - if (!callbackDone) { - console.error("👀 Got no core callback"); - throw new Error("Core thread failed to respond within time."); - } - } - - function onJsLoaded() { - console.log("👀 Core loaded at", Math.floor(performance.now()), "ms"); - loadTimeout = setTimeout(expectJsParsed, 120000); - window.removeEventListener("unhandledrejection", errorHandler); - } - - window.coreThreadLoadedCb = function () { - console.log("👀 Core responded at", Math.floor(performance.now()), "ms"); - clearTimeout(loadTimeout); - loadTimeout = null; - callbackDone = true; - }; - - function progressHandler(progress) { - var progressElement = document.querySelector("#ll_preload_status"); - if (progressElement) { - progressElement.innerText = "Downloading Bundle (" + Math.round(progress * 1200) + " / 1200 KB)"; - } - var barElement = document.querySelector("#ll_progressbar span"); - if (barElement) { - barElement.style.width = (5 + progress * 75.0).toFixed(2) + "%"; - } - } - - function startBundleDownload() { - var xhr = new XMLHttpRequest(); - var notifiedNotComputable = false; - - xhr.open("GET", bundleSrc, true); - xhr.responseType = "arraybuffer"; - xhr.onprogress = function (ev) { - if (ev.lengthComputable) { - progressHandler(ev.loaded / ev.total); - } else { - // Hardcoded length - progressHandler(Math.min(1, ev.loaded / 2349009)); - } - }; - - xhr.onloadend = function () { - if (!xhr.status.toString().match(/^2/)) { - throw new Error("Failed to load bundle: " + xhr.status + " " + xhr.statusText); - } else { - if (!notifiedNotComputable) { - progressHandler(1); - } - - var options = {}; - var headers = xhr.getAllResponseHeaders(); - var m = headers.match(/^Content-Type\:\s*(.*?)$/im); - - if (m && m[1]) { - options.type = m[1]; - } - - var blob = new Blob([this.response], options); - var script = document.createElement("script"); - script.addEventListener("load", onJsLoaded); - script.src = window.URL.createObjectURL(blob); - script.type = "text/javascript"; - script.charset = "utf-8"; - if (bundleIntegrity) { - script.setAttribute("integrity", bundleIntegrity); - } - document.head.appendChild(script); - } - }; - xhr.send(); - } - - console.log("Start bundle download ..."); - window.addEventListener("load", startBundleDownload); -})(); diff --git a/gulp/tasks.js b/gulp/tasks.js index 0668cc68..8a742574 100644 --- a/gulp/tasks.js +++ b/gulp/tasks.js @@ -21,7 +21,7 @@ import gulpWebserver from "gulp-webserver"; import * as css from "./css.js"; import * as docs from "./docs.js"; -import * as html from "./html.js"; +import html from "./html.js"; import * as imgres from "./image-resources.js"; import js from "./js.js"; import * as localConfig from "./local-config.js"; @@ -134,7 +134,7 @@ async function serveHTML({ version = "web-dev" }) { gulp.watch("../src/css/**", css.dev); // Watch .html files, those trigger a html rebuild - gulp.watch(["../src/html/**", "./preloader/*"], html.dev); + gulp.watch("../src/html/**", html); // Watch translations gulp.watch("../translations/*.yaml", translations.convertToJson); @@ -190,7 +190,7 @@ const prepare = { gulp.series(imgres.buildAtlas, gulp.parallel(imgres.atlasToJson, imgres.atlas)), gulp.series(imgres.copyImageResources, css.dev), imgres.copyNonImageResources, - html.dev, + html, gulp.series(gulp.parallel(sounds.dev, translations.fullBuild), js[variant].dev.build) ) ), @@ -233,7 +233,7 @@ for (const variant in BUILD_VARIANTS) { const resourcesAndCode = gulp.parallel(step.baseResources, code); - const all = gulp.series(resourcesAndCode, css.prod, html.prod); + const all = gulp.series(resourcesAndCode, css.prod, html); const full = gulp.series(utils.cleanup, all, step.postbuild); diff --git a/package.json b/package.json index 27e85253..0d8ff876 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "gulp-dart-sass": "^1.0.2", "gulp-dom": "^1.0.0", "gulp-fluent-ffmpeg": "^2.0.0", - "gulp-html-beautify": "^1.0.1", "gulp-htmlmin": "^5.0.1", "gulp-if": "^3.0.0", "gulp-imagemin": "^7.1.0", diff --git a/src/html/index.html b/src/html/index.html index c0b9d40d..88ec6b32 100644 --- a/src/html/index.html +++ b/src/html/index.html @@ -1,11 +1,25 @@ - shapez - - - - + + - + +
_
+
+ +
+
+
+ +
Downloading Game
+
+
+
+ diff --git a/tsconfig.json b/tsconfig.json index 6c294413..be25a52b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,6 @@ { "extends": ["@tsconfig/node-lts/tsconfig"], "include": ["./*", "./electron/**/*", "./gulp/**/*"], - "exclude": ["./gulp/preloader/*"], "compilerOptions": { "allowJs": true, "checkJs": true, diff --git a/yarn.lock b/yarn.lock index 3f2dd6ee..fe34840f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -665,11 +665,6 @@ abab@^2.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - accepts@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -2016,7 +2011,7 @@ commander@2.17.x: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.19.0, commander@^2.2.0, commander@^2.20.0, commander@^2.8.1: +commander@^2.2.0, commander@^2.20.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2066,7 +2061,7 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" -config-chain@^1.1.11, config-chain@^1.1.13: +config-chain@^1.1.11: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== @@ -2834,16 +2829,6 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - ee-first@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.0.5.tgz#8c9b212898d8cd9f1a9436650ce7be202c9e9ff0" @@ -4210,17 +4195,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - glob@~7.1.1: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -4514,15 +4488,6 @@ gulp-fluent-ffmpeg@^2.0.0: plugin-error "^1.0.1" through2 "^3.0.1" -gulp-html-beautify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gulp-html-beautify/-/gulp-html-beautify-1.0.1.tgz#2834c6f77669605726eee55e3205f63074b7a152" - integrity sha512-XbWWDcPQGvdBttEpuhNwBbOpOTR8l+K7/pJLKDLPcdZDCqo+sWvXTUqgYGFJu2Ax1sIiN9uvoM4fwJjgeRtZxQ== - dependencies: - js-beautify "^1.5.10" - rcloader "^0.1.4" - through2 "^2.0.0" - gulp-htmlmin@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/gulp-htmlmin/-/gulp-htmlmin-5.0.1.tgz#90fc5e8ad0425a9e86d5d521427184e7276365e7" @@ -5627,16 +5592,6 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== -js-beautify@^1.5.10: - version "1.14.7" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.7.tgz#9206296de33f86dc106d3e50a35b7cf8729703b2" - integrity sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A== - dependencies: - config-chain "^1.1.13" - editorconfig "^0.15.3" - glob "^8.0.3" - nopt "^6.0.0" - js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -6156,11 +6111,6 @@ lodash.values@~2.4.1: dependencies: lodash.keys "~2.4.1" -lodash@^3.0.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - integrity sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ== - lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.3.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -6217,7 +6167,7 @@ lpad-align@^1.0.1: longest "^1.0.0" meow "^3.3.0" -lru-cache@^4.0.1, lru-cache@^4.1.5: +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -6429,13 +6379,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" - integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" @@ -6598,13 +6541,6 @@ node.extend@^1.0.10: has "^1.0.3" is "^3.2.1" -nopt@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" - integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== - dependencies: - abbrev "^1.0.0" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -8165,21 +8101,6 @@ rcedit@^3.0.1: dependencies: cross-spawn-windows-exe "^1.1.0" -rcfinder@^0.1.6: - version "0.1.9" - resolved "https://registry.yarnpkg.com/rcfinder/-/rcfinder-0.1.9.tgz#f3e80f387ddf9ae80ae30a4100329642eae81115" - integrity sha512-rhSo812VIVaX7cxl33KkllHRwfLvjZL3lQedWEpQ27YlMFKZbFZsiVdCcQn/Z0FauLWxIpKrNREGuHbJFSi0Lw== - dependencies: - lodash.clonedeep "^4.3.2" - -rcloader@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/rcloader/-/rcloader-0.1.4.tgz#d0c902f0444983a2ee5a6907937c6a79ca704509" - integrity sha512-yO55pqRfpdrXV5JhgSNSH+OIu0webqeBGlxmzT1fL1qckiqoRoPBtYkKT7pALsKFPZoE5ZZnRCyEUnC1z/xEcg== - dependencies: - lodash "^3.0.1" - rcfinder "^0.1.6" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -8888,11 +8809,6 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== - signal-exit@^3.0.0, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"