From 02f0764d14331e584e607754510b97f408734051 Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Fri, 15 Mar 2024 09:58:26 -0400 Subject: [PATCH 1/5] fix(core): fix pty for multiple commands in 1 process (#22294) --- packages/nx/src/command-line/run/run.ts | 6 +- .../run-commands/run-commands.impl.ts | 25 +- .../executors/run-script/run-script.impl.ts | 7 +- packages/nx/src/native/command.rs | 239 ------------------ packages/nx/src/native/index.d.ts | 25 +- packages/nx/src/native/index.js | 7 +- packages/nx/src/native/mod.rs | 2 +- .../native/pseudo_terminal/child_process.rs | 85 +++++++ .../{ => pseudo_terminal}/command/unix.rs | 0 .../{ => pseudo_terminal}/command/windows.rs | 0 packages/nx/src/native/pseudo_terminal/mac.rs | 55 ++++ packages/nx/src/native/pseudo_terminal/mod.rs | 11 + .../nx/src/native/pseudo_terminal/non-mac.rs | 59 +++++ .../native/pseudo_terminal/pseudo_terminal.rs | 228 +++++++++++++++++ packages/nx/src/native/tests/command.spec.ts | 48 ---- packages/nx/src/tasks-runner/fork.ts | 14 +- .../forked-process-task-runner.ts | 43 +--- .../{psuedo-ipc.ts => pseudo-ipc.ts} | 23 +- .../src/tasks-runner/pseudo-terminal.spec.ts | 73 ++++++ .../nx/src/tasks-runner/pseudo-terminal.ts | 185 ++++++++++++++ .../nx/src/tasks-runner/task-orchestrator.ts | 1 - 21 files changed, 772 insertions(+), 364 deletions(-) delete mode 100644 packages/nx/src/native/command.rs create mode 100644 packages/nx/src/native/pseudo_terminal/child_process.rs rename packages/nx/src/native/{ => pseudo_terminal}/command/unix.rs (100%) rename packages/nx/src/native/{ => pseudo_terminal}/command/windows.rs (100%) create mode 100644 packages/nx/src/native/pseudo_terminal/mac.rs create mode 100644 packages/nx/src/native/pseudo_terminal/mod.rs create mode 100644 packages/nx/src/native/pseudo_terminal/non-mac.rs create mode 100644 packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs delete mode 100644 packages/nx/src/native/tests/command.spec.ts rename packages/nx/src/tasks-runner/{psuedo-ipc.ts => pseudo-ipc.ts} (90%) create mode 100644 packages/nx/src/tasks-runner/pseudo-terminal.spec.ts create mode 100644 packages/nx/src/tasks-runner/pseudo-terminal.ts diff --git a/packages/nx/src/command-line/run/run.ts b/packages/nx/src/command-line/run/run.ts index 980c5870daba4..2160f8255bccd 100644 --- a/packages/nx/src/command-line/run/run.ts +++ b/packages/nx/src/command-line/run/run.ts @@ -16,13 +16,12 @@ import { } from '../../project-graph/project-graph'; import { ProjectGraph } from '../../config/project-graph'; import { readNxJson } from '../../config/configuration'; -import { runCommand } from '../../native'; import { getLastValueFromAsyncIterableIterator, isAsyncIterator, } from '../../utils/async-iterator'; import { getExecutorInformation } from './executor-utils'; -import { PseudoTtyProcess } from '../../utils/child-process'; +import { getPseudoTerminal } from '../../tasks-runner/pseudo-terminal'; export interface Target { project: string; @@ -127,8 +126,9 @@ async function printTargetRunHelpInternal( targetConfig.options.command ) { const command = targetConfig.options.command.split(' ')[0]; + const terminal = getPseudoTerminal(); await new Promise(() => { - const cp = new PseudoTtyProcess(runCommand(`${command} --help`)); + const cp = terminal.runCommand(`${command} --help`); cp.onExit((code) => { process.exit(code); }); diff --git a/packages/nx/src/executors/run-commands/run-commands.impl.ts b/packages/nx/src/executors/run-commands/run-commands.impl.ts index d2c9a39ed136c..9c9bccf9f7807 100644 --- a/packages/nx/src/executors/run-commands/run-commands.impl.ts +++ b/packages/nx/src/executors/run-commands/run-commands.impl.ts @@ -4,8 +4,10 @@ import * as yargsParser from 'yargs-parser'; import { env as appendLocalEnv } from 'npm-run-path'; import { ExecutorContext } from '../../config/misc-interfaces'; import * as chalk from 'chalk'; -import { runCommand } from '../../native'; -import { PseudoTtyProcess } from '../../utils/child-process'; +import { + getPseudoTerminal, + PseudoTerminal, +} from '../../tasks-runner/pseudo-terminal'; export const LARGE_BUFFER = 1024 * 1000000; @@ -110,10 +112,12 @@ export default async function ( ); } + const terminal = getPseudoTerminal(); + try { const result = options.parallel - ? await runInParallel(normalized, context) - : await runSerially(normalized, context); + ? await runInParallel(terminal, normalized, context) + : await runSerially(terminal, normalized, context); return result; } catch (e) { if (process.env.NX_VERBOSE_LOGGING === 'true') { @@ -126,11 +130,13 @@ export default async function ( } async function runInParallel( + pseudoTerminal: PseudoTerminal, options: NormalizedRunCommandsOptions, context: ExecutorContext ): Promise<{ success: boolean; terminalOutput: string }> { const procs = options.commands.map((c) => createProcess( + pseudoTerminal, c, options.readyWhen, options.color, @@ -239,6 +245,7 @@ function normalizeOptions( } async function runSerially( + pseudoTerminal: PseudoTerminal, options: NormalizedRunCommandsOptions, context: ExecutorContext ): Promise<{ success: boolean; terminalOutput: string }> { @@ -246,6 +253,7 @@ async function runSerially( for (const c of options.commands) { const result: { success: boolean; terminalOutput: string } = await createProcess( + pseudoTerminal, c, undefined, options.color, @@ -269,6 +277,7 @@ async function runSerially( } async function createProcess( + pseudoTerminal: PseudoTerminal, commandConfig: { command: string; color?: string; @@ -293,9 +302,11 @@ async function createProcess( !isParallel && usePty ) { - const cp = new PseudoTtyProcess( - runCommand(commandConfig.command, cwd, env, !streamOutput) - ); + const cp = pseudoTerminal.runCommand(commandConfig.command, { + cwd, + jsEnv: env, + quiet: !streamOutput, + }); let terminalOutput = ''; return new Promise((res) => { diff --git a/packages/nx/src/executors/run-script/run-script.impl.ts b/packages/nx/src/executors/run-script/run-script.impl.ts index a63a95b2c3e80..0f0d434c08c44 100644 --- a/packages/nx/src/executors/run-script/run-script.impl.ts +++ b/packages/nx/src/executors/run-script/run-script.impl.ts @@ -1,9 +1,8 @@ import * as path from 'path'; import type { ExecutorContext } from '../../config/misc-interfaces'; -import { runCommand } from '../../native'; -import { PseudoTtyProcess } from '../../utils/child-process'; import { getPackageManagerCommand } from '../../utils/package-manager'; import { execSync } from 'child_process'; +import { getPseudoTerminal } from '../../tasks-runner/pseudo-terminal'; export interface RunScriptOptions { script: string; @@ -60,8 +59,10 @@ async function ptyProcess( cwd: string, env: Record ) { + const terminal = getPseudoTerminal(); + return new Promise((res, rej) => { - const cp = new PseudoTtyProcess(runCommand(command, cwd, env)); + const cp = terminal.runCommand(command, { cwd, jsEnv: env }); cp.onExit((code) => { if (code === 0) { res(); diff --git a/packages/nx/src/native/command.rs b/packages/nx/src/native/command.rs deleted file mode 100644 index fb7c4b72283d2..0000000000000 --- a/packages/nx/src/native/command.rs +++ /dev/null @@ -1,239 +0,0 @@ -use std::{ - collections::HashMap, - io::{BufReader, Read, Write}, -}; - -use anyhow::anyhow; -use crossbeam_channel::{bounded, unbounded, Receiver}; -use crossterm::terminal::{self, disable_raw_mode, enable_raw_mode}; -use crossterm::tty::IsTty; -use napi::threadsafe_function::ErrorStrategy::Fatal; -use napi::threadsafe_function::ThreadsafeFunction; -use napi::threadsafe_function::ThreadsafeFunctionCallMode::NonBlocking; -use napi::{Env, JsFunction}; -use portable_pty::{ChildKiller, CommandBuilder, NativePtySystem, PtySize, PtySystem}; -use tracing::trace; - -#[cfg_attr(windows, path = "command/windows.rs")] -#[cfg_attr(not(windows), path = "command/unix.rs")] -mod os; - -fn command_builder() -> CommandBuilder { - if cfg!(windows) { - let comspec = std::env::var("COMSPEC"); - let shell = comspec - .as_ref() - .map(|v| v.as_str()) - .unwrap_or_else(|_| "cmd.exe"); - let mut command = CommandBuilder::new(shell); - command.arg("/C"); - - command - } else { - let mut command = CommandBuilder::new("sh"); - command.arg("-c"); - command - } -} - -pub enum ChildProcessMessage { - Kill, -} - -#[napi] -pub struct ChildProcess { - process_killer: Box, - message_receiver: Receiver, - wait_receiver: Receiver, -} -#[napi] -impl ChildProcess { - pub fn new( - process_killer: Box, - message_receiver: Receiver, - exit_receiver: Receiver, - ) -> Self { - Self { - process_killer, - message_receiver, - wait_receiver: exit_receiver, - } - } - - #[napi] - pub fn kill(&mut self) -> anyhow::Result<()> { - self.process_killer.kill().map_err(anyhow::Error::from) - } - - #[napi] - pub fn on_exit( - &mut self, - #[napi(ts_arg_type = "(message: string) => void")] callback: JsFunction, - ) -> napi::Result<()> { - let wait = self.wait_receiver.clone(); - let callback_tsfn: ThreadsafeFunction = - callback.create_threadsafe_function(0, |ctx| Ok(vec![ctx.value]))?; - - std::thread::spawn(move || { - // we will only get one exit_code here, so we dont need to do a while loop - if let Ok(exit_code) = wait.recv() { - callback_tsfn.call(exit_code, NonBlocking); - } - }); - - Ok(()) - } - - #[napi] - pub fn on_output( - &mut self, - env: Env, - #[napi(ts_arg_type = "(message: string) => void")] callback: JsFunction, - ) -> napi::Result<()> { - let rx = self.message_receiver.clone(); - - let mut callback_tsfn: ThreadsafeFunction = - callback.create_threadsafe_function(0, |ctx| Ok(vec![ctx.value]))?; - - callback_tsfn.unref(&env)?; - - std::thread::spawn(move || { - while let Ok(content) = rx.recv() { - // windows will add `ESC[6n` to the beginning of the output, - // we dont want to store this ANSI code in cache, because replays will cause issues - // remove it before sending it to js - #[cfg(windows)] - let content = content.replace("\x1B[6n", ""); - - callback_tsfn.call(content, NonBlocking); - } - }); - - Ok(()) - } -} - -fn get_directory(command_dir: Option) -> anyhow::Result { - if let Some(command_dir) = command_dir { - Ok(command_dir) - } else { - std::env::current_dir() - .map(|v| v.to_string_lossy().to_string()) - .map_err(|_| { - anyhow!("failed to get current directory, please specify command_dir explicitly") - }) - } -} - -#[napi] -pub fn run_command( - command: String, - command_dir: Option, - js_env: Option>, - quiet: Option, -) -> napi::Result { - let command_dir = get_directory(command_dir)?; - - let quiet = quiet.unwrap_or(false); - - let pty_system = NativePtySystem::default(); - - let (w, h) = terminal::size().unwrap_or((80, 24)); - let pair = pty_system.openpty(PtySize { - rows: h, - cols: w, - pixel_width: 0, - pixel_height: 0, - })?; - - let mut cmd = command_builder(); - cmd.arg(command.as_str()); - cmd.cwd(command_dir); - - if let Some(js_env) = js_env { - for (key, value) in js_env { - cmd.env(key, value); - } - } - - let (message_tx, message_rx) = unbounded(); - - let reader = pair.master.try_clone_reader()?; - let mut stdout = std::io::stdout(); - - // Output -> stdout handling - std::thread::spawn(move || { - let mut reader = BufReader::new(reader); - let mut buffer = [0; 8 * 1024]; - - while let Ok(n) = reader.read(&mut buffer) { - if n == 0 { - break; - } - - let content = &buffer[..n]; - message_tx - .send(String::from_utf8_lossy(content).to_string()) - .ok(); - - if !quiet { - stdout.write_all(content).ok(); - stdout.flush().ok(); - } - } - }); - - let mut child = pair.slave.spawn_command(cmd)?; - // Release any handles owned by the slave - // we don't need it now that we've spawned the child. - drop(pair.slave); - - let process_killer = child.clone_killer(); - let (exit_tx, exit_rx) = bounded(1); - - let mut writer = pair.master.take_writer()?; - - // Stdin -> pty stdin - if std::io::stdout().is_tty() { - enable_raw_mode().expect("Failed to enter raw terminal mode"); - std::thread::spawn(move || { - let mut stdin = std::io::stdin(); - - if let Err(e) = os::write_to_pty(&mut stdin, &mut writer) { - trace!("Error writing to pty: {:?}", e); - } - }); - } - - std::thread::spawn(move || { - let exit = child.wait().unwrap(); - // make sure that master is only dropped after we wait on the child. Otherwise windows does not like it - drop(pair.master); - disable_raw_mode().expect("Failed to restore non-raw terminal"); - exit_tx.send(exit.to_string()).ok(); - }); - - Ok(ChildProcess::new(process_killer, message_rx, exit_rx)) -} - -/// This allows us to run a pseudoterminal with a fake node ipc channel -/// this makes it possible to be backwards compatible with the old implementation -#[napi] -pub fn nx_fork( - id: String, - fork_script: String, - psuedo_ipc_path: String, - command_dir: Option, - js_env: Option>, - quiet: bool, -) -> napi::Result { - let command = format!( - "node {} {} {}", - os::handle_path_space(fork_script), - psuedo_ipc_path, - id - ); - - trace!("nx_fork command: {}", &command); - run_command(command, command_dir, js_env, Some(quiet)) -} diff --git a/packages/nx/src/native/index.d.ts b/packages/nx/src/native/index.d.ts index 3a3fc09cacd97..c5469a3c9c4fc 100644 --- a/packages/nx/src/native/index.d.ts +++ b/packages/nx/src/native/index.d.ts @@ -21,12 +21,6 @@ export function expandOutputs(directory: string, entries: Array): Array< export function getFilesForOutputs(directory: string, entries: Array): Array export function remove(src: string): void export function copy(src: string, dest: string): void -export function runCommand(command: string, commandDir?: string | undefined | null, jsEnv?: Record | undefined | null, quiet?: boolean | undefined | null): ChildProcess -/** - * This allows us to run a pseudoterminal with a fake node ipc channel - * this makes it possible to be backwards compatible with the old implementation - */ -export function nxFork(id: string, forkScript: string, psuedoIpcPath: string, commandDir: string | undefined | null, jsEnv: Record | undefined | null, quiet: boolean): ChildProcess export function hashArray(input: Array): string export function hashFile(file: string): string | null export function findImports(projectFileMap: Record>): Array @@ -146,17 +140,26 @@ export interface FileMap { nonProjectFiles: Array } export function testOnlyTransferFileMap(projectFiles: Record>, nonProjectFiles: Array): NxWorkspaceFilesExternals -export class ChildProcess { - kill(): void - onExit(callback: (message: string) => void): void - onOutput(callback: (message: string) => void): void -} export class ImportResult { file: string sourceProject: string dynamicImportExpressions: Array staticImportExpressions: Array } +export class ChildProcess { + kill(): void + onExit(callback: (message: string) => void): void + onOutput(callback: (message: string) => void): void +} +export class RustPseudoTerminal { + constructor() + runCommand(command: string, commandDir?: string | undefined | null, jsEnv?: Record | undefined | null, quiet?: boolean | undefined | null): ChildProcess + /** + * This allows us to run a pseudoterminal with a fake node ipc channel + * this makes it possible to be backwards compatible with the old implementation + */ + fork(id: string, forkScript: string, pseudoIpcPath: string, commandDir: string | undefined | null, jsEnv: Record | undefined | null, quiet: boolean): ChildProcess +} export class HashPlanner { constructor(nxJson: NxJson, projectGraph: ExternalObject) getPlans(taskIds: Array, taskGraph: TaskGraph): Record diff --git a/packages/nx/src/native/index.js b/packages/nx/src/native/index.js index d1e70f2555ea9..21277c6d1ed10 100644 --- a/packages/nx/src/native/index.js +++ b/packages/nx/src/native/index.js @@ -246,20 +246,19 @@ if (!nativeBinding) { throw new Error(`Failed to load native binding`) } -const { expandOutputs, getFilesForOutputs, remove, copy, ChildProcess, runCommand, nxFork, hashArray, hashFile, ImportResult, findImports, transferProjectGraph, HashPlanner, TaskHasher, EventType, Watcher, WorkspaceContext, WorkspaceErrors, testOnlyTransferFileMap } = nativeBinding +const { expandOutputs, getFilesForOutputs, remove, copy, hashArray, hashFile, ImportResult, findImports, transferProjectGraph, ChildProcess, RustPseudoTerminal, HashPlanner, TaskHasher, EventType, Watcher, WorkspaceContext, WorkspaceErrors, testOnlyTransferFileMap } = nativeBinding module.exports.expandOutputs = expandOutputs module.exports.getFilesForOutputs = getFilesForOutputs module.exports.remove = remove module.exports.copy = copy -module.exports.ChildProcess = ChildProcess -module.exports.runCommand = runCommand -module.exports.nxFork = nxFork module.exports.hashArray = hashArray module.exports.hashFile = hashFile module.exports.ImportResult = ImportResult module.exports.findImports = findImports module.exports.transferProjectGraph = transferProjectGraph +module.exports.ChildProcess = ChildProcess +module.exports.RustPseudoTerminal = RustPseudoTerminal module.exports.HashPlanner = HashPlanner module.exports.TaskHasher = TaskHasher module.exports.EventType = EventType diff --git a/packages/nx/src/native/mod.rs b/packages/nx/src/native/mod.rs index 2b1fe75593c29..d56e91337d257 100644 --- a/packages/nx/src/native/mod.rs +++ b/packages/nx/src/native/mod.rs @@ -1,10 +1,10 @@ pub mod cache; -pub mod command; pub mod glob; pub mod hasher; mod logger; pub mod plugins; pub mod project_graph; +pub mod pseudo_terminal; pub mod tasks; mod types; mod utils; diff --git a/packages/nx/src/native/pseudo_terminal/child_process.rs b/packages/nx/src/native/pseudo_terminal/child_process.rs new file mode 100644 index 0000000000000..be4deb401ec13 --- /dev/null +++ b/packages/nx/src/native/pseudo_terminal/child_process.rs @@ -0,0 +1,85 @@ +use crossbeam_channel::Receiver; +use napi::{ + threadsafe_function::{ + ErrorStrategy::Fatal, ThreadsafeFunction, ThreadsafeFunctionCallMode::NonBlocking, + }, + Env, JsFunction, +}; +use portable_pty::ChildKiller; + +pub enum ChildProcessMessage { + Kill, +} + +#[napi] +pub struct ChildProcess { + process_killer: Box, + message_receiver: Receiver, + pub(crate) wait_receiver: Receiver, +} +#[napi] +impl ChildProcess { + pub fn new( + process_killer: Box, + message_receiver: Receiver, + exit_receiver: Receiver, + ) -> Self { + Self { + process_killer, + message_receiver, + wait_receiver: exit_receiver, + } + } + + #[napi] + pub fn kill(&mut self) -> anyhow::Result<()> { + self.process_killer.kill().map_err(anyhow::Error::from) + } + + #[napi] + pub fn on_exit( + &mut self, + #[napi(ts_arg_type = "(message: string) => void")] callback: JsFunction, + ) -> napi::Result<()> { + let wait = self.wait_receiver.clone(); + let callback_tsfn: ThreadsafeFunction = + callback.create_threadsafe_function(0, |ctx| Ok(vec![ctx.value]))?; + + std::thread::spawn(move || { + // we will only get one exit_code here, so we dont need to do a while loop + if let Ok(exit_code) = wait.recv() { + callback_tsfn.call(exit_code, NonBlocking); + } + }); + + Ok(()) + } + + #[napi] + pub fn on_output( + &mut self, + env: Env, + #[napi(ts_arg_type = "(message: string) => void")] callback: JsFunction, + ) -> napi::Result<()> { + let rx = self.message_receiver.clone(); + + let mut callback_tsfn: ThreadsafeFunction = + callback.create_threadsafe_function(0, |ctx| Ok(vec![ctx.value]))?; + + callback_tsfn.unref(&env)?; + + std::thread::spawn(move || { + while let Ok(content) = rx.recv() { + // windows will add `ESC[6n` to the beginning of the output, + // we dont want to store this ANSI code in cache, because replays will cause issues + // remove it before sending it to js + #[cfg(windows)] + let content = content.replace("\x1B[6n", ""); + + callback_tsfn.call(content, NonBlocking); + } + }); + + Ok(()) + } +} diff --git a/packages/nx/src/native/command/unix.rs b/packages/nx/src/native/pseudo_terminal/command/unix.rs similarity index 100% rename from packages/nx/src/native/command/unix.rs rename to packages/nx/src/native/pseudo_terminal/command/unix.rs diff --git a/packages/nx/src/native/command/windows.rs b/packages/nx/src/native/pseudo_terminal/command/windows.rs similarity index 100% rename from packages/nx/src/native/command/windows.rs rename to packages/nx/src/native/pseudo_terminal/command/windows.rs diff --git a/packages/nx/src/native/pseudo_terminal/mac.rs b/packages/nx/src/native/pseudo_terminal/mac.rs new file mode 100644 index 0000000000000..325b83806eb5c --- /dev/null +++ b/packages/nx/src/native/pseudo_terminal/mac.rs @@ -0,0 +1,55 @@ +use std::collections::HashMap; + +use tracing::trace; + +use super::child_process::ChildProcess; +use super::os; +use super::pseudo_terminal::{create_pseudo_terminal, run_command}; +use crate::native::logger::enable_logger; + +#[napi] +pub struct RustPseudoTerminal {} + +#[napi] +impl RustPseudoTerminal { + #[napi(constructor)] + pub fn new() -> napi::Result { + enable_logger(); + Ok(Self {}) + } + + #[napi] + pub fn run_command( + &self, + command: String, + command_dir: Option, + js_env: Option>, + quiet: Option, + ) -> napi::Result { + let pseudo_terminal = create_pseudo_terminal()?; + run_command(&pseudo_terminal, command, command_dir, js_env, quiet) + } + + /// This allows us to run a pseudoterminal with a fake node ipc channel + /// this makes it possible to be backwards compatible with the old implementation + #[napi] + pub fn fork( + &self, + id: String, + fork_script: String, + pseudo_ipc_path: String, + command_dir: Option, + js_env: Option>, + quiet: bool, + ) -> napi::Result { + let command = format!( + "node {} {} {}", + os::handle_path_space(fork_script), + pseudo_ipc_path, + id + ); + + trace!("nx_fork command: {}", &command); + self.run_command(command, command_dir, js_env, Some(quiet)) + } +} diff --git a/packages/nx/src/native/pseudo_terminal/mod.rs b/packages/nx/src/native/pseudo_terminal/mod.rs new file mode 100644 index 0000000000000..0b0dd639a2b78 --- /dev/null +++ b/packages/nx/src/native/pseudo_terminal/mod.rs @@ -0,0 +1,11 @@ +#[cfg_attr(windows, path = "command/windows.rs")] +#[cfg_attr(not(windows), path = "command/unix.rs")] +mod os; + +mod pseudo_terminal; + +pub mod child_process; + +#[cfg_attr(target_os = "macos", path = "mac.rs")] +#[cfg_attr(not(target_os = "macos"), path = "non-mac.rs")] +pub mod rust_pseudo_terminal; diff --git a/packages/nx/src/native/pseudo_terminal/non-mac.rs b/packages/nx/src/native/pseudo_terminal/non-mac.rs new file mode 100644 index 0000000000000..8bfd73cb5d46b --- /dev/null +++ b/packages/nx/src/native/pseudo_terminal/non-mac.rs @@ -0,0 +1,59 @@ +use std::collections::HashMap; + +use tracing::trace; + +use super::child_process::ChildProcess; +use super::os; +use super::pseudo_terminal::{create_pseudo_terminal, run_command, PseudoTerminal}; +use crate::native::logger::enable_logger; + +#[napi] +pub struct RustPseudoTerminal { + pseudo_terminal: PseudoTerminal, +} + +#[napi] +impl RustPseudoTerminal { + #[napi(constructor)] + pub fn new() -> napi::Result { + enable_logger(); + + let pseudo_terminal = create_pseudo_terminal()?; + + Ok(Self { pseudo_terminal }) + } + + #[napi] + pub fn run_command( + &self, + command: String, + command_dir: Option, + js_env: Option>, + quiet: Option, + ) -> napi::Result { + run_command(&self.pseudo_terminal, command, command_dir, js_env, quiet) + } + + /// This allows us to run a pseudoterminal with a fake node ipc channel + /// this makes it possible to be backwards compatible with the old implementation + #[napi] + pub fn fork( + &self, + id: String, + fork_script: String, + pseudo_ipc_path: String, + command_dir: Option, + js_env: Option>, + quiet: bool, + ) -> napi::Result { + let command = format!( + "node {} {} {}", + os::handle_path_space(fork_script), + pseudo_ipc_path, + id + ); + + trace!("nx_fork command: {}", &command); + self.run_command(command, command_dir, js_env, Some(quiet)) + } +} diff --git a/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs b/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs new file mode 100644 index 0000000000000..d30ff76a04a9f --- /dev/null +++ b/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs @@ -0,0 +1,228 @@ +use std::{ + collections::HashMap, + io::{Read, Write}, + sync::{ + atomic::{AtomicBool, Ordering}, + Arc, + }, + time::Instant, +}; + +use anyhow::anyhow; +use crossbeam_channel::{bounded, unbounded, Receiver}; +use crossterm::{ + terminal, + terminal::{disable_raw_mode, enable_raw_mode}, + tty::IsTty, +}; +use portable_pty::{CommandBuilder, NativePtySystem, PtyPair, PtySize, PtySystem}; +use tracing::log::trace; + +use super::os; +use crate::native::pseudo_terminal::child_process::ChildProcess; + +pub struct PseudoTerminal { + pub pty_pair: PtyPair, + pub message_rx: Receiver, + pub printing_rx: Receiver<()>, + pub quiet: Arc, + pub running: Arc, +} + +pub fn create_pseudo_terminal() -> napi::Result { + let quiet = Arc::new(AtomicBool::new(true)); + let running = Arc::new(AtomicBool::new(false)); + + let pty_system = NativePtySystem::default(); + + let (w, h) = terminal::size().unwrap_or((80, 24)); + trace!("Opening Pseudo Terminal"); + let pty_pair = pty_system.openpty(PtySize { + rows: h, + cols: w, + pixel_width: 0, + pixel_height: 0, + })?; + + let mut writer = pty_pair.master.take_writer()?; + // Stdin -> pty stdin + if std::io::stdout().is_tty() { + trace!("Passing through stdin"); + std::thread::spawn(move || { + let mut stdin = std::io::stdin(); + if let Err(e) = os::write_to_pty(&mut stdin, &mut writer) { + trace!("Error writing to pty: {:?}", e); + } + }); + } + if std::io::stdout().is_tty() { + trace!("Enabling raw mode"); + enable_raw_mode().expect("Failed to enter raw terminal mode"); + } + + let mut reader = pty_pair.master.try_clone_reader()?; + let (message_tx, message_rx) = unbounded(); + let (printing_tx, printing_rx) = unbounded(); + // Output -> stdout handling + let quiet_clone = quiet.clone(); + let running_clone = running.clone(); + std::thread::spawn(move || { + let mut stdout = std::io::stdout(); + let mut buf = [0; 8 * 1024]; + + loop { + if let Ok(len) = reader.read(&mut buf) { + if len == 0 { + break; + } + message_tx + .send(String::from_utf8_lossy(&buf[0..len]).to_string()) + .ok(); + let quiet = quiet_clone.load(Ordering::Relaxed); + trace!("Quiet: {}", quiet); + if !quiet { + if stdout.write_all(&buf[0..len]).is_err() { + break; + } else { + let _ = stdout.flush(); + } + } + } + if !running_clone.load(Ordering::SeqCst) { + printing_tx.send(()).ok(); + } + } + printing_tx.send(()).ok(); + }); + if std::io::stdout().is_tty() { + disable_raw_mode().expect("Failed to enter raw terminal mode"); + } + Ok(PseudoTerminal { + quiet, + running, + pty_pair, + message_rx, + printing_rx, + }) +} +pub fn run_command( + pseudo_terminal: &PseudoTerminal, + command: String, + command_dir: Option, + js_env: Option>, + quiet: Option, +) -> napi::Result { + let command_dir = get_directory(command_dir)?; + + let pair = &pseudo_terminal.pty_pair; + + let quiet = quiet.unwrap_or(false); + + pseudo_terminal.quiet.store(quiet, Ordering::Relaxed); + + let mut cmd = command_builder(); + cmd.arg(command.as_str()); + cmd.cwd(command_dir); + + if let Some(js_env) = js_env { + for (key, value) in js_env { + cmd.env(key, value); + } + } + + let (exit_to_process_tx, exit_to_process_rx) = bounded(1); + let mut child = pair.slave.spawn_command(cmd)?; + pseudo_terminal.running.store(true, Ordering::SeqCst); + trace!("Running {}", command); + let is_tty = std::io::stdout().is_tty(); + if is_tty { + trace!("Enabling raw mode"); + enable_raw_mode().expect("Failed to enter raw terminal mode"); + } + let process_killer = child.clone_killer(); + + let running_clone = pseudo_terminal.running.clone(); + let printing_rx = pseudo_terminal.printing_rx.clone(); + std::thread::spawn(move || { + trace!("Waiting for {}", command); + + let res = child.wait(); + if let Ok(exit) = res { + trace!("{} Exited", command); + // This mitigates the issues with ConPTY on windows and makes it work. + running_clone.store(false, Ordering::SeqCst); + trace!("Waiting for printing to finish"); + let timeout = 500; + let a = Instant::now(); + if cfg!(windows) { + loop { + if let Ok(_) = printing_rx.try_recv() { + break; + } + if a.elapsed().as_millis() > timeout { + break; + } + } + } + if is_tty { + disable_raw_mode().expect("Failed to restore non-raw terminal"); + } + exit_to_process_tx.send(exit.to_string()).ok(); + }; + }); + + Ok(ChildProcess::new( + process_killer, + pseudo_terminal.message_rx.clone(), + exit_to_process_rx, + )) +} + +fn get_directory(command_dir: Option) -> anyhow::Result { + if let Some(command_dir) = command_dir { + Ok(command_dir) + } else { + std::env::current_dir() + .map(|v| v.to_string_lossy().to_string()) + .map_err(|_| { + anyhow!("failed to get current directory, please specify command_dir explicitly") + }) + } +} + +fn command_builder() -> CommandBuilder { + if cfg!(windows) { + let comspec = std::env::var("COMSPEC"); + let shell = comspec + .as_ref() + .map(|v| v.as_str()) + .unwrap_or_else(|_| "cmd.exe"); + let mut command = CommandBuilder::new(shell); + command.arg("/C"); + + command + } else { + let mut command = CommandBuilder::new("sh"); + command.arg("-c"); + command + } +} + +#[cfg(all(test, windows))] +mod tests { + use super::*; + + #[test] + fn can_run_commands() { + let mut i = 0; + let pseudo_terminal = create_pseudo_terminal().unwrap(); + while i < 10 { + println!("Running {}", i); + let cp1 = + run_command(&pseudo_terminal, String::from("whoami"), None, None, None).unwrap(); + cp1.wait_receiver.recv().unwrap(); + i += 1; + } + drop(pseudo_terminal); + } +} diff --git a/packages/nx/src/native/tests/command.spec.ts b/packages/nx/src/native/tests/command.spec.ts deleted file mode 100644 index 5daa80d49c424..0000000000000 --- a/packages/nx/src/native/tests/command.spec.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { PseudoTtyProcess } from '../../utils/child-process'; -import { runCommand } from '../index'; - -describe('runCommand', () => { - it('should run command', async () => { - const childProcess = runCommand('echo "hello world"', process.cwd()); - expect(() => { - childProcess.onExit((exitCode) => expect(exitCode).toEqual(0)); - }); - }); - it('should kill a running command', () => { - const childProcess = new PseudoTtyProcess( - runCommand('sleep 3 && echo "hello world" > file.txt', process.cwd()) - ); - childProcess.onExit((exit_code) => { - expect(exit_code).not.toEqual(0); - }); - childProcess.kill(); - expect(childProcess.isAlive).toEqual(false); - }, 1000); - - it('should subscribe to output', (done) => { - const childProcess = runCommand('echo "hello world"', process.cwd()); - - let output = ''; - childProcess.onOutput((chunk) => { - output += chunk; - }); - - childProcess.onExit(() => { - expect(output.trim()).toContain('hello world'); - done(); - }); - }); - - it('should be tty', (done) => { - const childProcess = runCommand('node -p "process.stdout.isTTY"'); - let output = ''; - childProcess.onOutput((out) => { - output += out.trim(); - // check to make sure that we have ansi sequence characters only available in tty terminals - }); - childProcess.onExit((_) => { - expect(JSON.stringify(output)).toContain('\\u001b[33mtrue\\u001b[39m'); - done(); - }); - }); -}); diff --git a/packages/nx/src/tasks-runner/fork.ts b/packages/nx/src/tasks-runner/fork.ts index e1740c3379f19..04d63edd85fc1 100644 --- a/packages/nx/src/tasks-runner/fork.ts +++ b/packages/nx/src/tasks-runner/fork.ts @@ -1,8 +1,8 @@ import { fork, Serializable } from 'child_process'; import { join } from 'path'; -import { PsuedoIPCClient } from './psuedo-ipc'; +import { PseudoIPCClient } from './pseudo-ipc'; -const psuedoIPCPath = process.argv[2]; +const pseudoIPCPath = process.argv[2]; const forkId = process.argv[3]; const script = join(__dirname, '../../bin/run-executor.js'); @@ -11,19 +11,19 @@ const childProcess = fork(script, { stdio: ['inherit', 'inherit', 'inherit', 'ipc'], }); -const psuedoIPC = new PsuedoIPCClient(psuedoIPCPath); +const pseudoIPC = new PseudoIPCClient(pseudoIPCPath); -psuedoIPC.onMessageFromParent(forkId, (message) => { +pseudoIPC.onMessageFromParent(forkId, (message) => { childProcess.send(message); }); -psuedoIPC.notifyChildIsReady(forkId); +pseudoIPC.notifyChildIsReady(forkId); process.on('message', (message: Serializable) => { - psuedoIPC.sendMessageToParent(message); + pseudoIPC.sendMessageToParent(message); }); childProcess.on('exit', (code) => { - psuedoIPC.close(); + pseudoIPC.close(); process.exit(code); }); diff --git a/packages/nx/src/tasks-runner/forked-process-task-runner.ts b/packages/nx/src/tasks-runner/forked-process-task-runner.ts index 15730c733b079..c56301b9d8f08 100644 --- a/packages/nx/src/tasks-runner/forked-process-task-runner.ts +++ b/packages/nx/src/tasks-runner/forked-process-task-runner.ts @@ -15,10 +15,7 @@ import { import { stripIndents } from '../utils/strip-indents'; import { Task, TaskGraph } from '../config/task-graph'; import { Transform } from 'stream'; -import { nxFork } from '../native'; -import { PsuedoIPCServer } from './psuedo-ipc'; -import { FORKED_PROCESS_OS_SOCKET_PATH } from '../daemon/socket-utils'; -import { PseudoTtyProcess } from '../utils/child-process'; +import { PseudoTtyProcess, getPseudoTerminal } from './pseudo-terminal'; import { signalToCode } from '../utils/exit-codes'; const forkScript = join(__dirname, './fork.js'); @@ -31,14 +28,12 @@ export class ForkedProcessTaskRunner { private readonly verbose = process.env.NX_VERBOSE_LOGGING === 'true'; private processes = new Set(); - private psuedoIPCPath = FORKED_PROCESS_OS_SOCKET_PATH(process.pid.toString()); - - private psuedoIPC = new PsuedoIPCServer(this.psuedoIPCPath); + private pseudoTerminal = getPseudoTerminal(); constructor(private readonly options: DefaultTasksRunnerOptions) {} async init() { - await this.psuedoIPC.init(); + await this.pseudoTerminal.init(); this.setupProcessEventListeners(); } @@ -180,7 +175,7 @@ export class ForkedProcessTaskRunner { env, }); } else { - return this.forkProcessWithPsuedoTerminal(task, { + return this.forkProcessWithPseudoTerminal(task, { temporaryOutputPath, streamOutput, taskGraph, @@ -189,10 +184,9 @@ export class ForkedProcessTaskRunner { } } - private async forkProcessWithPsuedoTerminal( + private async forkProcessWithPseudoTerminal( task: Task, { - temporaryOutputPath, streamOutput, taskGraph, env, @@ -209,20 +203,13 @@ export class ForkedProcessTaskRunner { } const childId = task.id; - const p = new PseudoTtyProcess( - nxFork( - childId, - forkScript, - this.psuedoIPCPath, - process.cwd(), - env, - !streamOutput - ) - ); - - await this.psuedoIPC.waitForChildReady(childId); + const p = await this.pseudoTerminal.fork(childId, forkScript, { + cwd: process.cwd(), + jsEnv: env, + quiet: !streamOutput, + }); - this.psuedoIPC.sendMessageToChild(childId, { + p.send({ targetDescription: task.target, overrides: task.overrides, taskGraph, @@ -452,14 +439,14 @@ export class ForkedProcessTaskRunner { } private setupProcessEventListeners() { - this.psuedoIPC.onMessageFromChildren((message: Serializable) => { + this.pseudoTerminal.onMessageFromChildren((message: Serializable) => { process.send(message); }); // When the nx process gets a message, it will be sent into the task's process process.on('message', (message: Serializable) => { // this.publisher.publish(message.toString()); - this.psuedoIPC.sendMessageToChildren(message); + this.pseudoTerminal.sendMessageToChildren(message); this.processes.forEach((p) => { if ('connected' in p && p.connected) { @@ -504,10 +491,6 @@ export class ForkedProcessTaskRunner { // will store results to the cache and will terminate this process }); } - - destroy() { - this.psuedoIPC.close(); - } } const colors = [ diff --git a/packages/nx/src/tasks-runner/psuedo-ipc.ts b/packages/nx/src/tasks-runner/pseudo-ipc.ts similarity index 90% rename from packages/nx/src/tasks-runner/psuedo-ipc.ts rename to packages/nx/src/tasks-runner/pseudo-ipc.ts index dbb7f0e8768a4..1a251ea24e62a 100644 --- a/packages/nx/src/tasks-runner/psuedo-ipc.ts +++ b/packages/nx/src/tasks-runner/pseudo-ipc.ts @@ -6,28 +6,28 @@ * Main Nx Process * * Calls Rust Fork Function * * `node fork.js` - * * Create a Rust - Node.js Agnostic Channel aka Psuedo IPC Channel + * * Create a Rust - Node.js Agnostic Channel aka Pseudo IPC Channel * * This returns RustChildProcess * * RustChildProcess.onMessage(msg => ()); - * * psuedo_ipc_channel.on_message() => tx.send(msg); + * * pseudo_ipc_channel.on_message() => tx.send(msg); * * Node.js Fork Wrapper (fork.js) * * fork(run-command.js) with `inherit` and `ipc` * * This will create a Node IPC Channel - * * channel = getPsuedoIpcChannel(process.env.NX_IPC_CHANNEL_ID) - * * forkChildProcess.on('message', writeToPsuedoIpcChannel) + * * channel = getPseudoIpcChannel(process.env.NX_IPC_CHANNEL_ID) + * * forkChildProcess.on('message', writeToPseudoIpcChannel) */ import { connect, Server, Socket } from 'net'; import { consumeMessagesFromSocket } from '../utils/consume-messages-from-socket'; import { Serializable } from 'child_process'; -export interface PsuedoIPCMessage { +export interface PseudoIPCMessage { type: 'TO_CHILDREN_FROM_PARENT' | 'TO_PARENT_FROM_CHILDREN' | 'CHILD_READY'; id: string | undefined; message: Serializable; } -export class PsuedoIPCServer { +export class PseudoIPCServer { private sockets = new Set(); private server: Server | undefined; @@ -66,7 +66,7 @@ export class PsuedoIPCServer { socket.on( 'data', consumeMessagesFromSocket(async (rawMessage) => { - const { type, message }: PsuedoIPCMessage = JSON.parse(rawMessage); + const { type, message }: PseudoIPCMessage = JSON.parse(rawMessage); if (type === 'TO_PARENT_FROM_CHILDREN') { for (const childMessage of this.childMessages) { childMessage.onMessage(message); @@ -110,6 +110,7 @@ export class PsuedoIPCServer { socket.write(String.fromCodePoint(4)); }); } + onMessageFromChildren( onMessage: (message: Serializable) => void, onClose: () => void = () => {}, @@ -128,10 +129,11 @@ export class PsuedoIPCServer { } } -export class PsuedoIPCClient { +export class PseudoIPCClient { private socket: Socket | undefined = connect(this.path); constructor(private path: string) {} + sendMessageToParent(message: Serializable) { this.socket.write( JSON.stringify({ type: 'TO_PARENT_FROM_CHILDREN', message }) @@ -145,7 +147,7 @@ export class PsuedoIPCClient { JSON.stringify({ type: 'CHILD_READY', message: id, - } as PsuedoIPCMessage) + } as PseudoIPCMessage) ); // send EOT to indicate that the message has been fully written this.socket.write(String.fromCodePoint(4)); @@ -160,7 +162,7 @@ export class PsuedoIPCClient { this.socket.on( 'data', consumeMessagesFromSocket(async (rawMessage) => { - const { id, type, message }: PsuedoIPCMessage = JSON.parse(rawMessage); + const { id, type, message }: PseudoIPCMessage = JSON.parse(rawMessage); if (type === 'TO_CHILDREN_FROM_PARENT') { if (id && id === forkId) { onMessage(message); @@ -176,6 +178,7 @@ export class PsuedoIPCClient { return this; } + close() { this.socket?.destroy(); } diff --git a/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts b/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts new file mode 100644 index 0000000000000..25d11e572fdd5 --- /dev/null +++ b/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts @@ -0,0 +1,73 @@ +import { getPseudoTerminal, PseudoTerminal } from './pseudo-terminal'; + +describe('PseudoTerminal', () => { + let terminal: PseudoTerminal; + beforeAll(() => { + terminal = getPseudoTerminal(); + }); + + afterAll(() => { + terminal = undefined; + }); + + it('should run command', (done) => { + const childProcess = terminal.runCommand('echo "hello world"'); + childProcess.onExit((exitCode) => { + expect(exitCode).toEqual(0); + done(); + }); + }); + it('should kill a running command', (done) => { + const childProcess = terminal.runCommand( + 'sleep 3 && echo "hello world" > file.txt' + ); + childProcess.onExit((exit_code) => { + expect(exit_code).not.toEqual(0); + done(); + }); + childProcess.kill(); + expect(childProcess.isAlive).toEqual(false); + }, 1000); + + it('should subscribe to output', (done) => { + const childProcess = terminal.runCommand('echo "hello world"'); + + let output = ''; + childProcess.onOutput((chunk) => { + output += chunk; + }); + + childProcess.onExit(() => { + expect(output.trim()).toContain('hello world'); + done(); + }); + }); + + if (process.env.CI !== 'true') { + it('should be tty', (done) => { + const childProcess = terminal.runCommand( + 'node -p "if (process.stdout.isTTY === undefined) process.exit(1)"' + ); + childProcess.onExit((code) => { + expect(code).toEqual(0); + done(); + }); + }); + } + + it('should run multiple commands', async () => { + function runCommand() { + return new Promise((res) => { + const cp1 = terminal.runCommand('whoami', {}); + + cp1.onExit(res); + }); + } + + let i = 0; + while (i < 10) { + await runCommand(); + i++; + } + }); +}); diff --git a/packages/nx/src/tasks-runner/pseudo-terminal.ts b/packages/nx/src/tasks-runner/pseudo-terminal.ts new file mode 100644 index 0000000000000..fa5ad65371e19 --- /dev/null +++ b/packages/nx/src/tasks-runner/pseudo-terminal.ts @@ -0,0 +1,185 @@ +import { ChildProcess, RustPseudoTerminal } from '../native'; +import { PseudoIPCServer } from './pseudo-ipc'; +import { FORKED_PROCESS_OS_SOCKET_PATH } from '../daemon/socket-utils'; +import { Serializable } from 'child_process'; +import { signalToCode } from '../utils/exit-codes'; + +let pseudoTerminal: PseudoTerminal; + +export function getPseudoTerminal() { + pseudoTerminal ??= new PseudoTerminal(new RustPseudoTerminal()); + + return pseudoTerminal; +} + +export class PseudoTerminal { + private pseudoIPCPath = FORKED_PROCESS_OS_SOCKET_PATH(process.pid.toString()); + private pseudoIPC = new PseudoIPCServer(this.pseudoIPCPath); + + private initialized: boolean = false; + + constructor(private rustPseudoTerminal: RustPseudoTerminal) { + this.setupProcessListeners(); + } + + async init() { + if (this.initialized) { + return; + } + await this.pseudoIPC.init(); + this.initialized = true; + } + + runCommand( + command: string, + { + cwd, + jsEnv, + quiet, + }: { + cwd?: string; + jsEnv?: Record; + quiet?: boolean; + } = {} + ) { + return new PseudoTtyProcess( + this.rustPseudoTerminal.runCommand(command, cwd, jsEnv, quiet) + ); + } + + async fork( + id: string, + script: string, + { + cwd, + jsEnv, + quiet, + }: { + cwd?: string; + jsEnv?: Record; + quiet?: boolean; + } + ) { + if (!this.initialized) { + throw new Error('Call init() before forking processes'); + } + const cp = new PseudoTtyProcessWithSend( + this.rustPseudoTerminal.fork( + id, + script, + this.pseudoIPCPath, + cwd, + jsEnv, + quiet + ), + id, + this.pseudoIPC + ); + + await this.pseudoIPC.waitForChildReady(id); + + return cp; + } + + sendMessageToChildren(message: Serializable) { + this.pseudoIPC.sendMessageToChildren(message); + } + + onMessageFromChildren(callback: (message: Serializable) => void) { + this.pseudoIPC.onMessageFromChildren(callback); + } + + private setupProcessListeners() { + const shutdown = () => { + this.shutdownPseudoIPC(); + }; + process.on('SIGINT', () => { + this.shutdownPseudoIPC(); + }); + process.on('SIGTERM', () => { + this.shutdownPseudoIPC(); + }); + process.on('SIGHUP', () => { + this.shutdownPseudoIPC(); + }); + process.on('exit', () => { + this.shutdownPseudoIPC(); + }); + } + + private shutdownPseudoIPC() { + if (this.initialized) { + this.pseudoIPC.close(); + } + } +} + +export class PseudoTtyProcess { + isAlive = true; + + exitCallbacks = []; + + constructor(private childProcess: ChildProcess) { + childProcess.onExit((message) => { + this.isAlive = false; + + const exitCode = messageToCode(message); + + this.exitCallbacks.forEach((cb) => cb(exitCode)); + }); + } + + onExit(callback: (code: number) => void): void { + this.exitCallbacks.push(callback); + } + + onOutput(callback: (message: string) => void): void { + this.childProcess.onOutput(callback); + } + + kill(): void { + try { + this.childProcess.kill(); + } catch { + // when the child process completes before we explicitly call kill, this will throw + // do nothing + } finally { + if (this.isAlive == true) { + this.isAlive = false; + } + } + } +} + +export class PseudoTtyProcessWithSend extends PseudoTtyProcess { + constructor( + _childProcess: ChildProcess, + private id: string, + private pseudoIpc: PseudoIPCServer + ) { + super(_childProcess); + } + + send(message: Serializable) { + this.pseudoIpc.sendMessageToChild(this.id, message); + } +} + +function messageToCode(message: string): number { + if (message.startsWith('Terminated by ')) { + switch (message.replace('Terminated by ', '').trim()) { + case 'Termination': + return 143; + case 'Interrupt': + return 130; + default: + return 128; + } + } else if (message.startsWith('Exited with code ')) { + return parseInt(message.replace('Exited with code ', '').trim()); + } else if (message === 'Success') { + return 0; + } else { + return 1; + } +} diff --git a/packages/nx/src/tasks-runner/task-orchestrator.ts b/packages/nx/src/tasks-runner/task-orchestrator.ts index ad94aaf2816ef..a2fb90450d67b 100644 --- a/packages/nx/src/tasks-runner/task-orchestrator.ts +++ b/packages/nx/src/tasks-runner/task-orchestrator.ts @@ -99,7 +99,6 @@ export class TaskOrchestrator { 'task-execution:start', 'task-execution:end' ); - this.forkedProcessTaskRunner.destroy(); this.cache.removeOldCacheRecords(); return this.completedTasks; From c7719c01f206afbac255b628c562d5a3819cb457 Mon Sep 17 00:00:00 2001 From: Nicholas Cunningham Date: Fri, 15 Mar 2024 09:52:37 -0600 Subject: [PATCH 2/5] docs(nx-dev): Refresh /showcase/example-repos (#22320) --- docs/generated/manifests/menus.json | 96 +++++----- docs/generated/manifests/nx.json | 142 +++++++-------- docs/generated/manifests/tags.json | 22 +-- docs/map.json | 47 ++--- docs/shared/reference/sitemap.md | 32 ++-- docs/shared/showcase/example-repos.md | 29 +++ nx-dev/ui-markdoc/src/lib/icons.tsx | 168 ++++++++++++++++++ .../src/lib/tags/cards.component.tsx | 8 +- 8 files changed, 371 insertions(+), 173 deletions(-) create mode 100644 docs/shared/showcase/example-repos.md diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index e34f573b8da87..d432a9bf44a63 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -4285,7 +4285,7 @@ "isExternal": false, "children": [ { - "name": "Add an Express Project", + "name": "Express", "path": "/showcase/example-repos/add-express", "id": "add-express", "isExternal": false, @@ -4293,7 +4293,7 @@ "disableCollapsible": false }, { - "name": "Add a Lit Project", + "name": "Lit", "path": "/showcase/example-repos/add-lit", "id": "add-lit", "isExternal": false, @@ -4301,7 +4301,7 @@ "disableCollapsible": false }, { - "name": "Add a Solid Project", + "name": "Solid", "path": "/showcase/example-repos/add-solid", "id": "add-solid", "isExternal": false, @@ -4309,7 +4309,7 @@ "disableCollapsible": false }, { - "name": "Add a Qwik Project", + "name": "Qwik", "path": "/showcase/example-repos/add-qwik", "id": "add-qwik", "isExternal": false, @@ -4317,7 +4317,7 @@ "disableCollapsible": false }, { - "name": "Add a Rust Project", + "name": "Rust", "path": "/showcase/example-repos/add-rust", "id": "add-rust", "isExternal": false, @@ -4325,7 +4325,7 @@ "disableCollapsible": false }, { - "name": "Add a .NET Project", + "name": ".NET", "path": "/showcase/example-repos/add-dotnet", "id": "add-dotnet", "isExternal": false, @@ -4333,7 +4333,7 @@ "disableCollapsible": false }, { - "name": "Add an Astro Project", + "name": "Astro", "path": "/showcase/example-repos/add-astro", "id": "add-astro", "isExternal": false, @@ -4341,7 +4341,7 @@ "disableCollapsible": false }, { - "name": "Add a Svelte Project", + "name": "Svelte", "path": "/showcase/example-repos/add-svelte", "id": "add-svelte", "isExternal": false, @@ -4349,7 +4349,7 @@ "disableCollapsible": false }, { - "name": "Add a Fastify Project", + "name": "Fastify", "path": "/showcase/example-repos/add-fastify", "id": "add-fastify", "isExternal": false, @@ -4357,7 +4357,7 @@ "disableCollapsible": false }, { - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "path": "/showcase/example-repos/apollo-react", "id": "apollo-react", "isExternal": false, @@ -4365,7 +4365,7 @@ "disableCollapsible": false }, { - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "path": "/showcase/example-repos/nestjs-prisma", "id": "nestjs-prisma", "isExternal": false, @@ -4373,7 +4373,7 @@ "disableCollapsible": false }, { - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "path": "/showcase/example-repos/mongo-fastify", "id": "mongo-fastify", "isExternal": false, @@ -4381,7 +4381,7 @@ "disableCollapsible": false }, { - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "path": "/showcase/example-repos/redis-fastify", "id": "redis-fastify", "isExternal": false, @@ -4389,7 +4389,7 @@ "disableCollapsible": false }, { - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "path": "/showcase/example-repos/postgres-fastify", "id": "postgres-fastify", "isExternal": false, @@ -4397,7 +4397,7 @@ "disableCollapsible": false }, { - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "path": "/showcase/example-repos/serverless-fastify-planetscale", "id": "serverless-fastify-planetscale", "isExternal": false, @@ -4405,7 +4405,7 @@ "disableCollapsible": false }, { - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "path": "/showcase/example-repos/mfe", "id": "mfe", "isExternal": false, @@ -4458,7 +4458,7 @@ "isExternal": false, "children": [ { - "name": "Add an Express Project", + "name": "Express", "path": "/showcase/example-repos/add-express", "id": "add-express", "isExternal": false, @@ -4466,7 +4466,7 @@ "disableCollapsible": false }, { - "name": "Add a Lit Project", + "name": "Lit", "path": "/showcase/example-repos/add-lit", "id": "add-lit", "isExternal": false, @@ -4474,7 +4474,7 @@ "disableCollapsible": false }, { - "name": "Add a Solid Project", + "name": "Solid", "path": "/showcase/example-repos/add-solid", "id": "add-solid", "isExternal": false, @@ -4482,7 +4482,7 @@ "disableCollapsible": false }, { - "name": "Add a Qwik Project", + "name": "Qwik", "path": "/showcase/example-repos/add-qwik", "id": "add-qwik", "isExternal": false, @@ -4490,7 +4490,7 @@ "disableCollapsible": false }, { - "name": "Add a Rust Project", + "name": "Rust", "path": "/showcase/example-repos/add-rust", "id": "add-rust", "isExternal": false, @@ -4498,7 +4498,7 @@ "disableCollapsible": false }, { - "name": "Add a .NET Project", + "name": ".NET", "path": "/showcase/example-repos/add-dotnet", "id": "add-dotnet", "isExternal": false, @@ -4506,7 +4506,7 @@ "disableCollapsible": false }, { - "name": "Add an Astro Project", + "name": "Astro", "path": "/showcase/example-repos/add-astro", "id": "add-astro", "isExternal": false, @@ -4514,7 +4514,7 @@ "disableCollapsible": false }, { - "name": "Add a Svelte Project", + "name": "Svelte", "path": "/showcase/example-repos/add-svelte", "id": "add-svelte", "isExternal": false, @@ -4522,7 +4522,7 @@ "disableCollapsible": false }, { - "name": "Add a Fastify Project", + "name": "Fastify", "path": "/showcase/example-repos/add-fastify", "id": "add-fastify", "isExternal": false, @@ -4530,7 +4530,7 @@ "disableCollapsible": false }, { - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "path": "/showcase/example-repos/apollo-react", "id": "apollo-react", "isExternal": false, @@ -4538,7 +4538,7 @@ "disableCollapsible": false }, { - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "path": "/showcase/example-repos/nestjs-prisma", "id": "nestjs-prisma", "isExternal": false, @@ -4546,7 +4546,7 @@ "disableCollapsible": false }, { - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "path": "/showcase/example-repos/mongo-fastify", "id": "mongo-fastify", "isExternal": false, @@ -4554,7 +4554,7 @@ "disableCollapsible": false }, { - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "path": "/showcase/example-repos/redis-fastify", "id": "redis-fastify", "isExternal": false, @@ -4562,7 +4562,7 @@ "disableCollapsible": false }, { - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "path": "/showcase/example-repos/postgres-fastify", "id": "postgres-fastify", "isExternal": false, @@ -4570,7 +4570,7 @@ "disableCollapsible": false }, { - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "path": "/showcase/example-repos/serverless-fastify-planetscale", "id": "serverless-fastify-planetscale", "isExternal": false, @@ -4578,7 +4578,7 @@ "disableCollapsible": false }, { - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "path": "/showcase/example-repos/mfe", "id": "mfe", "isExternal": false, @@ -4589,7 +4589,7 @@ "disableCollapsible": false }, { - "name": "Add an Express Project", + "name": "Express", "path": "/showcase/example-repos/add-express", "id": "add-express", "isExternal": false, @@ -4597,7 +4597,7 @@ "disableCollapsible": false }, { - "name": "Add a Lit Project", + "name": "Lit", "path": "/showcase/example-repos/add-lit", "id": "add-lit", "isExternal": false, @@ -4605,7 +4605,7 @@ "disableCollapsible": false }, { - "name": "Add a Solid Project", + "name": "Solid", "path": "/showcase/example-repos/add-solid", "id": "add-solid", "isExternal": false, @@ -4613,7 +4613,7 @@ "disableCollapsible": false }, { - "name": "Add a Qwik Project", + "name": "Qwik", "path": "/showcase/example-repos/add-qwik", "id": "add-qwik", "isExternal": false, @@ -4621,7 +4621,7 @@ "disableCollapsible": false }, { - "name": "Add a Rust Project", + "name": "Rust", "path": "/showcase/example-repos/add-rust", "id": "add-rust", "isExternal": false, @@ -4629,7 +4629,7 @@ "disableCollapsible": false }, { - "name": "Add a .NET Project", + "name": ".NET", "path": "/showcase/example-repos/add-dotnet", "id": "add-dotnet", "isExternal": false, @@ -4637,7 +4637,7 @@ "disableCollapsible": false }, { - "name": "Add an Astro Project", + "name": "Astro", "path": "/showcase/example-repos/add-astro", "id": "add-astro", "isExternal": false, @@ -4645,7 +4645,7 @@ "disableCollapsible": false }, { - "name": "Add a Svelte Project", + "name": "Svelte", "path": "/showcase/example-repos/add-svelte", "id": "add-svelte", "isExternal": false, @@ -4653,7 +4653,7 @@ "disableCollapsible": false }, { - "name": "Add a Fastify Project", + "name": "Fastify", "path": "/showcase/example-repos/add-fastify", "id": "add-fastify", "isExternal": false, @@ -4661,7 +4661,7 @@ "disableCollapsible": false }, { - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "path": "/showcase/example-repos/apollo-react", "id": "apollo-react", "isExternal": false, @@ -4669,7 +4669,7 @@ "disableCollapsible": false }, { - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "path": "/showcase/example-repos/nestjs-prisma", "id": "nestjs-prisma", "isExternal": false, @@ -4677,7 +4677,7 @@ "disableCollapsible": false }, { - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "path": "/showcase/example-repos/mongo-fastify", "id": "mongo-fastify", "isExternal": false, @@ -4685,7 +4685,7 @@ "disableCollapsible": false }, { - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "path": "/showcase/example-repos/redis-fastify", "id": "redis-fastify", "isExternal": false, @@ -4693,7 +4693,7 @@ "disableCollapsible": false }, { - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "path": "/showcase/example-repos/postgres-fastify", "id": "postgres-fastify", "isExternal": false, @@ -4701,7 +4701,7 @@ "disableCollapsible": false }, { - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "path": "/showcase/example-repos/serverless-fastify-planetscale", "id": "serverless-fastify-planetscale", "isExternal": false, @@ -4709,7 +4709,7 @@ "disableCollapsible": false }, { - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "path": "/showcase/example-repos/mfe", "id": "mfe", "isExternal": false, diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index 18c8250b509f1..e30c388523d89 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -5862,11 +5862,11 @@ "name": "Nx with your favorite tech", "description": "Examples of different ways to use Nx with your favorite tech", "mediaImage": "", - "file": "", + "file": "shared/showcase/example-repos", "itemList": [ { "id": "add-express", - "name": "Add an Express Project", + "name": "Express", "description": "Add an Express application to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-express", @@ -5877,8 +5877,8 @@ }, { "id": "add-lit", - "name": "Add a Lit Project", - "description": "Add a Lit project to your repo", + "name": "Lit", + "description": "Lit to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-lit", "itemList": [], @@ -5888,8 +5888,8 @@ }, { "id": "add-solid", - "name": "Add a Solid Project", - "description": "Add a Solid project to your repo", + "name": "Solid", + "description": "Solid to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-solid", "itemList": [], @@ -5899,8 +5899,8 @@ }, { "id": "add-qwik", - "name": "Add a Qwik Project", - "description": "Add a Qwik project to your repo", + "name": "Qwik", + "description": "Qwik to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-qwik", "itemList": [], @@ -5910,8 +5910,8 @@ }, { "id": "add-rust", - "name": "Add a Rust Project", - "description": "Add a Rust project to your repo", + "name": "Rust", + "description": "Rust to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-rust", "itemList": [], @@ -5921,8 +5921,8 @@ }, { "id": "add-dotnet", - "name": "Add a .NET Project", - "description": "Add a .NET project to your repo", + "name": ".NET", + "description": ".NET to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-dotnet", "itemList": [], @@ -5932,7 +5932,7 @@ }, { "id": "add-astro", - "name": "Add an Astro Project", + "name": "Astro", "description": "Add Nx to an Astro project", "mediaImage": "", "file": "shared/recipes/add-stack/add-astro", @@ -5943,8 +5943,8 @@ }, { "id": "add-svelte", - "name": "Add a Svelte Project", - "description": "Add a Svelte project to your repo", + "name": "Svelte", + "description": "Svelte to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-svelte", "itemList": [], @@ -5954,8 +5954,8 @@ }, { "id": "add-fastify", - "name": "Add a Fastify Project", - "description": "Add a Fastify project to your repo", + "name": "Fastify", + "description": "Fastify to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-fastify", "itemList": [], @@ -5965,7 +5965,7 @@ }, { "id": "apollo-react", - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "description": "", "mediaImage": "", "file": "shared/examples/apollo-react", @@ -5976,7 +5976,7 @@ }, { "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "description": "", "mediaImage": "", "file": "shared/recipes/database/nestjs-prisma", @@ -5987,7 +5987,7 @@ }, { "id": "mongo-fastify", - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/mongo-fastify", @@ -5998,7 +5998,7 @@ }, { "id": "redis-fastify", - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/redis-fastify", @@ -6009,7 +6009,7 @@ }, { "id": "postgres-fastify", - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/postgres-fastify", @@ -6020,7 +6020,7 @@ }, { "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/serverless-fastify-planetscale", @@ -6031,7 +6031,7 @@ }, { "id": "mfe", - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "description": "", "mediaImage": "", "file": "shared/examples/nx-examples", @@ -6100,11 +6100,11 @@ "name": "Nx with your favorite tech", "description": "Examples of different ways to use Nx with your favorite tech", "mediaImage": "", - "file": "", + "file": "shared/showcase/example-repos", "itemList": [ { "id": "add-express", - "name": "Add an Express Project", + "name": "Express", "description": "Add an Express application to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-express", @@ -6115,8 +6115,8 @@ }, { "id": "add-lit", - "name": "Add a Lit Project", - "description": "Add a Lit project to your repo", + "name": "Lit", + "description": "Lit to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-lit", "itemList": [], @@ -6126,8 +6126,8 @@ }, { "id": "add-solid", - "name": "Add a Solid Project", - "description": "Add a Solid project to your repo", + "name": "Solid", + "description": "Solid to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-solid", "itemList": [], @@ -6137,8 +6137,8 @@ }, { "id": "add-qwik", - "name": "Add a Qwik Project", - "description": "Add a Qwik project to your repo", + "name": "Qwik", + "description": "Qwik to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-qwik", "itemList": [], @@ -6148,8 +6148,8 @@ }, { "id": "add-rust", - "name": "Add a Rust Project", - "description": "Add a Rust project to your repo", + "name": "Rust", + "description": "Rust to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-rust", "itemList": [], @@ -6159,8 +6159,8 @@ }, { "id": "add-dotnet", - "name": "Add a .NET Project", - "description": "Add a .NET project to your repo", + "name": ".NET", + "description": ".NET to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-dotnet", "itemList": [], @@ -6170,7 +6170,7 @@ }, { "id": "add-astro", - "name": "Add an Astro Project", + "name": "Astro", "description": "Add Nx to an Astro project", "mediaImage": "", "file": "shared/recipes/add-stack/add-astro", @@ -6181,8 +6181,8 @@ }, { "id": "add-svelte", - "name": "Add a Svelte Project", - "description": "Add a Svelte project to your repo", + "name": "Svelte", + "description": "Svelte to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-svelte", "itemList": [], @@ -6192,8 +6192,8 @@ }, { "id": "add-fastify", - "name": "Add a Fastify Project", - "description": "Add a Fastify project to your repo", + "name": "Fastify", + "description": "Fastify to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-fastify", "itemList": [], @@ -6203,7 +6203,7 @@ }, { "id": "apollo-react", - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "description": "", "mediaImage": "", "file": "shared/examples/apollo-react", @@ -6214,7 +6214,7 @@ }, { "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "description": "", "mediaImage": "", "file": "shared/recipes/database/nestjs-prisma", @@ -6225,7 +6225,7 @@ }, { "id": "mongo-fastify", - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/mongo-fastify", @@ -6236,7 +6236,7 @@ }, { "id": "redis-fastify", - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/redis-fastify", @@ -6247,7 +6247,7 @@ }, { "id": "postgres-fastify", - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/postgres-fastify", @@ -6258,7 +6258,7 @@ }, { "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/serverless-fastify-planetscale", @@ -6269,7 +6269,7 @@ }, { "id": "mfe", - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "description": "", "mediaImage": "", "file": "shared/examples/nx-examples", @@ -6285,7 +6285,7 @@ }, "/showcase/example-repos/add-express": { "id": "add-express", - "name": "Add an Express Project", + "name": "Express", "description": "Add an Express application to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-express", @@ -6296,8 +6296,8 @@ }, "/showcase/example-repos/add-lit": { "id": "add-lit", - "name": "Add a Lit Project", - "description": "Add a Lit project to your repo", + "name": "Lit", + "description": "Lit to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-lit", "itemList": [], @@ -6307,8 +6307,8 @@ }, "/showcase/example-repos/add-solid": { "id": "add-solid", - "name": "Add a Solid Project", - "description": "Add a Solid project to your repo", + "name": "Solid", + "description": "Solid to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-solid", "itemList": [], @@ -6318,8 +6318,8 @@ }, "/showcase/example-repos/add-qwik": { "id": "add-qwik", - "name": "Add a Qwik Project", - "description": "Add a Qwik project to your repo", + "name": "Qwik", + "description": "Qwik to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-qwik", "itemList": [], @@ -6329,8 +6329,8 @@ }, "/showcase/example-repos/add-rust": { "id": "add-rust", - "name": "Add a Rust Project", - "description": "Add a Rust project to your repo", + "name": "Rust", + "description": "Rust to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-rust", "itemList": [], @@ -6340,8 +6340,8 @@ }, "/showcase/example-repos/add-dotnet": { "id": "add-dotnet", - "name": "Add a .NET Project", - "description": "Add a .NET project to your repo", + "name": ".NET", + "description": ".NET to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-dotnet", "itemList": [], @@ -6351,7 +6351,7 @@ }, "/showcase/example-repos/add-astro": { "id": "add-astro", - "name": "Add an Astro Project", + "name": "Astro", "description": "Add Nx to an Astro project", "mediaImage": "", "file": "shared/recipes/add-stack/add-astro", @@ -6362,8 +6362,8 @@ }, "/showcase/example-repos/add-svelte": { "id": "add-svelte", - "name": "Add a Svelte Project", - "description": "Add a Svelte project to your repo", + "name": "Svelte", + "description": "Svelte to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-svelte", "itemList": [], @@ -6373,8 +6373,8 @@ }, "/showcase/example-repos/add-fastify": { "id": "add-fastify", - "name": "Add a Fastify Project", - "description": "Add a Fastify project to your repo", + "name": "Fastify", + "description": "Fastify to your repo", "mediaImage": "", "file": "shared/recipes/add-stack/add-fastify", "itemList": [], @@ -6384,7 +6384,7 @@ }, "/showcase/example-repos/apollo-react": { "id": "apollo-react", - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "description": "", "mediaImage": "", "file": "shared/examples/apollo-react", @@ -6395,7 +6395,7 @@ }, "/showcase/example-repos/nestjs-prisma": { "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "description": "", "mediaImage": "", "file": "shared/recipes/database/nestjs-prisma", @@ -6406,7 +6406,7 @@ }, "/showcase/example-repos/mongo-fastify": { "id": "mongo-fastify", - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/mongo-fastify", @@ -6417,7 +6417,7 @@ }, "/showcase/example-repos/redis-fastify": { "id": "redis-fastify", - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/redis-fastify", @@ -6428,7 +6428,7 @@ }, "/showcase/example-repos/postgres-fastify": { "id": "postgres-fastify", - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/postgres-fastify", @@ -6439,7 +6439,7 @@ }, "/showcase/example-repos/serverless-fastify-planetscale": { "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "description": "", "mediaImage": "", "file": "shared/recipes/database/serverless-fastify-planetscale", @@ -6450,7 +6450,7 @@ }, "/showcase/example-repos/mfe": { "id": "mfe", - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "description": "", "mediaImage": "", "file": "shared/examples/nx-examples", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index 3bae1dd039e23..340a48fc0c94f 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -810,35 +810,35 @@ "description": "", "file": "shared/recipes/database/nestjs-prisma", "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "path": "/showcase/example-repos/nestjs-prisma" }, { "description": "", "file": "shared/recipes/database/mongo-fastify", "id": "mongo-fastify", - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "path": "/showcase/example-repos/mongo-fastify" }, { "description": "", "file": "shared/recipes/database/redis-fastify", "id": "redis-fastify", - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "path": "/showcase/example-repos/redis-fastify" }, { "description": "", "file": "shared/recipes/database/postgres-fastify", "id": "postgres-fastify", - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "path": "/showcase/example-repos/postgres-fastify" }, { "description": "", "file": "shared/recipes/database/serverless-fastify-planetscale", "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "path": "/showcase/example-repos/serverless-fastify-planetscale" } ], @@ -1050,35 +1050,35 @@ "description": "", "file": "shared/recipes/database/nestjs-prisma", "id": "nestjs-prisma", - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "path": "/showcase/example-repos/nestjs-prisma" }, { "description": "", "file": "shared/recipes/database/mongo-fastify", "id": "mongo-fastify", - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "path": "/showcase/example-repos/mongo-fastify" }, { "description": "", "file": "shared/recipes/database/redis-fastify", "id": "redis-fastify", - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "path": "/showcase/example-repos/redis-fastify" }, { "description": "", "file": "shared/recipes/database/postgres-fastify", "id": "postgres-fastify", - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "path": "/showcase/example-repos/postgres-fastify" }, { "description": "", "file": "shared/recipes/database/serverless-fastify-planetscale", "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "path": "/showcase/example-repos/serverless-fastify-planetscale" } ], @@ -1087,7 +1087,7 @@ "description": "", "file": "shared/recipes/database/serverless-fastify-planetscale", "id": "serverless-fastify-planetscale", - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "path": "/showcase/example-repos/serverless-fastify-planetscale" } ], diff --git a/docs/map.json b/docs/map.json index 22f6b22741f94..ae6d1fec5d30a 100644 --- a/docs/map.json +++ b/docs/map.json @@ -1188,98 +1188,99 @@ "name": "Nx with your favorite tech", "id": "example-repos", "description": "Examples of different ways to use Nx with your favorite tech", + "file": "shared/showcase/example-repos", "itemList": [ { - "name": "Add an Express Project", + "name": "Express", "id": "add-express", "description": "Add an Express application to your repo", "file": "shared/recipes/add-stack/add-express" }, { - "name": "Add a Lit Project", + "name": "Lit", "id": "add-lit", - "description": "Add a Lit project to your repo", + "description": "Lit to your repo", "file": "shared/recipes/add-stack/add-lit" }, { - "name": "Add a Solid Project", + "name": "Solid", "id": "add-solid", - "description": "Add a Solid project to your repo", + "description": "Solid to your repo", "file": "shared/recipes/add-stack/add-solid" }, { - "name": "Add a Qwik Project", + "name": "Qwik", "id": "add-qwik", - "description": "Add a Qwik project to your repo", + "description": "Qwik to your repo", "file": "shared/recipes/add-stack/add-qwik" }, { - "name": "Add a Rust Project", + "name": "Rust", "id": "add-rust", - "description": "Add a Rust project to your repo", + "description": "Rust to your repo", "file": "shared/recipes/add-stack/add-rust" }, { - "name": "Add a .NET Project", + "name": ".NET", "id": "add-dotnet", - "description": "Add a .NET project to your repo", + "description": ".NET to your repo", "file": "shared/recipes/add-stack/add-dotnet" }, { - "name": "Add an Astro Project", + "name": "Astro", "id": "add-astro", "description": "Add Nx to an Astro project", "file": "shared/recipes/add-stack/add-astro" }, { - "name": "Add a Svelte Project", + "name": "Svelte", "id": "add-svelte", - "description": "Add a Svelte project to your repo", + "description": "Svelte to your repo", "file": "shared/recipes/add-stack/add-svelte" }, { - "name": "Add a Fastify Project", + "name": "Fastify", "id": "add-fastify", - "description": "Add a Fastify project to your repo", + "description": "Fastify to your repo", "file": "shared/recipes/add-stack/add-fastify" }, { - "name": "Using Apollo GraphQL", + "name": "Apollo GraphQL", "id": "apollo-react", "file": "shared/examples/apollo-react" }, { - "name": "Using Prisma with NestJS", + "name": "Prisma with NestJS", "id": "nestjs-prisma", "tags": ["database", "node"], "file": "shared/recipes/database/nestjs-prisma" }, { - "name": "Using Mongo with Fastify", + "name": "Mongo with Fastify", "id": "mongo-fastify", "tags": ["database", "node"], "file": "shared/recipes/database/mongo-fastify" }, { - "name": "Using Redis with Fastify", + "name": "Redis with Fastify", "id": "redis-fastify", "tags": ["database", "node"], "file": "shared/recipes/database/redis-fastify" }, { - "name": "Using Postgres with Fastify", + "name": "Postgres with Fastify", "id": "postgres-fastify", "tags": ["database", "node"], "file": "shared/recipes/database/postgres-fastify" }, { - "name": "Using PlanetScale with Serverless Fastify", + "name": "PlanetScale with Serverless Fastify", "id": "serverless-fastify-planetscale", "tags": ["database", "node", "serverless"], "file": "shared/recipes/database/serverless-fastify-planetscale" }, { - "name": "Nx Micro-Frontend Example", + "name": "Nx with Micro-frontends", "id": "mfe", "file": "shared/examples/nx-examples" } diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 65c1c5f6f7f11..faa0dbf781df8 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -189,22 +189,22 @@ - [Rescope Packages from @nrwl to @nx](/recipes/other/rescope) - [Showcase](/showcase) - [Nx with your favorite tech](/showcase/example-repos) - - [Add an Express Project](/showcase/example-repos/add-express) - - [Add a Lit Project](/showcase/example-repos/add-lit) - - [Add a Solid Project](/showcase/example-repos/add-solid) - - [Add a Qwik Project](/showcase/example-repos/add-qwik) - - [Add a Rust Project](/showcase/example-repos/add-rust) - - [Add a .NET Project](/showcase/example-repos/add-dotnet) - - [Add an Astro Project](/showcase/example-repos/add-astro) - - [Add a Svelte Project](/showcase/example-repos/add-svelte) - - [Add a Fastify Project](/showcase/example-repos/add-fastify) - - [Using Apollo GraphQL](/showcase/example-repos/apollo-react) - - [Using Prisma with NestJS](/showcase/example-repos/nestjs-prisma) - - [Using Mongo with Fastify](/showcase/example-repos/mongo-fastify) - - [Using Redis with Fastify](/showcase/example-repos/redis-fastify) - - [Using Postgres with Fastify](/showcase/example-repos/postgres-fastify) - - [Using PlanetScale with Serverless Fastify](/showcase/example-repos/serverless-fastify-planetscale) - - [Nx Micro-Frontend Example](/showcase/example-repos/mfe) + - [Express](/showcase/example-repos/add-express) + - [Lit](/showcase/example-repos/add-lit) + - [Solid](/showcase/example-repos/add-solid) + - [Qwik](/showcase/example-repos/add-qwik) + - [Rust](/showcase/example-repos/add-rust) + - [.NET](/showcase/example-repos/add-dotnet) + - [Astro](/showcase/example-repos/add-astro) + - [Svelte](/showcase/example-repos/add-svelte) + - [Fastify](/showcase/example-repos/add-fastify) + - [Apollo GraphQL](/showcase/example-repos/apollo-react) + - [Prisma with NestJS](/showcase/example-repos/nestjs-prisma) + - [Mongo with Fastify](/showcase/example-repos/mongo-fastify) + - [Redis with Fastify](/showcase/example-repos/redis-fastify) + - [Postgres with Fastify](/showcase/example-repos/postgres-fastify) + - [PlanetScale with Serverless Fastify](/showcase/example-repos/serverless-fastify-planetscale) + - [Nx with Micro-frontends](/showcase/example-repos/mfe) - [Benchmarks](/showcase/benchmarks) - [Typescript Batch Mode Compilation](/showcase/benchmarks/tsc-batch-mode) - [Large Repo and Caching](/showcase/benchmarks/caching) diff --git a/docs/shared/showcase/example-repos.md b/docs/shared/showcase/example-repos.md new file mode 100644 index 0000000000000..65c757836a5b3 --- /dev/null +++ b/docs/shared/showcase/example-repos.md @@ -0,0 +1,29 @@ +# Nx Integration with Technologies and Frameworks + +## Examples across platforms + +{% cards cols="2" lgCols="4" mdCols="4" smCols="2" %} + + {% link-card title="Express" url="/showcase/example-repos/add-express" icon="express" /%} + {% link-card title="Lit" url="/showcase/example-repos/add-lit" icon="lit" /%} + {% link-card title="Solid" url="/showcase/example-repos/add-solid" icon="solid" /%} + {% link-card title="Qwik" url="/showcase/example-repos/add-qwik" icon="qwik" /%} + {% link-card title="Rust" url="/showcase/example-repos/add-rust" icon="rust" /%} + {% link-card title=".NET" url="https://github.com/nrwl/nx-recipes/tree/main/dot-net-standalone" icon="dotnet" /%} + {% link-card title="Astro" url="/showcase/example-repos/add-astro" icon="astro" /%} + {% link-card title="Svelte" url="/showcase/example-repos/add-svelte" icon="svelte" /%} + {% link-card title="Micro-frontend" url="/showcase/example-repos/mfe" icon="mfe" /%} + {% link-card title="Apollo" url="/showcase/example-repos/apollo-react" icon="apollo" /%} + {% link-card title="Prisma NestJS" url="/showcase/example-repos/nestjs-prisma" icon="prisma" /%} + {% link-card title="Fastify" url="/showcase/example-repos/add-fastify" icon="fastify" /%} + +{% /cards %} + +### More examples with Fastify + +{% cards cols="2" lgCols="4" mdCols="4" smCols="2" %} +{% link-card title="MongoDB" url="/showcase/example-repos/mongo-fastify" icon="mongodb" /%} +{% link-card title="Redis" url="/showcase/example-repos/redis-fastify" icon="redis" /%} +{% link-card title="Postgres" url="/showcase/example-repos/postgres-fastify" icon="postgres" /%} +{% link-card title="PlanetScale" url="/showcase/example-repos/serverless-fastify-planetscale" icon="planetscale" /%} +{% /cards %} diff --git a/nx-dev/ui-markdoc/src/lib/icons.tsx b/nx-dev/ui-markdoc/src/lib/icons.tsx index 9c6ab4623d463..c2688ebbbf8f0 100644 --- a/nx-dev/ui-markdoc/src/lib/icons.tsx +++ b/nx-dev/ui-markdoc/src/lib/icons.tsx @@ -1454,4 +1454,172 @@ export const frameworkIcons: Record< ), }, + apollo: { + image: ( + + + + ), + }, + prisma: { + image: ( + + + + ), + }, + redis: { + image: ( + + + + + + + + + + + + + + + ), + }, + postgres: { + image: ( + + + + + + + + + ), + }, + planetscale: { + image: ( + + + + + + + ), + }, + mongodb: { + image: ( + + + + ), + }, + mfe: { + image: ( + + + + ), + }, }; diff --git a/nx-dev/ui-markdoc/src/lib/tags/cards.component.tsx b/nx-dev/ui-markdoc/src/lib/tags/cards.component.tsx index 192be83c705da..2cc1930dfa2ea 100644 --- a/nx-dev/ui-markdoc/src/lib/tags/cards.component.tsx +++ b/nx-dev/ui-markdoc/src/lib/tags/cards.component.tsx @@ -112,7 +112,7 @@ export function LinkCard({ appearance?: 'default' | 'small'; }): JSX.Element { return ( - - + ); } @@ -172,7 +172,7 @@ export function Card({ const hasYoutubeId = !!youtubeRegex ? youtubeRegex[1] : ''; return ( - - + ); } From 2b0df87fcbed70fcb2ed164ecb86a13941109c77 Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Fri, 15 Mar 2024 16:34:15 +0000 Subject: [PATCH 3/5] feat(remix): support version 2.8.0 (#22326) --- package.json | 4 +- packages/remix/migrations.json | 29 ++++++ .../remix/src/generators/init/init.spec.ts | 16 ++-- packages/remix/src/utils/versions.ts | 2 +- pnpm-lock.yaml | 93 ++++++++++++------- 5 files changed, 97 insertions(+), 47 deletions(-) diff --git a/package.json b/package.json index bb5e45a1665d2..87d0869b12d50 100644 --- a/package.json +++ b/package.json @@ -85,8 +85,8 @@ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", "@pnpm/lockfile-types": "^5.0.0", "@reduxjs/toolkit": "1.9.0", - "@remix-run/dev": "^2.6.0", - "@remix-run/node": "^2.6.0", + "@remix-run/dev": "^2.8.1", + "@remix-run/node": "^2.8.1", "@rollup/plugin-babel": "^5.3.0", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-image": "^2.1.0", diff --git a/packages/remix/migrations.json b/packages/remix/migrations.json index 117d9931b33ce..093b4f237dcc9 100644 --- a/packages/remix/migrations.json +++ b/packages/remix/migrations.json @@ -102,6 +102,35 @@ "alwaysAddToPackageJson": false } } + }, + "18.1.1": { + "version": "18.1.1-beta.0", + "packages": { + "@remix-run/node": { + "version": "^2.8.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/react": { + "version": "^2.8.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/serve": { + "version": "^2.8.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/dev": { + "version": "^2.8.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/css-bundle": { + "version": "^2.8.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/eslint-config": { + "version": "^2.8.0", + "alwaysAddToPackageJson": true + } + } } } } diff --git a/packages/remix/src/generators/init/init.spec.ts b/packages/remix/src/generators/init/init.spec.ts index a8e987a07f05e..48fc5639d9bf1 100644 --- a/packages/remix/src/generators/init/init.spec.ts +++ b/packages/remix/src/generators/init/init.spec.ts @@ -16,15 +16,15 @@ describe('Remix Init Generator', () => { const pkgJson = readJson(tree, 'package.json'); expect(pkgJson.dependencies).toMatchInlineSnapshot(` { - "@remix-run/serve": "^2.6.0", + "@remix-run/serve": "^2.8.1", } `); expect(pkgJson.devDependencies).toMatchInlineSnapshot(` - { - "@nx/web": "0.0.1", - "@remix-run/dev": "^2.6.0", - } - `); + { + "@nx/web": "0.0.1", + "@remix-run/dev": "^2.8.1", + } + `); const nxJson = readJson(tree, 'nx.json'); expect(nxJson).toMatchInlineSnapshot(` @@ -67,13 +67,13 @@ describe('Remix Init Generator', () => { const pkgJson = readJson(tree, 'package.json'); expect(pkgJson.dependencies).toMatchInlineSnapshot(` { - "@remix-run/serve": "^2.6.0", + "@remix-run/serve": "^2.8.1", } `); expect(pkgJson.devDependencies).toMatchInlineSnapshot(` { "@nx/web": "0.0.1", - "@remix-run/dev": "^2.6.0", + "@remix-run/dev": "^2.8.1", } `); }); diff --git a/packages/remix/src/utils/versions.ts b/packages/remix/src/utils/versions.ts index 18bccfef45ae9..de737edb8ea79 100644 --- a/packages/remix/src/utils/versions.ts +++ b/packages/remix/src/utils/versions.ts @@ -2,7 +2,7 @@ import { readJson, Tree } from '@nx/devkit'; export const nxVersion = require('../../package.json').version; -export const remixVersion = '^2.6.0'; +export const remixVersion = '^2.8.1'; export const isbotVersion = '^4.4.0'; export const reactVersion = '^18.2.0'; export const reactDomVersion = '^18.2.0'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5dc4386d6b012..6f242976268b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -333,11 +333,11 @@ devDependencies: specifier: 1.9.0 version: 1.9.0(react-redux@8.0.5)(react@18.2.0) '@remix-run/dev': - specifier: ^2.6.0 - version: 2.6.0(@types/node@18.19.8)(less@4.1.3)(sass@1.55.0)(stylus@0.59.0)(ts-node@10.9.1)(typescript@5.3.3)(vite@5.0.8) + specifier: ^2.8.1 + version: 2.8.1(@types/node@18.19.8)(less@4.1.3)(sass@1.55.0)(stylus@0.59.0)(ts-node@10.9.1)(typescript@5.3.3)(vite@5.0.8) '@remix-run/node': - specifier: ^2.6.0 - version: 2.6.0(typescript@5.3.3) + specifier: ^2.8.1 + version: 2.8.1(typescript@5.3.3) '@rollup/plugin-babel': specifier: ^5.3.0 version: 5.3.1(@babel/core@7.23.2)(rollup@2.79.0) @@ -2813,6 +2813,26 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.2): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} @@ -3902,8 +3922,8 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/types': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.2) + '@babel/types': 7.23.9 dev: true /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.23.7): @@ -3916,8 +3936,8 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.7) - '@babel/types': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/types': 7.23.9 dev: true /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.23.2): @@ -9904,15 +9924,15 @@ packages: reselect: 4.1.7 dev: true - /@remix-run/dev@2.6.0(@types/node@18.19.8)(less@4.1.3)(sass@1.55.0)(stylus@0.59.0)(ts-node@10.9.1)(typescript@5.3.3)(vite@5.0.8): - resolution: {integrity: sha512-wf5DoKxBwz3/84FNyFM6NKvQIOEv+Ukwj9DjXrDs6YLI6oSqw2XsJCxWN4lAbOxXuK37pBt1WAE8LzEMuyowsw==} + /@remix-run/dev@2.8.1(@types/node@18.19.8)(less@4.1.3)(sass@1.55.0)(stylus@0.59.0)(ts-node@10.9.1)(typescript@5.3.3)(vite@5.0.8): + resolution: {integrity: sha512-qFt4jAsAJeIOyg6ngeSnTG/9Z5N9QJfeThP/8wRHc1crqYgTiEtcI3DZ8WlAXjVSF5emgn/ZZKqzLAI02OgMfQ==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@remix-run/serve': ^2.6.0 + '@remix-run/serve': ^2.8.1 typescript: ^5.1.0 - vite: ^5.0.0 - wrangler: ^3.24.0 + vite: ^5.1.0 + wrangler: ^3.28.2 peerDependenciesMeta: '@remix-run/serve': optional: true @@ -9933,9 +9953,9 @@ packages: '@babel/types': 7.23.9 '@mdx-js/mdx': 2.3.0 '@npmcli/package-json': 4.0.1 - '@remix-run/node': 2.6.0(typescript@5.3.3) - '@remix-run/router': 1.15.0 - '@remix-run/server-runtime': 2.6.0(typescript@5.3.3) + '@remix-run/node': 2.8.1(typescript@5.3.3) + '@remix-run/router': 1.15.3-pre.0 + '@remix-run/server-runtime': 2.8.1(typescript@5.3.3) '@types/mdx': 2.0.10 '@vanilla-extract/integration': 6.2.4(@types/node@18.19.8)(less@4.1.3)(sass@1.55.0)(stylus@0.59.0) arg: 5.0.2 @@ -9993,8 +10013,8 @@ packages: - utf-8-validate dev: true - /@remix-run/node@2.6.0(typescript@5.3.3): - resolution: {integrity: sha512-bWemy3g258Kdqi+4OxIEZ7QS64T96jNK6a7NdlPXGJZqeLpxM5NmlCl/slSdx52oTi9r5Xoz1Tm4uR37nD1/Xw==} + /@remix-run/node@2.8.1(typescript@5.3.3): + resolution: {integrity: sha512-ddCwBVlfLvRxTQJHPcaM1lhfMjsFYG3EGmYpWJIWnnzDX5EbX9pUNHBWisMuH1eA0c7pbw0PbW0UtCttKYx2qg==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -10002,7 +10022,7 @@ packages: typescript: optional: true dependencies: - '@remix-run/server-runtime': 2.6.0(typescript@5.3.3) + '@remix-run/server-runtime': 2.8.1(typescript@5.3.3) '@remix-run/web-fetch': 4.4.2 '@remix-run/web-file': 3.1.0 '@remix-run/web-stream': 1.1.0 @@ -10018,13 +10038,18 @@ packages: engines: {node: '>=14.0.0'} dev: true - /@remix-run/router@1.15.0: - resolution: {integrity: sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==} + /@remix-run/router@1.15.3: + resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} + engines: {node: '>=14.0.0'} + dev: true + + /@remix-run/router@1.15.3-pre.0: + resolution: {integrity: sha512-JUQb6sztqJpRbsdKpx3D4+6eaGmHU4Yb/QeKrES/ZbLuijlZMOmZ+gV0ohX5vrRDnJHJmcQPq3Tpk0GGPNM9gg==} engines: {node: '>=14.0.0'} dev: true - /@remix-run/server-runtime@2.6.0(typescript@5.3.3): - resolution: {integrity: sha512-qFXDl4pK55njBLuvyRn5AkI/hu8fEU3t1XFKv0Syivx0nmUVpWMW25Uzi1pkX/chF1VIxCVrZ8KuQ1rcrKj+DQ==} + /@remix-run/server-runtime@2.8.1(typescript@5.3.3): + resolution: {integrity: sha512-fh4SOEoONrN73Kvzc0gMDCmYpVRVbvoj9j3BUXHAcn0An8iX+HD/22gU7nTkIBzExM/F9xgEcwTewOnWqLw0Bg==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -10032,7 +10057,7 @@ packages: typescript: optional: true dependencies: - '@remix-run/router': 1.15.0 + '@remix-run/router': 1.15.3 '@types/cookie': 0.6.0 '@web3-storage/multipart-parser': 1.0.0 cookie: 0.6.0 @@ -12583,7 +12608,7 @@ packages: /@types/hast@2.3.4: resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} dependencies: - '@types/unist': 2.0.6 + '@types/unist': 3.0.0 /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} @@ -12920,10 +12945,10 @@ packages: /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true /@types/unist@3.0.0: resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} - dev: true /@types/use-sync-external-store@0.0.3: resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} @@ -14886,8 +14911,8 @@ packages: resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 '@types/babel__core': 7.20.1 '@types/babel__traverse': 7.18.2 dev: true @@ -22234,8 +22259,8 @@ packages: '@babel/generator': 7.23.6 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 '@jest/expect-utils': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.6.3 @@ -22920,8 +22945,6 @@ packages: peerDependenciesMeta: webpack: optional: true - webpack-sources: - optional: true dependencies: webpack: 5.88.0(@swc/core@1.3.86)(esbuild@0.19.5) webpack-sources: 3.2.3 @@ -22934,8 +22957,6 @@ packages: peerDependenciesMeta: webpack: optional: true - webpack-sources: - optional: true dependencies: webpack: 5.90.1(@swc/core@1.3.86)(esbuild@0.20.0) webpack-sources: 3.2.3 @@ -31987,9 +32008,9 @@ packages: resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} hasBin: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.9 '@babel/standalone': 7.23.10 - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 defu: 6.1.4 jiti: 1.21.0 mri: 1.2.0 From 86c5b3d2aa8d3c3e72f760624c1e287d182dea2c Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Fri, 15 Mar 2024 12:34:27 -0400 Subject: [PATCH 4/5] cleanup(core): rename file with rust patterns (#22330) --- packages/nx/src/native/pseudo_terminal/mod.rs | 2 +- .../nx/src/native/pseudo_terminal/{non-mac.rs => non_mac.rs} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/nx/src/native/pseudo_terminal/{non-mac.rs => non_mac.rs} (100%) diff --git a/packages/nx/src/native/pseudo_terminal/mod.rs b/packages/nx/src/native/pseudo_terminal/mod.rs index 0b0dd639a2b78..47c1eabc8bfce 100644 --- a/packages/nx/src/native/pseudo_terminal/mod.rs +++ b/packages/nx/src/native/pseudo_terminal/mod.rs @@ -7,5 +7,5 @@ mod pseudo_terminal; pub mod child_process; #[cfg_attr(target_os = "macos", path = "mac.rs")] -#[cfg_attr(not(target_os = "macos"), path = "non-mac.rs")] +#[cfg_attr(not(target_os = "macos"), path = "non_mac.rs")] pub mod rust_pseudo_terminal; diff --git a/packages/nx/src/native/pseudo_terminal/non-mac.rs b/packages/nx/src/native/pseudo_terminal/non_mac.rs similarity index 100% rename from packages/nx/src/native/pseudo_terminal/non-mac.rs rename to packages/nx/src/native/pseudo_terminal/non_mac.rs From 1068513a0378e67051c5a7c82f36580eee2744f1 Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Fri, 15 Mar 2024 13:25:43 -0400 Subject: [PATCH 5/5] chore(repo): update nx to 18.1.0-beta.10 (#22333) --- package.json | 32 ++-- pnpm-lock.yaml | 412 ++++++++++++++++++++++++------------------------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/package.json b/package.json index 87d0869b12d50..672756737681f 100644 --- a/package.json +++ b/package.json @@ -65,21 +65,21 @@ "@ngrx/store": "17.0.1", "@nuxt/kit": "^3.10.0", "@nuxt/schema": "^3.10.0", - "@nx/angular": "18.1.0-beta.9", - "@nx/cypress": "18.1.0-beta.9", - "@nx/devkit": "18.1.0-beta.9", - "@nx/esbuild": "18.1.0-beta.9", - "@nx/eslint": "18.1.0-beta.9", - "@nx/eslint-plugin": "18.1.0-beta.9", - "@nx/jest": "18.1.0-beta.9", - "@nx/js": "18.1.0-beta.9", - "@nx/next": "18.1.0-beta.9", - "@nx/playwright": "18.1.0-beta.9", - "@nx/react": "18.1.0-beta.9", - "@nx/storybook": "18.1.0-beta.9", - "@nx/vite": "18.1.0-beta.9", - "@nx/web": "18.1.0-beta.9", - "@nx/webpack": "18.1.0-beta.9", + "@nx/angular": "18.1.0-beta.10", + "@nx/cypress": "18.1.0-beta.10", + "@nx/devkit": "18.1.0-beta.10", + "@nx/esbuild": "18.1.0-beta.10", + "@nx/eslint": "18.1.0-beta.10", + "@nx/eslint-plugin": "18.1.0-beta.10", + "@nx/jest": "18.1.0-beta.10", + "@nx/js": "18.1.0-beta.10", + "@nx/next": "18.1.0-beta.10", + "@nx/playwright": "18.1.0-beta.10", + "@nx/react": "18.1.0-beta.10", + "@nx/storybook": "18.1.0-beta.10", + "@nx/vite": "18.1.0-beta.10", + "@nx/web": "18.1.0-beta.10", + "@nx/webpack": "18.1.0-beta.10", "@phenomnomnominal/tsquery": "~5.0.1", "@playwright/test": "^1.36.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", @@ -232,7 +232,7 @@ "node-fetch": "^2.6.7", "npm-package-arg": "11.0.1", "nuxt": "^3.10.0", - "nx": "18.1.0-beta.9", + "nx": "18.1.0-beta.10", "octokit": "^2.0.14", "open": "^8.4.0", "openai": "~4.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f242976268b3..c7c4fe65c41dc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -273,50 +273,50 @@ devDependencies: specifier: ^3.10.0 version: 3.10.0(rollup@2.79.0) '@nx/angular': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/cypress': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/devkit': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(nx@18.1.0-beta.9) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(nx@18.1.0-beta.10) '@nx/esbuild': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/eslint': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) '@nx/eslint-plugin': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/jest': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/js': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/next': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) '@nx/playwright': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@playwright/test@1.36.1)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@playwright/test@1.36.1)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/react': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/storybook': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/vite': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) '@nx/web': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@nx/webpack': - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': specifier: ~5.0.1 version: 5.0.1(typescript@5.3.3) @@ -774,8 +774,8 @@ devDependencies: specifier: ^3.10.0 version: 3.10.0(@types/node@18.19.8)(eslint@8.48.0)(less@4.1.3)(rollup@2.79.0)(sass@1.55.0)(stylus@0.59.0)(typescript@5.3.3)(vite@5.0.8) nx: - specifier: 18.1.0-beta.9 - version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + specifier: 18.1.0-beta.10 + version: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) octokit: specifier: ^2.0.14 version: 2.0.14 @@ -7363,10 +7363,10 @@ packages: - supports-color dev: true - /@nrwl/angular@18.1.0-beta.9(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-ge4VtWWRLiWg1SSIuZnjqrTuRF6s3LuCKqNv5vXwszcK2c23j6JJOC0bOjszJAOVQqYvDN9CtEQaY9AwkmetOQ==} + /@nrwl/angular@18.1.0-beta.10(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-6akL/tjztNUW9QJBnB/p2xzJYCMNOz/Uto3e8KxXkb/iy3T32S3sGFAZvCCj4Vp+wekgAndYwfwz7WnfD6LDiA==} dependencies: - '@nx/angular': 18.1.0-beta.9(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/angular': 18.1.0-beta.10(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) tslib: 2.6.2 transitivePeerDependencies: - '@angular-devkit/build-angular' @@ -7404,10 +7404,10 @@ packages: - webpack-cli dev: true - /@nrwl/cypress@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-b6NgEckNBPmI5Ept94xM8Ugli2QawpTyCT6/SMH8dTM9gsSqXTtr/fo8gl8yExPly+skDt2Drc7cpOpysRwtbQ==} + /@nrwl/cypress@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-wvutboED0twI8f1Je3ci/AuwjqO/THnj0tqC4bm+wLqVZQfBvEObxC9lWO9vd2U/aR75OiRB1igppqLaz6/u/w==} dependencies: - '@nx/cypress': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/cypress': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7431,18 +7431,18 @@ packages: - nx dev: true - /@nrwl/devkit@18.1.0-beta.9(nx@18.1.0-beta.9): - resolution: {integrity: sha512-Yoaz2InND3t8C7ERfqir8xbczu7G3Cht2il7NyaIgRVwA26oV5LGuOIvhOFaP4gl+QkJcOXD0HVPTXgVgEJcDw==} + /@nrwl/devkit@18.1.0-beta.10(nx@18.1.0-beta.10): + resolution: {integrity: sha512-GBSBBzNPtD8V7NfN60dDjm6vda3ZRSnKIKwLKETqu+M9SWYIKTeromEUAsSgKB7H5KfB778W4TwZtGR6ure/7A==} dependencies: - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) transitivePeerDependencies: - nx dev: true - /@nrwl/esbuild@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-297waYH/arjJSr9jWzrPCnrUF3h1IfVBIeaxxUAlQsWs1WxfcqmgiRfiBaf5OTGzPpwHmbuEo3Kn4bgCkssJ8Q==} + /@nrwl/esbuild@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-ZH3mwHTJFzsLsvXfz8rpBgc3iCPoZPfXn0U/w20QEGnLP9ef4+b6kLF8o6utitcq/qFvOddoI7dkiGBmeGhXig==} dependencies: - '@nx/esbuild': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/esbuild': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7457,10 +7457,10 @@ packages: - verdaccio dev: true - /@nrwl/eslint-plugin-nx@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-RxAC3aBOf4IwxzewJdNLTrbgUAeuPJ7KbKA/rR8ZWS/QUDMesznGehwJod8jE/qQDDd8ptGbfRDGRDskJ68+mg==} + /@nrwl/eslint-plugin-nx@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-K7vhNDEHli/4XSHYnmLN9AW451QxwFh2Bo/aYb8Q+5bbiOidKC5sXd7wtWYIPk9Ixz3pSSoEr3PaxvKxFC4vhA==} dependencies: - '@nx/eslint-plugin': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/eslint-plugin': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7477,10 +7477,10 @@ packages: - verdaccio dev: true - /@nrwl/jest@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-mE7KDyHy4oOZny11rg8EQdqTR8pTF50zqKGFHxwrqxW0JZZzzra3wW2dER+ViE99e1STvfYkiMjP78C2PEjIdw==} + /@nrwl/jest@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-LeY8tvIiK7E6Ttl+5vs4mA1KBEffBtaCTYhTVSdwTrNdnL/w/Z5/RDLCiqvdT29/EgesGf4HkxyxDPfUeV8hLw==} dependencies: - '@nx/jest': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/jest': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7513,10 +7513,10 @@ packages: - verdaccio dev: true - /@nrwl/js@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-r97yuABhMniukmhIbildzUEllps4REjRU+kaYnDBS/IYB/a4BDrG1z+8iAWe7gDD6RzJLysyDzBELHBTmxZE6A==} + /@nrwl/js@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-srJ8g3J6rfIwb+f6nSTwn20mU9KFvp13tuLpggrOdNfB5aOTnIyBgYtuxMMvwHh11FZbGyV3S6ZlDE30/ilcWQ==} dependencies: - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7530,10 +7530,10 @@ packages: - verdaccio dev: true - /@nrwl/next@18.1.0-beta.9(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0): - resolution: {integrity: sha512-sg2mMIc3azhyGJ7KsgE8P0HJhLcvmbqON+tQ7qlF/sTdVn3+FzcBcTdtbOwj1/2BGDQSLG4AMPdTkSS4Ks0+sQ==} + /@nrwl/next@18.1.0-beta.10(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0): + resolution: {integrity: sha512-czIaVVCq1A1vcj5HgBKJRXOsDFmA4jSQmMRFwFPqAZNxdK2iByVC4rTKKOTng9JNtSo7ohqwdG8lNHZTiuOGzw==} dependencies: - '@nx/next': 18.1.0-beta.9(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) + '@nx/next': 18.1.0-beta.10(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) transitivePeerDependencies: - '@babel/core' - '@babel/traverse' @@ -7568,10 +7568,10 @@ packages: - webpack-cli dev: true - /@nrwl/react@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-/1lIkuGVQ7x4tqjj46HO1m8tMccJ9xzOTzhvgHOIFC/Hr8cHMI0VTAL74jTzMY+7LAP3FYEQM05o/NPVVf5OsA==} + /@nrwl/react@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-vWhBVX0gz0qTlE603qIMvL1l+q4y4BkIPmn+ARi5D2QcsHMKMJRWQ5M7tdWHt3CEIbuPb31PrNfBOoGv7AQPjQ==} dependencies: - '@nx/react': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/react': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7586,10 +7586,10 @@ packages: - verdaccio dev: true - /@nrwl/storybook@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-cjgXd2+gCR/PS0b5diSei5VAevFcYhKBnlZUKK7zFKXL6XaLh+MJwnwXyS0cqOiFajPG543J9T9Eic+22DkULA==} + /@nrwl/storybook@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-HJMoXR8QImbyS0LDvCVlOgIWCq+gOiZzb8amVIeVgS6hwZQMik1pPz7YC0H1vm335vvpSSRmnd0ndz78VBRvwA==} dependencies: - '@nx/storybook': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/storybook': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7617,11 +7617,11 @@ packages: - debug dev: true - /@nrwl/tao@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-T4aXtamFxojp0pRyx3RHnb6s+5GBmrQr/+fCkSpVPrhbj+pQX2qK/Y9E08jYQ6CEXkqAQ6zjqf7IiXSjvrptFA==} + /@nrwl/tao@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86): + resolution: {integrity: sha512-eEDVb4hEBxqNECKA91CEzOI+/MT2juz3RlxFoUrZ7uzXc6M05iRhi5C5P9+QxSx9d03Nk1HB7Mf9Lw5dn3fbbw==} hasBin: true dependencies: - nx: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + nx: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) tslib: 2.6.2 transitivePeerDependencies: - '@swc-node/register' @@ -7629,10 +7629,10 @@ packages: - debug dev: true - /@nrwl/vite@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1): - resolution: {integrity: sha512-4utzf5vki+x00K3ilTKuxxpV42os9tTBwXJNtQjICs7XeS/QA1h7PipOUB6qBon4RivF8L+xbkRU9X8CIxnUFQ==} + /@nrwl/vite@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1): + resolution: {integrity: sha512-rvqBLI27gRzhSmZlcRAHTljvZ1RcFwk4rGqC+LVvZ7GpjDmPRIhamqei9CfSXlbgCMLvqzO8C1rMHiAyMyR4kQ==} dependencies: - '@nx/vite': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) + '@nx/vite': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7648,10 +7648,10 @@ packages: - vitest dev: true - /@nrwl/web@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-aVDcoIEtpKO976Nno0ZH98gkyQZx1JIpsnmIGoxFJCNHssLL7IHcHtOIbmL9p5/0HW0diofzT6of/khhRbrekw==} + /@nrwl/web@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-n18kxI0tArbVv0cUAUY3byWGG9ERL4vBNQ89CTtLQLA+RJl/E/AxUtd6DUK0f27wy81wkqnXkW73qFDwyd1aHQ==} dependencies: - '@nx/web': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/web': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7665,10 +7665,10 @@ packages: - verdaccio dev: true - /@nrwl/webpack@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-IVizg2Uda2McAuTAsBr3mtsIr49GR/8S7dmT7uGOFaHVsZ5CO2qsSWkcwL7+c6dejqAis8b+xDOG+SEJlbOjZw==} + /@nrwl/webpack@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-J6a61lXvEFZFJT1GyXOxOlXioH814Ih8CGRtZB4OaWsX6Jpro8MWy7ql8+/Dlha6SWNeVoKgj925IY3O8BUWrA==} dependencies: - '@nx/webpack': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/webpack': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -7708,10 +7708,10 @@ packages: - debug dev: true - /@nrwl/workspace@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-HK9nSO+0I93mONN/GmkxCKyv4akBMe0SCKjlDf8Qkvi+/bcuRTboDw79XRdYzAY2shKEOHT0m94nlkB/6D1sOg==} + /@nrwl/workspace@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86): + resolution: {integrity: sha512-JIHtJq3sT3fYQ0dW8Aj26+55ZU2W0XZtmHpkIyEo4AdvRIr6jFbvKYgWYpqZ8W7qgXsVTYPEeiB4xjoqWvKvow==} dependencies: - '@nx/workspace': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nx/workspace': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) transitivePeerDependencies: - '@swc-node/register' - '@swc/core' @@ -7955,8 +7955,8 @@ packages: - encoding dev: true - /@nx/angular@18.1.0-beta.9(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-LCsnedXR5DKs9TREGRM6stNfs5yQkWqU1LyTYLpPPxJvZIXyGwZRxfAYEVvXtUvVQeM7U3/Ck+zm031sC33lCg==} + /@nx/angular@18.1.0-beta.10(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-QXcU74qtak7Cf0b/xpufrHT8h7Z6yeo23U5dPVsZX59qYa+PSU0hj5+7ttq38+nLheKFBf3DfwlGpsQUjdX4Fg==} peerDependencies: '@angular-devkit/build-angular': '>= 15.0.0 < 18.0.0' '@angular-devkit/core': '>= 15.0.0 < 18.0.0' @@ -7971,13 +7971,13 @@ packages: '@angular-devkit/build-angular': 17.2.0(@angular/compiler-cli@17.2.1)(@swc/core@1.3.86)(@types/express@4.17.14)(@types/node@18.19.8)(html-webpack-plugin@5.5.0)(jest-environment-jsdom@29.4.3)(jest@29.4.3)(ng-packagr@17.2.0)(stylus@0.59.0)(tailwindcss@3.2.4)(typescript@5.3.3) '@angular-devkit/core': 17.2.0 '@angular-devkit/schematics': 17.2.0 - '@nrwl/angular': 18.1.0-beta.9(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/web': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/webpack': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/workspace': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nrwl/angular': 18.1.0-beta.10(@angular-devkit/build-angular@17.2.0)(@angular-devkit/core@17.2.0)(@angular-devkit/schematics@17.2.0)(@schematics/angular@17.2.0)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(eslint@8.48.0)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/web': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/webpack': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/workspace': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@schematics/angular': 17.2.0 '@typescript-eslint/type-utils': 6.18.1(eslint@8.48.0)(typescript@5.3.3) @@ -8023,18 +8023,18 @@ packages: - webpack-cli dev: true - /@nx/cypress@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-Wppnna77CAFqW/BdAkJEWa20IYDQJ6iQwul7puRq6eclNQI8VuIbo2QReWoD79x/u68PaF5beu8PqMvJTmmvdQ==} + /@nx/cypress@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-OCK8eoaRRhgTisBCBstPom8jHXye1PGFN35rE7ma3URpVvDnx8SEJn2M4dUYnFcEp6iQwdFhaBFlYWlJZq7rSw==} peerDependencies: cypress: '>= 3 < 14' peerDependenciesMeta: cypress: optional: true dependencies: - '@nrwl/cypress': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/cypress': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) cypress: 13.6.6 detect-port: 1.5.1 @@ -8069,33 +8069,33 @@ packages: tslib: 2.6.2 dev: true - /@nx/devkit@18.1.0-beta.9(nx@18.1.0-beta.9): - resolution: {integrity: sha512-4lFMbRkrugVJMOVilxga3HzzbvqzPuL7XHyceV5afZyTq0E4zgPLlMP6ZFvqXf1o1j/vCYcpG2eUg3kmgk6h5g==} + /@nx/devkit@18.1.0-beta.10(nx@18.1.0-beta.10): + resolution: {integrity: sha512-8rztEQcAdP2kDhn1cxsFlwB3BmrBdO3YdTaC8XVf+qA0qsFPLSF9oBc9D6xLvBgsd+q6jdHRDtjAdBzb16OX2Q==} peerDependencies: nx: '>= 16 <= 18' dependencies: - '@nrwl/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) + '@nrwl/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) ejs: 3.1.8 enquirer: 2.3.6 ignore: 5.3.1 - nx: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + nx: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) semver: 7.6.0 tmp: 0.2.1 tslib: 2.6.2 yargs-parser: 21.1.1 dev: true - /@nx/esbuild@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-XJW/zTVLNiGrdxAmDMmhc8Kjx1PouXFOEyPmSoMz+kLFQHqLLyrCQaSNe6vv2zMQTDrBewjqXZV+py0IiBwbug==} + /@nx/esbuild@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-3oQYk9KyrE8y/LhUwprqpfQP1QrxIY9eg5/UMmAMAatM0ET0yc27+jaYu2bgCIHUxPJKOrTAZGD9m+tw5t0WVA==} peerDependencies: esbuild: ~0.19.2 peerDependenciesMeta: esbuild: optional: true dependencies: - '@nrwl/esbuild': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/esbuild': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) chalk: 4.1.2 esbuild: 0.19.5 fast-glob: 3.2.7 @@ -8115,8 +8115,8 @@ packages: - verdaccio dev: true - /@nx/eslint-plugin@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-cxNYvoH1ZNLJT7kJzMtFGLb4QGF4OUqhHRnram9URvkyDpgd653Z2FnYy/chPHjlYryYuvC58S5CzsDHZQziWQ==} + /@nx/eslint-plugin@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-5alVz6oWOewkQNRBZuJ/ACYdCn+NQ8OWt+hdtYN1OByr4QZxsaSVsPzlzxkgDO01ZUStOS2u4PT+HeRBzGJOOg==} peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 eslint-config-prettier: ^9.0.0 @@ -8124,9 +8124,9 @@ packages: eslint-config-prettier: optional: true dependencies: - '@nrwl/eslint-plugin-nx': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/eslint-plugin-nx': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(@typescript-eslint/parser@6.18.1)(eslint-config-prettier@9.0.0)(eslint@8.48.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@typescript-eslint/parser': 6.18.1(eslint@8.48.0)(typescript@5.3.3) '@typescript-eslint/type-utils': 6.18.1(eslint@8.48.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.18.1(eslint@8.48.0)(typescript@5.3.3) @@ -8150,17 +8150,17 @@ packages: - verdaccio dev: true - /@nx/eslint@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4): - resolution: {integrity: sha512-SlccwLEFjK80MVOC8XjAosnUsLl7L7ov5o4JycZdN+oDF2rcOLs6DxwofmnrCqB+ERvXr9Ll0HXh1oYHie8PMQ==} + /@nx/eslint@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4): + resolution: {integrity: sha512-oJ2eGd5khXeSGSDV0AW0hWDj9wOKjz79FYv15UMVTmKROlt4qtEa0EuBROe27Kii+pbu8GHRtPaI+Dc3e3Ozfw==} peerDependencies: js-yaml: 4.1.0 peerDependenciesMeta: js-yaml: optional: true dependencies: - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/linter': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/linter': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) eslint: 8.48.0 js-yaml: 4.1.0 tslib: 2.6.2 @@ -8177,14 +8177,14 @@ packages: - verdaccio dev: true - /@nx/jest@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-1+u/eCdCjfaX0752nRT2QcOuMiA1tcjlDHd3IE1po21s1KbWWwNZ0ZmqSMY1n7tioUCK04BLq1WD3ekyKfZwNA==} + /@nx/jest@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-Rz7kEaRBpDOA19mclNXnGdDNTuqhG4+tWTdpPizwwXGdojkJFVW8xETCbBtrsWSpoWtKf1Ndxb7kksP4Gfm3AQ==} dependencies: '@jest/reporters': 29.5.0 '@jest/test-result': 29.7.0 - '@nrwl/jest': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/jest': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) chalk: 4.1.2 identity-obj-proxy: 3.0.0 @@ -8261,8 +8261,8 @@ packages: - typescript dev: true - /@nx/js@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-uhxb9nsgvSgYeZwaLAsmfZeiq2EOW8zYdk0/K/s2sTxxwhgsD6GipX+FJR1O4R/dRxke7y6jaaoetikBi52caA==} + /@nx/js@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-6RRPtTgiunRYe/Dd+fJ7URyXKwyxIrX211qur16SK+B2XwaCcgJaA33u9X+lQW2oPyQvwE8E6e76x+GCqld8rg==} peerDependencies: verdaccio: ^5.0.4 peerDependenciesMeta: @@ -8276,9 +8276,9 @@ packages: '@babel/preset-env': 7.23.9(@babel/core@7.23.9) '@babel/preset-typescript': 7.22.5(@babel/core@7.23.9) '@babel/runtime': 7.23.9 - '@nrwl/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/workspace': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nrwl/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/workspace': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) babel-plugin-const-enum: 1.2.0(@babel/core@7.23.9) babel-plugin-macros: 2.8.0 @@ -8312,10 +8312,10 @@ packages: - typescript dev: true - /@nx/linter@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4): - resolution: {integrity: sha512-9Kn+MLIU/tzyhyBpU2mIEH99T/VfQPr7vRG6L7OAMykENSw4/iNP4ZUKpFVGYEAYzEYyE/qyhd77nB0C8Dy2jg==} + /@nx/linter@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4): + resolution: {integrity: sha512-VKvwhh8w9ldudYzbtio0dOnbdhFRjdvC8wW6E2/7TXwvVwXNc52hRIVr+oSh7sMWrPAhFOjeQRdQ8ocIReF6pQ==} dependencies: - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -8329,20 +8329,20 @@ packages: - verdaccio dev: true - /@nx/next@18.1.0-beta.9(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0): - resolution: {integrity: sha512-yqBE3xtf/20wHcTZcnT6cYhLrH0eeGL652Ay/pxVt/dYqkcmT88Sbyx9zzbKvybmMsN2Jy18ey9v7ZvrusqO7w==} + /@nx/next@18.1.0-beta.10(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0): + resolution: {integrity: sha512-r64WqtDar3++cWNOFi+WcgfgqfOOLo5ymNdsvTMxMSCauw+GV53au1F9ELEuaDaTGlSf+W2eC8udUqjocv9VgQ==} peerDependencies: next: '>=14.0.0' dependencies: '@babel/plugin-proposal-decorators': 7.23.9(@babel/core@7.23.2) - '@nrwl/next': 18.1.0-beta.9(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/react': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/web': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/webpack': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/workspace': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nrwl/next': 18.1.0-beta.10(@babel/core@7.23.2)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(js-yaml@4.1.0)(next@14.0.4)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/react': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/web': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/webpack': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/workspace': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) '@svgr/webpack': 8.0.1(typescript@5.3.3) chalk: 4.1.2 copy-webpack-plugin: 10.2.4(webpack@5.88.0) @@ -8395,8 +8395,8 @@ packages: dev: true optional: true - /@nx/nx-darwin-arm64@18.1.0-beta.9: - resolution: {integrity: sha512-8KJ5gT6r+KuWb+9WdHGAYVinpNeGLWrMTMYC+EEqPMP04p6CbFHvxmgkXm2l73Ebt5mIeUwO/RIA3EGiqkyP3A==} + /@nx/nx-darwin-arm64@18.1.0-beta.10: + resolution: {integrity: sha512-32nwmddQFx9nHK6y/lG1KFILgffM4k3DOqkQXjN9x8B0FO+t7U44Q0q95DS0ady9dRoPpYq7rDLyI3qRZrKyHQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -8413,8 +8413,8 @@ packages: dev: true optional: true - /@nx/nx-darwin-x64@18.1.0-beta.9: - resolution: {integrity: sha512-dKtQheGf91dLQEdy0eaeT55ZKtfxEsREEp8BE7moJDHKsVzdzkrPXcjyRjqeWOBnkRiyud37swDs0rLDRbAIig==} + /@nx/nx-darwin-x64@18.1.0-beta.10: + resolution: {integrity: sha512-P3Iqs3+8LBdq7YEvaqfca8LBKV0Cq3BNTnca3n62J0UnqRiF0M3EfzUeOZHNepGxFBN959kFTzH3K3aCb2MG6Q==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -8431,8 +8431,8 @@ packages: dev: true optional: true - /@nx/nx-freebsd-x64@18.1.0-beta.9: - resolution: {integrity: sha512-M7F6iMkT8iEKNEwr2UoLALZvidRYMbfPFc1A9YoKpk0YeoR3BcIyBoeJz0Mr3XplQnFaCauwzsZeGovcTUwZGA==} + /@nx/nx-freebsd-x64@18.1.0-beta.10: + resolution: {integrity: sha512-NC70D5lhXro4aiMH9tVo8d6xDMyMRDFrCFPNdhD69nYNmZ4dUZXFtpmFViy2lWGLjgjgI7KLhM7UoRjH1Tr2hQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] @@ -8449,8 +8449,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm-gnueabihf@18.1.0-beta.9: - resolution: {integrity: sha512-2ax8kJCRLSjKUmzgnfxCSypE9q1oGJHCRpWC9UY4Xx95XVVVejIPRgZMfabpSeWP5avBVeFMmagrC4eCKPmA/g==} + /@nx/nx-linux-arm-gnueabihf@18.1.0-beta.10: + resolution: {integrity: sha512-lcn+eUQLLLFmTlA44h79V5b9fED6opBWaMhNzwyvVs2oYSV+qswPQ/puKPQkmC3VUsGVyjpV46NEQfmq3R95Cg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -8467,8 +8467,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-gnu@18.1.0-beta.9: - resolution: {integrity: sha512-vehDpmthgUv7whr4dV2OTKzJv/9oG8ke4nNwgfz9KWr20f9dixTutShDQH0K5727dJ1vui7QktSj3ezKhy52Eg==} + /@nx/nx-linux-arm64-gnu@18.1.0-beta.10: + resolution: {integrity: sha512-Eg6e2twuXNRRrhCYBIu7/aGtXEca0mMucxcrzBMOstWC3s9WC9p6PwBoekriRmfKPbtT5NXQY93xd49MtT691w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -8485,8 +8485,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-musl@18.1.0-beta.9: - resolution: {integrity: sha512-iqSFJfId3beW8iEgwIxJSmrKcC2vutvEfN3XOii5JPVxLS0RvI3jMNXQUfBUKueEHQ9fniNjOG5OPGBK6yK4pw==} + /@nx/nx-linux-arm64-musl@18.1.0-beta.10: + resolution: {integrity: sha512-G+5qC2MVbmDBz6wcjNbPw30YFa5zWnks4sYKaOsWSbjW0KJxGkDd1WgX9jp8tZundtwzE3To8MDc+EuMMT+v4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -8503,8 +8503,8 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-gnu@18.1.0-beta.9: - resolution: {integrity: sha512-BRhjf0wRW1q4lPGFsfhpqwAn+54AZhC01DEm2gihAAv7Bd82h1WDauTIA3247WFv0nh0qYB+0wkKdvWLzxvZfQ==} + /@nx/nx-linux-x64-gnu@18.1.0-beta.10: + resolution: {integrity: sha512-zmhGJAzZAitVuaOhfjOsIr5AWIZWz9tsMzYWdi+YGJ9RjGS1EkOMywm1OgIYy4F9z4sawZNrpBd5qp7IP609tQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -8521,8 +8521,8 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-musl@18.1.0-beta.9: - resolution: {integrity: sha512-Q+fx0omyu+PtPZaU4twjpA1ZeDjH2NJudq6nMA0Yl+pYQRcNHeQ9F2RZkz2iJevCkbX0/qlbopJD78TtOWNJyQ==} + /@nx/nx-linux-x64-musl@18.1.0-beta.10: + resolution: {integrity: sha512-6Q/8HpaH0c/BI/eNc/G0CW9aIfIfFf3oKr+Tf2TY9vepBAx2yWsR8GdlQgqGr0Mjw3CG3y/wTT0Rt64XR9ujhQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -8539,8 +8539,8 @@ packages: dev: true optional: true - /@nx/nx-win32-arm64-msvc@18.1.0-beta.9: - resolution: {integrity: sha512-WX96NUW6kCTMVNs/Be8ryhrX7K0aKflmC0XTQEfuu58J+8FbyDhwkAsi84F9W4tH+2blmDKbXwwsBecgtn79jw==} + /@nx/nx-win32-arm64-msvc@18.1.0-beta.10: + resolution: {integrity: sha512-az2IZ63lo8SENfFSOccNijJtMeqb2XVPLSRI5adV1XNp393ZNaFm6nLgMy2LF3bYq69uoozWAm3K9tT9yvgLDg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -8557,8 +8557,8 @@ packages: dev: true optional: true - /@nx/nx-win32-x64-msvc@18.1.0-beta.9: - resolution: {integrity: sha512-OPtPgaWPa4NMmfd986zSo3IznoCbyOTtZ8x/BHvpAvgtutPNv67x5EUy5g+FQf+Ojsf2lgkN3JfClWvrakJsUg==} + /@nx/nx-win32-x64-msvc@18.1.0-beta.10: + resolution: {integrity: sha512-1DcB/B07MhcDjKSfQK+C4fRhdbqvtsn389bCZEtyNR7wD+IxoJ7098NgiqD/2g5YBT7z/ZgeqYuPG7XoqNy59Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -8566,17 +8566,17 @@ packages: dev: true optional: true - /@nx/playwright@18.1.0-beta.9(@playwright/test@1.36.1)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-tv8/C1Xfx704MOSd2ee+ImJ2xW2g4dYmepPfoP6XWGTH6CnRC3zLLZyP1DC4DaJM0Krnb8NCSaYwDu2CqpQWfg==} + /@nx/playwright@18.1.0-beta.10(@playwright/test@1.36.1)(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-eoaKE6lYHL06DcpTRvXlCMaTHTrMB05ivCZbd7bt3ilEEnCEZDu8ujKVoENhRnfSgTKLB3KFJxcij7KTjMes+w==} peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: '@playwright/test': optional: true dependencies: - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@playwright/test': 1.36.1 minimatch: 9.0.3 @@ -8595,14 +8595,14 @@ packages: - verdaccio dev: true - /@nx/react@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-4zkqDHJXSka+nPjY4opAUWWPswe2wh7lAF9sUT/hY3VFPOIP47Z6aGO0JYedpsQERiYx9NbCiseolKp+O3CciQ==} + /@nx/react@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-bhQt/aom3TDtjcNOPnNBxJuyjcJlPYkJbQAb8Z3JFT3n7xkEL7On5ctPH0rm3HAD/PEofhL952tezy3/JryafQ==} dependencies: - '@nrwl/react': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/web': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/react': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/web': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@svgr/webpack': 8.0.1(typescript@5.3.3) chalk: 4.1.2 @@ -8622,14 +8622,14 @@ packages: - verdaccio dev: true - /@nx/storybook@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-oiHpcUQroR/RWCisyjNhQODorrdaWFkiFrEI0LEpeET1pCPylVoLDJSNCuDWccMUSM1+4JEzDKRE4mrS0EpqoQ==} + /@nx/storybook@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-l2nFeq9IcMi4W0cdo4LGJNuks3NWRTVqcyGyKSdmKKUxmeS9JrubzZ+IYbvsNs9rq+Nj+7JHkQtqYDlCWSJGSw==} dependencies: - '@nrwl/storybook': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/cypress': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/eslint': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.9)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/storybook': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/cypress': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(cypress@13.6.6)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/eslint': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(js-yaml@4.1.0)(nx@18.1.0-beta.10)(verdaccio@5.15.4) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) semver: 7.6.0 tslib: 2.6.2 @@ -8648,15 +8648,15 @@ packages: - verdaccio dev: true - /@nx/vite@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1): - resolution: {integrity: sha512-i9GEcY0D/lJgpMeIXjUoS7vCiPiVWIHhMiynoVPt8kUCTyXkLnLoTw5KjmOFg5dtrW4fDGGAxpPi4TVDYLcQwQ==} + /@nx/vite@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1): + resolution: {integrity: sha512-MY3IbNyoUt6C0GSh8Nhssxm6V/k6DcPLdTdPMehvdoSTWjZ6mIgUDktKfVTtsd/N/y0u92pY2myXhqiIWwKlDQ==} peerDependencies: vite: ^5.0.0 vitest: ^1.3.1 dependencies: - '@nrwl/vite': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/vite': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@swc/helpers': 0.5.3 enquirer: 2.3.6 @@ -8676,12 +8676,12 @@ packages: - verdaccio dev: true - /@nx/web@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-vXHKfUhUS0aOqvO+2er0wr9U4HWQH038i0mSxNw4Xg4kEXZKovfvI4kcITjllM/drrxVdaPU5SbTnw2ko5lawA==} + /@nx/web@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-cNo77csryGkumBuW3er0Lse8CetvvhRFvC3IjU0aDlJx+kcrPVKeqFw84/xWMZOhmhusO7Cx6qIpoERZSvaOpg==} dependencies: - '@nrwl/web': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/web': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) chalk: 4.1.2 detect-port: 1.5.1 http-server: 14.1.0 @@ -8699,13 +8699,13 @@ packages: - verdaccio dev: true - /@nx/webpack@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-Mc3K76V6j7eyNqogAr+xRoSHzJvznW4w6V7NbujpOmnhXArYxOJtCoNLjtiFDog784xpPmdtIfuob+3lGn3DTQ==} + /@nx/webpack@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4): + resolution: {integrity: sha512-6z/X+ErdIN9i7z3WC7coz5M5E/CgSfE5RL/vt0mUCaYRe/6W7EjnanPftqmGGJ3CsJthC3jYNHpe1CzDhu76KA==} dependencies: '@babel/core': 7.23.9 - '@nrwl/webpack': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) - '@nx/js': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.9)(typescript@5.3.3)(verdaccio@5.15.4) + '@nrwl/webpack': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(esbuild@0.19.5)(html-webpack-plugin@5.5.0)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) + '@nx/js': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.10)(typescript@5.3.3)(verdaccio@5.15.4) ajv: 8.12.0 autoprefixer: 10.4.13(postcss@8.4.19) babel-loader: 9.1.3(@babel/core@7.23.9)(webpack@5.88.0) @@ -8784,14 +8784,14 @@ packages: - debug dev: true - /@nx/workspace@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-6/ECB7cLfJW6b+Bo5TYZl3cidoFBtPdqgNN+cNv6LoJqyGAYOKVtQGMO/6W1V55n5bsmV2cnvZpL5Nt46XOdGg==} + /@nx/workspace@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86): + resolution: {integrity: sha512-JqkQKsGI4oDwBwm7XH0aHuyXXAwsD9NeKTSHOqHhe19IRfGYhISRHWood6/APs4B+U3xLR/bXPscuxsCaUe1yA==} dependencies: - '@nrwl/workspace': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) - '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) + '@nrwl/workspace': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nx/devkit': 18.1.0-beta.10(nx@18.1.0-beta.10) chalk: 4.1.2 enquirer: 2.3.6 - nx: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + nx: 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) tslib: 2.6.2 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -25352,8 +25352,8 @@ packages: - debug dev: true - /nx@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-SwicygKHVVvltXKqsiUDV3df9yYwwz1qBQVFxEKI0Q9i1MnC/kOvAosl8/vlrnDPhbDsuoMP6tJvDVBqw2Hz7w==} + /nx@18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86): + resolution: {integrity: sha512-zYVdUNWwg7aXySOMYfuVOfJTFP3vJkztKFQFv0Xpi5KuVbqpt/28gugA0ZI41XolKjWzBieWk54ddW8kdT0j5g==} hasBin: true requiresBuild: true peerDependencies: @@ -25365,7 +25365,7 @@ packages: '@swc/core': optional: true dependencies: - '@nrwl/tao': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nrwl/tao': 18.1.0-beta.10(@swc-node/register@1.8.0)(@swc/core@1.3.86) '@swc-node/register': 1.8.0(@swc/core@1.3.86)(@swc/types@0.1.5)(typescript@5.3.3) '@swc/core': 1.3.86(@swc/helpers@0.5.3) '@yarnpkg/lockfile': 1.1.0 @@ -25402,16 +25402,16 @@ packages: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 18.1.0-beta.9 - '@nx/nx-darwin-x64': 18.1.0-beta.9 - '@nx/nx-freebsd-x64': 18.1.0-beta.9 - '@nx/nx-linux-arm-gnueabihf': 18.1.0-beta.9 - '@nx/nx-linux-arm64-gnu': 18.1.0-beta.9 - '@nx/nx-linux-arm64-musl': 18.1.0-beta.9 - '@nx/nx-linux-x64-gnu': 18.1.0-beta.9 - '@nx/nx-linux-x64-musl': 18.1.0-beta.9 - '@nx/nx-win32-arm64-msvc': 18.1.0-beta.9 - '@nx/nx-win32-x64-msvc': 18.1.0-beta.9 + '@nx/nx-darwin-arm64': 18.1.0-beta.10 + '@nx/nx-darwin-x64': 18.1.0-beta.10 + '@nx/nx-freebsd-x64': 18.1.0-beta.10 + '@nx/nx-linux-arm-gnueabihf': 18.1.0-beta.10 + '@nx/nx-linux-arm64-gnu': 18.1.0-beta.10 + '@nx/nx-linux-arm64-musl': 18.1.0-beta.10 + '@nx/nx-linux-x64-gnu': 18.1.0-beta.10 + '@nx/nx-linux-x64-musl': 18.1.0-beta.10 + '@nx/nx-win32-arm64-msvc': 18.1.0-beta.10 + '@nx/nx-win32-x64-msvc': 18.1.0-beta.10 transitivePeerDependencies: - debug dev: true