From ebdee27d3bd6eeea0404a2b524f53f3ba39d2535 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 08:22:45 +0100 Subject: [PATCH 1/8] chore(deps): bump immutable to ^4.3.8 Co-authored-by: Cursor --- packages/browser-sync-ui/package-lock.json | 18 +- packages/browser-sync-ui/package.json | 2 +- packages/browser-sync/lib/cli/cli-options.ts | 21 +- .../lib/cli/transforms/addToFilesOption.ts | 34 ++- .../lib/cli/transforms/handlePortsOption.ts | 10 +- .../lib/cli/transforms/handleServerOption.ts | 16 +- packages/browser-sync/lib/options.ts | 27 +- packages/browser-sync/lib/server/utils.js | 9 +- packages/browser-sync/lib/utils.ts | 22 +- packages/browser-sync/package-lock.json | 282 +----------------- packages/browser-sync/package.json | 2 +- 11 files changed, 121 insertions(+), 322 deletions(-) diff --git a/packages/browser-sync-ui/package-lock.json b/packages/browser-sync-ui/package-lock.json index 9f3a5901c..5e1ed9fc7 100644 --- a/packages/browser-sync-ui/package-lock.json +++ b/packages/browser-sync-ui/package-lock.json @@ -12,7 +12,7 @@ "async-each-series": "0.1.1", "chalk": "4.1.2", "connect-history-api-fallback": "^1", - "immutable": "^3", + "immutable": "^4.3.8", "server-destroy": "1.0.1", "socket.io-client": "^4.4.1", "stream-throttle": "^0.1.3" @@ -2527,12 +2527,10 @@ } }, "node_modules/immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", - "engines": { - "node": ">=0.10.0" - } + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", + "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==", + "license": "MIT" }, "node_modules/inflight": { "version": "1.0.6", @@ -7633,9 +7631,9 @@ "dev": true }, "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", + "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==" }, "inflight": { "version": "1.0.6", diff --git a/packages/browser-sync-ui/package.json b/packages/browser-sync-ui/package.json index 3d0aebfe0..8f532a4d5 100644 --- a/packages/browser-sync-ui/package.json +++ b/packages/browser-sync-ui/package.json @@ -26,7 +26,7 @@ "async-each-series": "0.1.1", "chalk": "4.1.2", "connect-history-api-fallback": "^1", - "immutable": "^3", + "immutable": "^4.3.8", "server-destroy": "1.0.1", "socket.io-client": "^4.4.1", "stream-throttle": "^0.1.3" diff --git a/packages/browser-sync/lib/cli/cli-options.ts b/packages/browser-sync/lib/cli/cli-options.ts index 1c49bdb71..e3ba955db 100644 --- a/packages/browser-sync/lib/cli/cli-options.ts +++ b/packages/browser-sync/lib/cli/cli-options.ts @@ -103,14 +103,19 @@ export function makeFilesArg(value) { globs = globs.concat(explodeFilesArg(value)); } - if (List.isList(value) && value.size) { - value.forEach(function(value) { - if (_.isString(value)) { - globs.push(value); - } else { - if (Map.isMap(value)) { - objs.push(value); - } + const iterable = + List.isList(value) && value.size + ? value + : Array.isArray(value) && value.length + ? value + : null; + + if (iterable) { + iterable.forEach(function(item) { + if (_.isString(item)) { + globs.push(item); + } else if (Map.isMap(item)) { + objs.push(item); } }); } diff --git a/packages/browser-sync/lib/cli/transforms/addToFilesOption.ts b/packages/browser-sync/lib/cli/transforms/addToFilesOption.ts index 06571eccc..1c7afe5f0 100644 --- a/packages/browser-sync/lib/cli/transforms/addToFilesOption.ts +++ b/packages/browser-sync/lib/cli/transforms/addToFilesOption.ts @@ -1,4 +1,4 @@ -import { List, Map } from "immutable"; +import { List, Map, fromJS } from "immutable"; import { BsTempOptions, TransformResult } from "../cli-options"; export function addToFilesOption(incoming: BsTempOptions): TransformResult { @@ -8,7 +8,12 @@ export function addToFilesOption(incoming: BsTempOptions): TransformResult { let serverPaths = []; - const fromServeStatic = incoming.get("serveStatic", List([])).toArray(); + const serveStaticRaw = incoming.get("serveStatic", List([])); + const fromServeStatic = List.isList(serveStaticRaw) + ? serveStaticRaw.toArray() + : Array.isArray(serveStaticRaw) + ? serveStaticRaw + : []; const ssPaths = fromServeStatic.reduce((acc, ss) => { if (typeof ss === "string") { return acc.concat(ss); @@ -29,11 +34,30 @@ export function addToFilesOption(incoming: BsTempOptions): TransformResult { if (typeof server === "string") { serverPaths.push(server); } - if (List.isList(server) && server.every(x => typeof x === "string")) { + if ( + List.isList(server) && + server.size && + server.every(x => typeof x === "string") + ) { server.forEach(s => serverPaths.push(s)); } - if (Map.isMap(server)) { - const baseDirProp = server.get("baseDir"); + if ( + Array.isArray(server) && + server.length && + server.every(x => typeof x === "string") + ) { + server.forEach(s => serverPaths.push(s)); + } + if ( + !List.isList(server) && + !Array.isArray(server) && + server && + typeof server === "object" + ) { + const mapVal: Map = Map.isMap(server) + ? (server as Map) + : (fromJS(server) as Map); + const baseDirProp = mapVal.get("baseDir"); const baseDirs = List([]) .concat(baseDirProp) .filter(Boolean); diff --git a/packages/browser-sync/lib/cli/transforms/handlePortsOption.ts b/packages/browser-sync/lib/cli/transforms/handlePortsOption.ts index d3ba5c610..f3d64dbe7 100644 --- a/packages/browser-sync/lib/cli/transforms/handlePortsOption.ts +++ b/packages/browser-sync/lib/cli/transforms/handlePortsOption.ts @@ -18,8 +18,14 @@ export function handlePortsOption(incoming: BsTempOptions): TransformResult { obj.max = null; } } else { - obj.min = value.get("min"); - obj.max = value.get("max") || null; + if (Map.isMap(value)) { + obj.min = (value.get("min") as number) ?? null; + obj.max = (value.get("max") as number | undefined) || null; + } else { + const o = value as { min?: number; max?: number | null }; + obj.min = o.min != null ? o.min : null; + obj.max = o.max != null ? o.max : null; + } } return [incoming.set("ports", Map(obj)), []]; diff --git a/packages/browser-sync/lib/cli/transforms/handleServerOption.ts b/packages/browser-sync/lib/cli/transforms/handleServerOption.ts index dd0743b4f..dd46367c3 100644 --- a/packages/browser-sync/lib/cli/transforms/handleServerOption.ts +++ b/packages/browser-sync/lib/cli/transforms/handleServerOption.ts @@ -24,19 +24,25 @@ export function handleServerOption(incoming: BsTempOptions): TransformResult { return [incoming.set("server", fromJS(obj)), []]; } - if (List.isList(value)) { + if (List.isList(value) || Array.isArray(value)) { + const baseDir = List.isList(value) + ? (value as List).toArray() + : (value as string[]); const obj: IServerOption = { - baseDir: value + baseDir }; return [incoming.set("server", fromJS(obj)), []]; } - if (Map.isMap(value)) { + if (value && typeof value === "object" && !Array.isArray(value)) { + const mapVal: Map = Map.isMap(value) + ? (value as Map) + : (fromJS(value) as Map); const dirs = List([]) - .concat(value.get("baseDir", "./")) + .concat(mapVal.get("baseDir", "./")) .filter(Boolean); - const merged = value.merge({ baseDir: dirs }); + const merged = mapVal.merge({ baseDir: dirs }); return [incoming.set("server", merged), []]; } diff --git a/packages/browser-sync/lib/options.ts b/packages/browser-sync/lib/options.ts index 954c8821d..b4675ba55 100644 --- a/packages/browser-sync/lib/options.ts +++ b/packages/browser-sync/lib/options.ts @@ -93,13 +93,15 @@ export function setStartPath(incoming: BsTempOptions): TransformResult { * @param incoming */ export function setNamespace(incoming: BsTempOptions): TransformResult { - var namespace = incoming.getIn(["socket", "namespace"]); + var namespace = incoming.getIn(["socket", "namespace"]) as unknown; if (_.isFunction(namespace)) { return [ incoming.setIn( ["socket", "namespace"], - namespace((defaultConfig.socket as any).namespace) + (namespace as (n: string) => string)( + (defaultConfig.socket as any).namespace + ) ), [] ]; @@ -169,17 +171,21 @@ export function fixRewriteRules(incoming: BsTempOptions): TransformResult { export function fixSnippetIgnorePaths( incoming: BsTempOptions ): TransformResult { - var ignorePaths = incoming.getIn(["snippetOptions", "ignorePaths"]); + var ignorePaths = incoming.getIn([ + "snippetOptions", + "ignorePaths" + ]) as string | string[] | undefined; if (ignorePaths) { - if (_.isString(ignorePaths)) { - ignorePaths = [ignorePaths]; - } - ignorePaths = ignorePaths.map(ensureSlash); + const paths: string[] = + typeof ignorePaths === "string" + ? [ignorePaths] + : (ignorePaths as string[]); + const normalized = paths.map(ensureSlash); return [ incoming.setIn( ["snippetOptions", "blacklist"], - Immutable.List(ignorePaths) + Immutable.List(normalized) ), [] ]; @@ -190,7 +196,10 @@ export function fixSnippetIgnorePaths( export function fixSnippetIncludePaths( incoming: BsTempOptions ): TransformResult { - var includePaths = incoming.getIn(["snippetOptions", "whitelist"]); + var includePaths = incoming.getIn([ + "snippetOptions", + "whitelist" + ]) as string[] | undefined; if (includePaths) { includePaths = includePaths.map(ensureSlash); return [ diff --git a/packages/browser-sync/lib/server/utils.js b/packages/browser-sync/lib/server/utils.js index 8ea22d588..d789ea893 100644 --- a/packages/browser-sync/lib/server/utils.js +++ b/packages/browser-sync/lib/server/utils.js @@ -30,8 +30,9 @@ function getCa(options) { return fs.readFileSync(caOption); } // if an array was given, read all - if (List.isList(caOption)) { - return caOption.toArray().map(function(x) { + if (List.isList(caOption) || Array.isArray(caOption)) { + var arr = List.isList(caOption) ? caOption.toArray() : caOption; + return arr.map(function(x) { return fs.readFileSync(x); }); } @@ -50,7 +51,7 @@ function getCert(options) { } function getHttpsServerDefaults(options) { - return fromJS({ + return Map({ key: getKey(options), cert: getCert(options), ca: getCa(options), @@ -59,7 +60,7 @@ function getHttpsServerDefaults(options) { } function getPFXDefaults(options) { - return fromJS({ + return Map({ pfx: fs.readFileSync(options.getIn(["https", "pfx"])) }); } diff --git a/packages/browser-sync/lib/utils.ts b/packages/browser-sync/lib/utils.ts index 0b4543212..e06c6c3ca 100644 --- a/packages/browser-sync/lib/utils.ts +++ b/packages/browser-sync/lib/utils.ts @@ -5,7 +5,7 @@ import * as portScanner from "portscanner"; import * as path from "path"; import * as UAParser from "ua-parser-js"; import * as Immutable from "immutable"; -import { List } from "immutable"; +import { List, Map as ImMap } from "immutable"; const _ = require("./lodash.custom"); const parser = new UAParser(); @@ -32,7 +32,7 @@ export function getHostIp(options: BsTempOptions, devIp: string[]) { /** * Set URL Options */ -export function getUrlOptions(options: BsTempOptions): Map { +export function getUrlOptions(options: BsTempOptions): ImMap { const scheme = options.get("scheme"); const port = options.get("port"); @@ -42,14 +42,16 @@ export function getUrlOptions(options: BsTempOptions): Map { if (options.get("online") === false || listen) { const host = listen || "localhost"; urls.local = getUrl(`${scheme}://${host}:${port}`, options); - return Immutable.fromJS(urls); + return Immutable.fromJS(urls) as ImMap; } const fn: typeof getHostIp = exports.getHostIp; const external = hostnameSuffix(fn(options, devIp()), options); const localhost = hostnameSuffix("localhost", options); - return Immutable.fromJS(getUrls(external, localhost, scheme, options)); + return Immutable.fromJS( + getUrls(external, localhost, scheme, options) + ) as ImMap; } /** @@ -170,9 +172,12 @@ export function openBrowser(url, options, bs) { const fn: typeof opnWrapper = exports.opnWrapper; if (open) { if (browser !== "default") { - if (isList(browser)) { - browser.forEach(function(browser) { - fn(url, browser, bs); + if (List.isList(browser) || Array.isArray(browser)) { + const browsers = List.isList(browser) + ? (browser as Immutable.List).toArray() + : (browser as string[]); + browsers.forEach(function (browserName) { + fn(url, browserName, bs); }); } else { fn(url, browser, bs); // single @@ -197,6 +202,9 @@ export function opnWrapper(url, name, bs) { if (Immutable.Map.isMap(name)) { return name.toJS(); } + if (name && typeof name === "object" && !Array.isArray(name)) { + return name; + } return {}; })(); var opn = require("opn"); diff --git a/packages/browser-sync/package-lock.json b/packages/browser-sync/package-lock.json index 46c90af1b..acc0c037c 100644 --- a/packages/browser-sync/package-lock.json +++ b/packages/browser-sync/package-lock.json @@ -9,8 +9,6 @@ "version": "3.0.4", "license": "Apache-2.0", "dependencies": { - "browser-sync-client": "^3.0.4", - "browser-sync-ui": "^3.0.4", "bs-recipes": "1.3.4", "chalk": "4.1.2", "chokidar": "^3.5.1", @@ -23,7 +21,7 @@ "fresh": "^0.5.2", "fs-extra": "3.0.1", "http-proxy": "^1.18.1", - "immutable": "^3", + "immutable": "^4.3.8", "micromatch": "^4.0.8", "opn": "5.3.0", "portscanner": "2.2.0", @@ -213,15 +211,6 @@ "lodash": "^4.17.14" } }, - "node_modules/async-each-series": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -333,124 +322,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/browser-sync-client": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.3.tgz", - "integrity": "sha512-TOEXaMgYNjBYIcmX5zDlOdjEqCeCN/d7opf/fuyUD/hhGVCfP54iQIDhENCi012AqzYZm3BvuFl57vbwSTwkSQ==", - "license": "ISC", - "dependencies": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/browser-sync-ui": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.3.tgz", - "integrity": "sha512-FcGWo5lP5VodPY6O/f4pXQy5FFh4JK0f2/fTBsp0Lx1NtyBWs/IfPPJbW8m1ujTW/2r07oUXKTF2LYZlCZktjw==", - "license": "Apache-2.0", - "dependencies": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" - } - }, - "node_modules/browser-sync-ui/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/browser-sync-ui/node_modules/engine.io-client": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", - "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.1.1" - } - }, - "node_modules/browser-sync-ui/node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/browser-sync-ui/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/browser-sync-ui/node_modules/socket.io-client": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", - "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/browser-sync-ui/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/browser-sync-ui/node_modules/xmlhttprequest-ssl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/bs-recipes": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", @@ -627,7 +498,8 @@ "node_modules/commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true }, "node_modules/component-bind": { "version": "1.0.0", @@ -1403,12 +1275,10 @@ } }, "node_modules/immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", - "engines": { - "node": ">=0.10.0" - } + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", + "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==", + "license": "MIT" }, "node_modules/indexof": { "version": "0.0.1", @@ -1585,11 +1455,6 @@ "node": ">=0.6.0" } }, - "node_modules/limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1686,12 +1551,6 @@ "node": "*" } }, - "node_modules/mitt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", - "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", - "license": "MIT" - }, "node_modules/mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -2739,22 +2598,6 @@ "node": ">= 0.6" } }, - "node_modules/stream-throttle": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", - "license": "BSD-3-Clause", - "dependencies": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - }, - "bin": { - "throttleproxy": "bin/throttleproxy.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -3347,11 +3190,6 @@ "lodash": "^4.17.14" } }, - "async-each-series": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==" - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3447,84 +3285,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "browser-sync-client": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.3.tgz", - "integrity": "sha512-TOEXaMgYNjBYIcmX5zDlOdjEqCeCN/d7opf/fuyUD/hhGVCfP54iQIDhENCi012AqzYZm3BvuFl57vbwSTwkSQ==", - "requires": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3" - } - }, - "browser-sync-ui": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.3.tgz", - "integrity": "sha512-FcGWo5lP5VodPY6O/f4pXQy5FFh4JK0f2/fTBsp0Lx1NtyBWs/IfPPJbW8m1ujTW/2r07oUXKTF2LYZlCZktjw==", - "requires": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" - }, - "dependencies": { - "debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "requires": { - "ms": "^2.1.3" - } - }, - "engine.io-client": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", - "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.1.1" - } - }, - "engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "socket.io-client": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", - "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" - } - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "requires": {} - }, - "xmlhttprequest-ssl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==" - } - } - }, "bs-recipes": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", @@ -3662,7 +3422,8 @@ "commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true }, "component-bind": { "version": "1.0.0", @@ -4257,9 +4018,9 @@ "dev": true }, "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", + "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==" }, "indexof": { "version": "0.0.1", @@ -4405,11 +4166,6 @@ "verror": "1.10.0" } }, - "limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4477,11 +4233,6 @@ "brace-expansion": "^1.1.7" } }, - "mitt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", - "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" - }, "mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -5275,15 +5026,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" }, - "stream-throttle": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", - "requires": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - } - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", diff --git a/packages/browser-sync/package.json b/packages/browser-sync/package.json index 5ea7ecaad..af779b276 100644 --- a/packages/browser-sync/package.json +++ b/packages/browser-sync/package.json @@ -49,7 +49,7 @@ "fresh": "^0.5.2", "fs-extra": "3.0.1", "http-proxy": "^1.18.1", - "immutable": "^3", + "immutable": "^4.3.8", "micromatch": "^4.0.8", "opn": "5.3.0", "portscanner": "2.2.0", From 2b4aa29de45f66947b004d12f19db5fb573782c9 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 08:24:17 +0100 Subject: [PATCH 2/8] ci: replace deprecated upload-artifact@v3 Co-authored-by: Cursor --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f7f208b26..acd380152 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -41,9 +41,9 @@ jobs: run: npx playwright install --with-deps - name: Run Playwright tests run: npm run test:e2e - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() with: - name: playwright-report + name: playwright-report-node-${{ matrix.node-version }} path: playwright-report/ retention-days: 30 From 620ece96d0c6e56b18e23d3634ca11c3087ee700 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 08:24:48 +0100 Subject: [PATCH 3/8] ci: checkout@v4, setup-node@v4 (fix npm cache 400) Co-authored-by: Cursor --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index acd380152..0036ab12b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,10 +23,10 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Setup Node.js environment - uses: actions/setup-node@v2.5.0 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: npm From 4764c6f9c8fd649c5585d1aca458e15276c7f927 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 08:27:33 +0100 Subject: [PATCH 4/8] fix(cli): handleProxyOption accepts plain objects (immutable v4 mergeDeep) Coerce proxy config through Map/fromJS like other transforms. Co-authored-by: Cursor --- .github/workflows/main.yml | 1 + .../lib/cli/transforms/handleProxyOption.ts | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0036ab12b..25e541530 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -47,3 +47,4 @@ jobs: name: playwright-report-node-${{ matrix.node-version }} path: playwright-report/ retention-days: 30 + if-no-files-found: ignore diff --git a/packages/browser-sync/lib/cli/transforms/handleProxyOption.ts b/packages/browser-sync/lib/cli/transforms/handleProxyOption.ts index 43657c42f..766e5a91d 100644 --- a/packages/browser-sync/lib/cli/transforms/handleProxyOption.ts +++ b/packages/browser-sync/lib/cli/transforms/handleProxyOption.ts @@ -1,5 +1,5 @@ import * as url from "url"; -import { Map } from "immutable"; +import { Map, fromJS } from "immutable"; import { BrowsersyncProxy } from "../../types"; import { BsTempOptions, TransformResult } from "../cli-options"; @@ -13,8 +13,12 @@ export function handleProxyOption(incoming: BsTempOptions): TransformResult { } if (typeof value !== "string") { - target = value.get("target"); - mw = value.get("middleware"); + const mapVal = Map.isMap(value) + ? (value as Map) + : (fromJS(value) as Map); + target = mapVal.get("target"); + mw = mapVal.get("middleware"); + value = mapVal; } else { target = value; value = Map({}); From 0e248e76696e67b15b9a6a69a6a464072e5f0369 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 08:30:24 +0100 Subject: [PATCH 5/8] fix(server): require chalk in utils (serveStatic error path) Co-authored-by: Cursor --- packages/browser-sync/lib/server/utils.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/browser-sync/lib/server/utils.js b/packages/browser-sync/lib/server/utils.js index d789ea893..b7196f7c1 100644 --- a/packages/browser-sync/lib/server/utils.js +++ b/packages/browser-sync/lib/server/utils.js @@ -1,5 +1,6 @@ "use strict"; +var chalk = require("chalk"); var fs = require("fs"); var path = require("path"); var join = require("path").join; From 1f40e5fe04908a42e2d627b3edd5145996b2776f Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 08:46:58 +0100 Subject: [PATCH 6/8] ci: matrix Node 22, 24, 26 (replace 16, 18, 20) Co-authored-by: Cursor --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 25e541530..5200fd9f6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: - node-version: [16, 18, 20] + node-version: [22, 24, 26] # Steps represent a sequence of tasks that will be executed as part of the job steps: From 4ed50f5bd8ec6c936eb60110d29411bb3f7de3d0 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 09:00:45 +0100 Subject: [PATCH 7/8] fix(ci): npm overrides for yargs 17 (Lerna on Node 26) Node 26 loads yargs as ESM; yargs 16 shim used require() and broke lerna bootstrap. Co-authored-by: Cursor --- package-lock.json | 155 ++++++++++++++++------------------------------ package.json | 4 ++ 2 files changed, 58 insertions(+), 101 deletions(-) diff --git a/package-lock.json b/package-lock.json index a9c7a444f..af003b46a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5860,47 +5860,6 @@ "node": ">=8.17.0" } }, - "node_modules/nx/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/nx/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/nx/node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7958,30 +7917,32 @@ } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs/node_modules/ansi-regex": { @@ -7993,6 +7954,21 @@ "node": ">=8" } }, + "node_modules/yargs/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/yargs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -8241,7 +8217,7 @@ "@lerna/global-options": "6.1.0", "dedent": "^0.7.0", "npmlog": "^6.0.2", - "yargs": "^16.2.0" + "yargs": "^17.7.2" } }, "@lerna/collect-uncommitted": { @@ -8325,7 +8301,7 @@ "slash": "^3.0.0", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^4.0.0", - "yargs-parser": "20.2.4" + "yargs-parser": "^21.1.1" } }, "@lerna/create-symlink": { @@ -10793,7 +10769,7 @@ "@hutson/parse-repository-url": "^3.0.0", "hosted-git-info": "^4.0.0", "through2": "^2.0.0", - "yargs": "^16.2.0" + "yargs": "^17.7.2" }, "dependencies": { "readable-stream": { @@ -11824,7 +11800,7 @@ "redent": "^3.0.0", "trim-newlines": "^3.0.0", "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "yargs-parser": "^21.1.1" }, "dependencies": { "hosted-git-info": { @@ -12475,8 +12451,8 @@ "tsconfig-paths": "^3.9.0", "tslib": "^2.3.0", "v8-compile-cache": "2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" }, "dependencies": { "ansi-regex": { @@ -12585,40 +12561,6 @@ "requires": { "rimraf": "^3.0.0" } - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - } - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true } } }, @@ -14155,18 +14097,18 @@ "dev": true }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "dependencies": { "ansi-regex": { @@ -14175,6 +14117,17 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -14204,9 +14157,9 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true }, "zod": { diff --git a/package.json b/package.json index e5f20a9d8..1a68893e2 100644 --- a/package.json +++ b/package.json @@ -16,5 +16,9 @@ "rxjs": "^7.5.4", "zod": "^3.22.2" }, + "overrides": { + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, "nx": {} } From c688dda8b984d94e834ca2e572162807b9ed15cc Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Sat, 9 May 2026 09:29:13 +0100 Subject: [PATCH 8/8] fix(ci): override yargs to 18 (Node 26 ESM / require interop) Co-authored-by: Cursor --- package-lock.json | 252 ++++++++++++++++++++++++++++------------------ package.json | 4 +- 2 files changed, 158 insertions(+), 98 deletions(-) diff --git a/package-lock.json b/package-lock.json index af003b46a..971dd6b24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3516,6 +3516,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-pkg-repo": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", @@ -6815,15 +6828,6 @@ "node": ">=8" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -7917,91 +7921,131 @@ } }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^8.0.1", + "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", + "string-width": "^7.2.0", "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" }, "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "dev": true, "license": "ISC", "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/yargs/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=12" + "node": ">=20" } }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/yargs/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/yargs/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/zod": { @@ -8217,7 +8261,7 @@ "@lerna/global-options": "6.1.0", "dedent": "^0.7.0", "npmlog": "^6.0.2", - "yargs": "^17.7.2" + "yargs": "^18.0.0" } }, "@lerna/collect-uncommitted": { @@ -8301,7 +8345,7 @@ "slash": "^3.0.0", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^4.0.0", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" } }, "@lerna/create-symlink": { @@ -10760,6 +10804,12 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-east-asian-width": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "dev": true + }, "get-pkg-repo": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", @@ -10769,7 +10819,7 @@ "@hutson/parse-repository-url": "^3.0.0", "hosted-git-info": "^4.0.0", "through2": "^2.0.0", - "yargs": "^17.7.2" + "yargs": "^18.0.0" }, "dependencies": { "readable-stream": { @@ -11800,7 +11850,7 @@ "redent": "^3.0.0", "trim-newlines": "^3.0.0", "type-fest": "^0.18.0", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" }, "dependencies": { "hosted-git-info": { @@ -12451,8 +12501,8 @@ "tsconfig-paths": "^3.9.0", "tslib": "^2.3.0", "v8-compile-cache": "2.3.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1" + "yargs": "^18.0.0", + "yargs-parser": "^22.0.0" }, "dependencies": { "ansi-regex": { @@ -13262,12 +13312,6 @@ "strip-indent": "^3.0.0" } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -14097,69 +14141,85 @@ "dev": true }, "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", "dev": true, "requires": { - "cliui": "^8.0.1", + "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", + "string-width": "^7.2.0", "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true }, "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true }, "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" } }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.2.2" + } + }, + "wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "requires": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" } } } }, "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "dev": true }, "zod": { diff --git a/package.json b/package.json index 1a68893e2..0ca0cf4fc 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "zod": "^3.22.2" }, "overrides": { - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1" + "yargs": "^18.0.0", + "yargs-parser": "^22.0.0" }, "nx": {} }