From c16f57b691f33afb05e238f45294095124d51680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Jona=C5=A1?= Date: Tue, 12 Mar 2024 16:04:02 +0100 Subject: [PATCH 1/8] docs(nx-dev): comment out start-ci-run on on docs according to the ci workflows (#22280) --- docs/shared/monorepo-ci-azure.md | 2 +- docs/shared/monorepo-ci-bitbucket-pipelines.md | 2 +- docs/shared/monorepo-ci-circle-ci.md | 2 +- docs/shared/monorepo-ci-github-actions.md | 2 +- docs/shared/monorepo-ci-gitlab.md | 2 +- docs/shared/monorepo-ci-jenkins.md | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/shared/monorepo-ci-azure.md b/docs/shared/monorepo-ci-azure.md index 3c982121225fb..463945debf265 100644 --- a/docs/shared/monorepo-ci-azure.md +++ b/docs/shared/monorepo-ci-azure.md @@ -49,7 +49,7 @@ jobs: - script: git branch --track main origin/main # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - script: npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" + # - script: npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" - script: npm ci - script: npx nx-cloud record -- nx format:check --base=$(BASE_SHA) diff --git a/docs/shared/monorepo-ci-bitbucket-pipelines.md b/docs/shared/monorepo-ci-bitbucket-pipelines.md index 410b3da212012..116ff2258c7e6 100644 --- a/docs/shared/monorepo-ci-bitbucket-pipelines.md +++ b/docs/shared/monorepo-ci-bitbucket-pipelines.md @@ -30,7 +30,7 @@ pipelines: - export NX_BRANCH=$BITBUCKET_PR_ID # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" + # - npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" - npm ci - npx nx-cloud record -- nx format:check diff --git a/docs/shared/monorepo-ci-circle-ci.md b/docs/shared/monorepo-ci-circle-ci.md index dc7fac3fa45b1..33ef01e2f8593 100644 --- a/docs/shared/monorepo-ci-circle-ci.md +++ b/docs/shared/monorepo-ci-circle-ci.md @@ -16,7 +16,7 @@ jobs: - checkout # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - run: npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" + # - run: npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" - run: npm ci - nx/set-shas diff --git a/docs/shared/monorepo-ci-github-actions.md b/docs/shared/monorepo-ci-github-actions.md index cfceb5576df3b..536d4cc522f17 100644 --- a/docs/shared/monorepo-ci-github-actions.md +++ b/docs/shared/monorepo-ci-github-actions.md @@ -29,7 +29,7 @@ jobs: cache: 'npm' # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - run: npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" + # - run: npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" - run: npm ci - uses: nrwl/nx-set-shas@v3 diff --git a/docs/shared/monorepo-ci-gitlab.md b/docs/shared/monorepo-ci-gitlab.md index 99fec5bc06c44..158eef6abcb5d 100644 --- a/docs/shared/monorepo-ci-gitlab.md +++ b/docs/shared/monorepo-ci-gitlab.md @@ -22,7 +22,7 @@ main: script: # Connect your workspace on <%= nxCloudHost %> and uncomment this to enable task distribution. # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" + # - npx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" - npm ci --cache .npm --prefer-offline - NX_HEAD=$CI_COMMIT_SHA diff --git a/docs/shared/monorepo-ci-jenkins.md b/docs/shared/monorepo-ci-jenkins.md index fefa0ee0d3ee6..4ecf122b723d4 100644 --- a/docs/shared/monorepo-ci-jenkins.md +++ b/docs/shared/monorepo-ci-jenkins.md @@ -19,7 +19,7 @@ pipeline { steps { // This line enables distribution // The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - sh "npx nx-cloud start-ci-run --distribute-on='5 linux-medium-js' --stop-agents-after='e2e-ci'" + // sh "npx nx-cloud start-ci-run --distribute-on='5 linux-medium-js' --stop-agents-after='e2e-ci'" sh "npm ci" sh "npx nx-cloud record -- nx format:check" sh "npx nx affected --base=HEAD~1 -t lint test build e2e-ci" @@ -33,7 +33,7 @@ pipeline { steps { // This line enables distribution // The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - sh "npx nx-cloud start-ci-run --distribute-on='5 linux-medium-js' --stop-agents-after='e2e-ci'" + // sh "npx nx-cloud start-ci-run --distribute-on='5 linux-medium-js' --stop-agents-after='e2e-ci'" sh "npm ci" sh "npx nx-cloud record -- nx format:check" sh "npx nx affected --base origin/${env.CHANGE_TARGET} -t lint test build e2e-ci" From 0025b3c8fa36ded22a1cc189e6ac70b64b1424e4 Mon Sep 17 00:00:00 2001 From: Alex Swindler Date: Tue, 12 Mar 2024 09:56:22 -0600 Subject: [PATCH 2/8] fix(core): make windows runtime input hashing windowless (#22197) --- .../src/native/tasks/hashers/hash_runtime.rs | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/packages/nx/src/native/tasks/hashers/hash_runtime.rs b/packages/nx/src/native/tasks/hashers/hash_runtime.rs index 0a7ba75a1e9f2..78f6959728a2a 100644 --- a/packages/nx/src/native/tasks/hashers/hash_runtime.rs +++ b/packages/nx/src/native/tasks/hashers/hash_runtime.rs @@ -5,6 +5,13 @@ use std::process::Command; use std::sync::Arc; use tracing::trace; +#[cfg(target_os = "windows")] +use std::os::windows::process::CommandExt; + +// Windows API constant to prevent creating a window +#[cfg(target_os = "windows")] +const CREATE_NO_WINDOW: u32 = 0x08000000; + pub fn hash_runtime( workspace_root: &str, command: &str, @@ -17,20 +24,7 @@ pub fn hash_runtime( return Ok(cache_results.clone()); } - let mut command_builder = if cfg!(target_os = "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 = Command::new(shell); - command.arg("/C"); - command - } else { - let mut command = Command::new("sh"); - command.arg("-c"); - command - }; + let mut command_builder = create_command_builder(); command_builder.arg(command); @@ -53,6 +47,26 @@ pub fn hash_runtime( Ok(hash_result) } +#[cfg(target_os = "windows")] +fn create_command_builder() -> Command { + let comspec = std::env::var("COMSPEC"); + let shell = comspec + .as_ref() + .map(|v| v.as_str()) + .unwrap_or_else(|_| "cmd.exe"); + let mut command = Command::new(shell); + command.creation_flags(CREATE_NO_WINDOW); + command.arg("/C"); + command +} + +#[cfg(not(target_os = "windows"))] +fn create_command_builder() -> Command { + let mut command = Command::new("sh"); + command.arg("-c"); + command +} + #[cfg(test)] mod tests { use super::*; From 810c5dfcc2798a14211d0a42e3d3ca1a43bf21b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Jona=C5=A1?= Date: Tue, 12 Mar 2024 19:59:48 +0100 Subject: [PATCH 3/8] fix(core): fix gh group success icon (#22281) --- packages/nx/src/utils/output.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nx/src/utils/output.ts b/packages/nx/src/utils/output.ts index 0b6f7b7c29e59..e40599e12c4ca 100644 --- a/packages/nx/src/utils/output.ts +++ b/packages/nx/src/utils/output.ts @@ -266,7 +266,7 @@ class CLIOutput { private getStatusIcon(taskStatus: TaskStatus) { switch (taskStatus) { case 'success': - return '✔️'; + return '✅'; case 'failure': return '❌'; case 'skipped': From b78090ae586d27ceb4c90a0bc73a53eb9a760316 Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Tue, 12 Mar 2024 15:00:03 -0400 Subject: [PATCH 4/8] chore(repo): update nx to 18.1.0-beta.9 (#22239) --- package.json | 32 ++-- pnpm-lock.yaml | 412 ++++++++++++++++++++++++------------------------- 2 files changed, 222 insertions(+), 222 deletions(-) diff --git a/package.json b/package.json index ded83bff801be..bb5e45a1665d2 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.5", - "@nx/cypress": "18.1.0-beta.5", - "@nx/devkit": "18.1.0-beta.5", - "@nx/esbuild": "18.1.0-beta.5", - "@nx/eslint": "18.1.0-beta.5", - "@nx/eslint-plugin": "18.1.0-beta.5", - "@nx/jest": "18.1.0-beta.5", - "@nx/js": "18.1.0-beta.5", - "@nx/next": "18.1.0-beta.5", - "@nx/playwright": "18.1.0-beta.5", - "@nx/react": "18.1.0-beta.5", - "@nx/storybook": "18.1.0-beta.5", - "@nx/vite": "18.1.0-beta.5", - "@nx/web": "18.1.0-beta.5", - "@nx/webpack": "18.1.0-beta.5", + "@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", "@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.5", + "nx": "18.1.0-beta.9", "octokit": "^2.0.14", "open": "^8.4.0", "openai": "~4.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6f9fd8d8796d..5dc4386d6b012 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.5 - version: 18.1.0-beta.5(@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.5)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/cypress': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/devkit': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(nx@18.1.0-beta.5) + specifier: 18.1.0-beta.9 + version: 18.1.0-beta.9(nx@18.1.0-beta.9) '@nx/esbuild': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/eslint': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) + 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) '@nx/eslint-plugin': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/jest': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/js': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/next': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) + 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) '@nx/playwright': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/react': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/storybook': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/vite': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) + 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) '@nx/web': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@nx/webpack': - specifier: 18.1.0-beta.5 - version: 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + 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) '@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.5 - version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + specifier: 18.1.0-beta.9 + version: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) octokit: specifier: ^2.0.14 version: 2.0.14 @@ -7343,10 +7343,10 @@ packages: - supports-color dev: true - /@nrwl/angular@18.1.0-beta.5(@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.5)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-kSM40u7vOfQ6+AM5ksoZ8j6wEg54Az2o4FJkkxEakNOqc4uBu/CwosRrohIA1rUQVee6BzI/yw7Itdb4x/jJLQ==} + /@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==} dependencies: - '@nx/angular': 18.1.0-beta.5(@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.5)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) tslib: 2.6.2 transitivePeerDependencies: - '@angular-devkit/build-angular' @@ -7384,10 +7384,10 @@ packages: - webpack-cli dev: true - /@nrwl/cypress@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-22FBkdVwHqRUc35c8a4cdCMenlD4krHp5ymffdoYnvsbS/lthoK0Iax34AHz/lVf0egCEzlo4ngYOxiVWVVOIw==} + /@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==} dependencies: - '@nx/cypress': 18.1.0-beta.5(@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.5)(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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7411,18 +7411,18 @@ packages: - nx dev: true - /@nrwl/devkit@18.1.0-beta.5(nx@18.1.0-beta.5): - resolution: {integrity: sha512-de9mb1SduqXuj/DMgkA/r6do+6u+WSaI3xi3QA6ursbsUfu1j4K94H9/UTHI5tZiP3xy747+Y1Mm8YWL0hfdLQ==} + /@nrwl/devkit@18.1.0-beta.9(nx@18.1.0-beta.9): + resolution: {integrity: sha512-Yoaz2InND3t8C7ERfqir8xbczu7G3Cht2il7NyaIgRVwA26oV5LGuOIvhOFaP4gl+QkJcOXD0HVPTXgVgEJcDw==} dependencies: - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) transitivePeerDependencies: - nx dev: true - /@nrwl/esbuild@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-YYkwrhbnfdOPZU2ntCd6CuD0qRalWxjiLerLxRd5/5dnItICHPJ0rvwcvA8JZbG8Dn9CewoGNN55OASSrCF2Xg==} + /@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==} dependencies: - '@nx/esbuild': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7437,10 +7437,10 @@ packages: - verdaccio dev: true - /@nrwl/eslint-plugin-nx@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-hdwnUUfuCjKTMktn5VRTEYNPPEa9P+HW81o+AcXF4E1NxCA8ussWq3l/UlspRcXAhquU13kVTOcX6Dj0GFQpag==} + /@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==} dependencies: - '@nx/eslint-plugin': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7457,10 +7457,10 @@ packages: - verdaccio dev: true - /@nrwl/jest@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-up7nSKdJgNZDmMaDGUQFvZbRraRkPnd0jyCsfzfvtRwNFPdbZHkz0R2+ocXEoXupQSSE2JGjGtf3UMdeAQSjVg==} + /@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==} dependencies: - '@nx/jest': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7493,10 +7493,10 @@ packages: - verdaccio dev: true - /@nrwl/js@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-4gUm+5eIdirmnoLxq/y6gB9U5JZ0WGZ/Y7CmTHnIZOrOJUL+eIzVZekwffODssOu3W3BCDpg5AeBT+96gGSt3A==} + /@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==} dependencies: - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7510,10 +7510,10 @@ packages: - verdaccio dev: true - /@nrwl/next@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0): - resolution: {integrity: sha512-yCCXKuRb57QxgT75HbJnRFfypzVPn/DWwUX8iMXXqd9zZd5xjccrI2Dks+t+fsKgub7pxqx+Od8xNIe/UUxaPg==} + /@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==} dependencies: - '@nx/next': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) + '@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) transitivePeerDependencies: - '@babel/core' - '@babel/traverse' @@ -7548,10 +7548,10 @@ packages: - webpack-cli dev: true - /@nrwl/react@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-ZjWVObjZo02SzLQubtxf/AF9zp+WNWNtAicPI8vi8ppz9Yaq9EldOEjyFZr3PLhTk3MtrLi8fR5kLNDt7AyQWg==} + /@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==} dependencies: - '@nx/react': 18.1.0-beta.5(@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.5)(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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7566,10 +7566,10 @@ packages: - verdaccio dev: true - /@nrwl/storybook@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-6VUOtoAPlkKjS2MAIlBN7j/6CqOFbKkyMjC5tt0s5ejzOGBnXAHRSPz5ILFl//Sh+z4mp7KUa9AYafMEBk2r2A==} + /@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==} dependencies: - '@nx/storybook': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7597,11 +7597,11 @@ packages: - debug dev: true - /@nrwl/tao@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-/G6VKQxKOvife1SJI8La3uwq0YYlVwtJPQqSxHPYbODrq4zznQLYmhjAKo16xSJExnvaSB0C0rQC2hLGM8B6FQ==} + /@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==} hasBin: true dependencies: - nx: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + nx: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) tslib: 2.6.2 transitivePeerDependencies: - '@swc-node/register' @@ -7609,10 +7609,10 @@ packages: - debug dev: true - /@nrwl/vite@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1): - resolution: {integrity: sha512-FDVBI2MhrLRjMnwUmNX1m8Q6roZrQGgtrSjSrP4t4Uzj+XmhzDpWtBryXZTz1IVCkXwW/C7/m70Z+obuIvy3hA==} + /@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==} dependencies: - '@nx/vite': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) + '@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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7628,10 +7628,10 @@ packages: - vitest dev: true - /@nrwl/web@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-dcq2Z0Y8al2MJaE6CxhP39dhccT8V3PNYbOQ/q/yTcPjWHuJ9jqf8fy6IUVaZ11PCSByp6Dahobk/C9MJXD6yg==} + /@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==} dependencies: - '@nx/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -7645,10 +7645,10 @@ packages: - verdaccio dev: true - /@nrwl/webpack@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-BCauZsIbMpVNi+CrbMH3AmuYbXAVmgyj4HvOiGvMlvwuArlerSKxHY9RLiyyHcS5PWo1osdam/E21y/lvqwAyw==} + /@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==} dependencies: - '@nx/webpack': 18.1.0-beta.5(@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.5)(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) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -7688,10 +7688,10 @@ packages: - debug dev: true - /@nrwl/workspace@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-52itDq8GfsXC/D/tTm+ekdXMm3p/ap2R73Fps/tr6CgaZzsoT4qJaoJDUKo5dOjPVmthwgkZbVuqtJU3HQG5iQ==} + /@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==} dependencies: - '@nx/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nx/workspace': 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) transitivePeerDependencies: - '@swc-node/register' - '@swc/core' @@ -7935,8 +7935,8 @@ packages: - encoding dev: true - /@nx/angular@18.1.0-beta.5(@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.5)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-UdNFLCwwt9bVrGtS2bSz/9ZDieFNjVx403uf95hOVwNKP6jCfJ+I1EhOp7CePnL3sRwI7nnszvzGhz7EBAQvWA==} + /@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==} peerDependencies: '@angular-devkit/build-angular': '>= 15.0.0 < 18.0.0' '@angular-devkit/core': '>= 15.0.0 < 18.0.0' @@ -7951,13 +7951,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.5(@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.5)(rxjs@7.8.1)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/webpack': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@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) '@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) @@ -8003,18 +8003,18 @@ packages: - webpack-cli dev: true - /@nx/cypress@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-NZIvO5KAa+mM7PzQ3N15rfPb+oOUWEt8FA1d1JleBolgK7zhdnI3plH0an5/HorkcZB8wMFGJU6mlbT5LnxjqA==} + /@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==} peerDependencies: cypress: '>= 3 < 14' peerDependenciesMeta: cypress: optional: true dependencies: - '@nrwl/cypress': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) cypress: 13.6.6 detect-port: 1.5.1 @@ -8049,33 +8049,33 @@ packages: tslib: 2.6.2 dev: true - /@nx/devkit@18.1.0-beta.5(nx@18.1.0-beta.5): - resolution: {integrity: sha512-VpT6n36pnkiUdXHnWytZmh8cPZuXg63QdJPZvJVXycsGSi915EWEpqnh9yGDzD0OoafDoAicEiw9/32lPoBw8A==} + /@nx/devkit@18.1.0-beta.9(nx@18.1.0-beta.9): + resolution: {integrity: sha512-4lFMbRkrugVJMOVilxga3HzzbvqzPuL7XHyceV5afZyTq0E4zgPLlMP6ZFvqXf1o1j/vCYcpG2eUg3kmgk6h5g==} peerDependencies: nx: '>= 16 <= 18' dependencies: - '@nrwl/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nrwl/devkit': 18.1.0-beta.9(nx@18.1.0-beta.9) ejs: 3.1.8 enquirer: 2.3.6 ignore: 5.3.1 - nx: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + nx: 18.1.0-beta.9(@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.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-iByUND/MTsbylrQ6hg5I1j1ZIdnW+zRxi9RbqSy5nqtcbSWytcOpv1+okPk4k6YA935BgCT5bnZkTrywW3r7VQ==} + /@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==} peerDependencies: esbuild: ~0.19.2 peerDependenciesMeta: esbuild: optional: true dependencies: - '@nrwl/esbuild': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) chalk: 4.1.2 esbuild: 0.19.5 fast-glob: 3.2.7 @@ -8095,8 +8095,8 @@ packages: - verdaccio dev: true - /@nx/eslint-plugin@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-sVpRF9Xj6UJWBdjLOu8QHwDZwBf9y71R3720GjoOEyP24bJTJSPy+IdLwWXVuhLjl4wSyjx9n89XMBYT3emk8w==} + /@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==} peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 eslint-config-prettier: ^9.0.0 @@ -8104,9 +8104,9 @@ packages: eslint-config-prettier: optional: true dependencies: - '@nrwl/eslint-plugin-nx': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) '@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) @@ -8130,17 +8130,17 @@ packages: - verdaccio dev: true - /@nx/eslint@18.1.0-beta.5(@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.5)(verdaccio@5.15.4): - resolution: {integrity: sha512-wM9YWlZbAXTZGnFNqAg4VfWjsi0mOQ1HuTD/ew0IrF1vyk3BUHKH5luZsdkG2uPtLXT0V7WW0XvVmL3iMK6ceA==} + /@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==} peerDependencies: js-yaml: 4.1.0 peerDependenciesMeta: js-yaml: optional: true dependencies: - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/linter': 18.1.0-beta.5(@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.5)(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) + '@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) eslint: 8.48.0 js-yaml: 4.1.0 tslib: 2.6.2 @@ -8157,14 +8157,14 @@ packages: - verdaccio dev: true - /@nx/jest@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-mdcRbbBXZZVCK6nlpDgNiR69KbG3wzJuNqkQ844WOgqksmh6aGGX0r+JKuRGo1QV1HNfQuabxmAMA6YL4ZCSrw==} + /@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==} dependencies: '@jest/reporters': 29.5.0 '@jest/test-result': 29.7.0 - '@nrwl/jest': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) chalk: 4.1.2 identity-obj-proxy: 3.0.0 @@ -8241,8 +8241,8 @@ packages: - typescript dev: true - /@nx/js@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-kUKUWnwnJUqnN+g8ps87WTrgSOLMv7nCSuS5TFAVszdAiCnwxh2QDxYWn8yXir+9g/kGiW5JGOt0aol3wEpZ5A==} + /@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==} peerDependencies: verdaccio: ^5.0.4 peerDependenciesMeta: @@ -8256,9 +8256,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.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@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) '@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 @@ -8292,10 +8292,10 @@ packages: - typescript dev: true - /@nx/linter@18.1.0-beta.5(@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.5)(verdaccio@5.15.4): - resolution: {integrity: sha512-SYbkz/qKFcTgMTFYhMjYiA1onzaaIZqGYEHzmgCBSjjVmuIHlmFJLqsp3ytG6LEvcMHUTe35W0CWUWkEMFXQtg==} + /@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==} dependencies: - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) + '@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) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -8309,20 +8309,20 @@ packages: - verdaccio dev: true - /@nx/next@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0): - resolution: {integrity: sha512-5V4kTVz8MPj9zqDZTjaKFELvRkLD4G8uElYUEKyux9k2muzVZY6PzclUgKrgmQO8zE1oV04wRUS4dV8+2MktTQ==} + /@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==} peerDependencies: next: '>=14.0.0' dependencies: '@babel/plugin-proposal-decorators': 7.23.9(@babel/core@7.23.2) - '@nrwl/next': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4)(webpack@5.88.0) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/react': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/webpack': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@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) '@svgr/webpack': 8.0.1(typescript@5.3.3) chalk: 4.1.2 copy-webpack-plugin: 10.2.4(webpack@5.88.0) @@ -8375,8 +8375,8 @@ packages: dev: true optional: true - /@nx/nx-darwin-arm64@18.1.0-beta.5: - resolution: {integrity: sha512-ks1OQjd9Az3KzYcZPwjQZNElMZCX8eEkT1S2mJ0InhMbir1YhRYf7/El6JKloQkgTGOQsb/KHFMd+KWSTayTmw==} + /@nx/nx-darwin-arm64@18.1.0-beta.9: + resolution: {integrity: sha512-8KJ5gT6r+KuWb+9WdHGAYVinpNeGLWrMTMYC+EEqPMP04p6CbFHvxmgkXm2l73Ebt5mIeUwO/RIA3EGiqkyP3A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -8393,8 +8393,8 @@ packages: dev: true optional: true - /@nx/nx-darwin-x64@18.1.0-beta.5: - resolution: {integrity: sha512-oe05/x2kGaLBcmzCj3BIeUHPr6JEAPKwlRVvmX97xCpwj1+M7EtcBXJ5DsC3NpKgtxps/3YZdBKj7UFNyubl/A==} + /@nx/nx-darwin-x64@18.1.0-beta.9: + resolution: {integrity: sha512-dKtQheGf91dLQEdy0eaeT55ZKtfxEsREEp8BE7moJDHKsVzdzkrPXcjyRjqeWOBnkRiyud37swDs0rLDRbAIig==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -8411,8 +8411,8 @@ packages: dev: true optional: true - /@nx/nx-freebsd-x64@18.1.0-beta.5: - resolution: {integrity: sha512-QqtoMWq01KsjsykhKCqnsdvCH2fS9Yh5K34POYXFiCyTYvaQNH3LpQQT/7EjHyMcfz00Gmy6SmdyfdbOXpdAwQ==} + /@nx/nx-freebsd-x64@18.1.0-beta.9: + resolution: {integrity: sha512-M7F6iMkT8iEKNEwr2UoLALZvidRYMbfPFc1A9YoKpk0YeoR3BcIyBoeJz0Mr3XplQnFaCauwzsZeGovcTUwZGA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] @@ -8429,8 +8429,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm-gnueabihf@18.1.0-beta.5: - resolution: {integrity: sha512-mkQsFdRnn6P5T3EakvVhK8ljGvsJ1oyGj52PinHHgDEhnMEklQVEdINe6QYRh2OSXnrjS6YMOnwgpHXSpeciUw==} + /@nx/nx-linux-arm-gnueabihf@18.1.0-beta.9: + resolution: {integrity: sha512-2ax8kJCRLSjKUmzgnfxCSypE9q1oGJHCRpWC9UY4Xx95XVVVejIPRgZMfabpSeWP5avBVeFMmagrC4eCKPmA/g==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -8447,8 +8447,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-gnu@18.1.0-beta.5: - resolution: {integrity: sha512-T18LTVYPYVosSa4TtSVPdvlfODzmXuz6QSZ0K5ZlelYi6N5FEpq2v2Sg/G61wXLSxMn9ghpuzj9+gDmXjMcv1Q==} + /@nx/nx-linux-arm64-gnu@18.1.0-beta.9: + resolution: {integrity: sha512-vehDpmthgUv7whr4dV2OTKzJv/9oG8ke4nNwgfz9KWr20f9dixTutShDQH0K5727dJ1vui7QktSj3ezKhy52Eg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -8465,8 +8465,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-musl@18.1.0-beta.5: - resolution: {integrity: sha512-ceXfI0SaMlwf5J4KXdQ2BXTWOzpkQQBDqvu1RO2rG8n48SHCGt6nyLx8Xj7PI1C2A9WthEshHG0bA+7wycHJnw==} + /@nx/nx-linux-arm64-musl@18.1.0-beta.9: + resolution: {integrity: sha512-iqSFJfId3beW8iEgwIxJSmrKcC2vutvEfN3XOii5JPVxLS0RvI3jMNXQUfBUKueEHQ9fniNjOG5OPGBK6yK4pw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -8483,8 +8483,8 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-gnu@18.1.0-beta.5: - resolution: {integrity: sha512-W11AdbOFrxyD8DuJdXb9HWy5fJSlGc9wSiGKRvqnHg3xW0tFlJu6oW8579fXACM/FE5Vwu764eUfiaRisolD0g==} + /@nx/nx-linux-x64-gnu@18.1.0-beta.9: + resolution: {integrity: sha512-BRhjf0wRW1q4lPGFsfhpqwAn+54AZhC01DEm2gihAAv7Bd82h1WDauTIA3247WFv0nh0qYB+0wkKdvWLzxvZfQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -8501,8 +8501,8 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-musl@18.1.0-beta.5: - resolution: {integrity: sha512-U3W7eCDViFjvOj3q7OT93VhO+KXTWPY8HloZvynsUsritJacizWh6omfg6OO3UZ5kxAtvvjya/Z3mD5elsHSxA==} + /@nx/nx-linux-x64-musl@18.1.0-beta.9: + resolution: {integrity: sha512-Q+fx0omyu+PtPZaU4twjpA1ZeDjH2NJudq6nMA0Yl+pYQRcNHeQ9F2RZkz2iJevCkbX0/qlbopJD78TtOWNJyQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -8519,8 +8519,8 @@ packages: dev: true optional: true - /@nx/nx-win32-arm64-msvc@18.1.0-beta.5: - resolution: {integrity: sha512-YKljWtolGC5XF94KaoXgBWgn0wv2WPthAV9iXDasiZyS/MBLhTZ+WhqLCxtBJWMCWmQJVWnaxqYQM6IclEjYqg==} + /@nx/nx-win32-arm64-msvc@18.1.0-beta.9: + resolution: {integrity: sha512-WX96NUW6kCTMVNs/Be8ryhrX7K0aKflmC0XTQEfuu58J+8FbyDhwkAsi84F9W4tH+2blmDKbXwwsBecgtn79jw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -8537,8 +8537,8 @@ packages: dev: true optional: true - /@nx/nx-win32-x64-msvc@18.1.0-beta.5: - resolution: {integrity: sha512-Os7o5xK6xutJI3MJ9VKWIMXgcMXG/3WwDEjRRuiDa0gUuAA6r4zqWUyyMg69+PqDc82qDKMuK7BgTRiGDfmKGQ==} + /@nx/nx-win32-x64-msvc@18.1.0-beta.9: + resolution: {integrity: sha512-OPtPgaWPa4NMmfd986zSo3IznoCbyOTtZ8x/BHvpAvgtutPNv67x5EUy5g+FQf+Ojsf2lgkN3JfClWvrakJsUg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -8546,17 +8546,17 @@ packages: dev: true optional: true - /@nx/playwright@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-ZqUxKIwGCp5rt9kTw3gvUXAXi+1iUNaja987gvHi1yjnq2uBcxkSKBGOmWP+hkC3Hce3ZofCBMoHirhjNd1Hvg==} + /@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==} peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: '@playwright/test': optional: true dependencies: - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(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) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@playwright/test': 1.36.1 minimatch: 9.0.3 @@ -8575,14 +8575,14 @@ packages: - verdaccio dev: true - /@nx/react@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-h49qkC8C77Np7J8uwRGvOwOOcsM96Z4xiSmucd896k2C60n66KsndwfiyxhXlG27AdsEhE85R5sAbc4zsDnGng==} + /@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==} dependencies: - '@nrwl/react': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@svgr/webpack': 8.0.1(typescript@5.3.3) chalk: 4.1.2 @@ -8602,14 +8602,14 @@ packages: - verdaccio dev: true - /@nx/storybook@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-P0d0T/EjNgdY7/+H15rqMn4TFqwGWBTVhj8FMWYPjwyVYXsx3J2dugCEbJEzx2zI9tjPmsyo75M1yjo8wIixNg==} + /@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==} dependencies: - '@nrwl/storybook': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/cypress': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/eslint': 18.1.0-beta.5(@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.5)(verdaccio@5.15.4) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) semver: 7.6.0 tslib: 2.6.2 @@ -8628,15 +8628,15 @@ packages: - verdaccio dev: true - /@nx/vite@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1): - resolution: {integrity: sha512-BV47dEthrmT3tAN9kOYGyoI5OhtDHVnef14H3MCvu0Li1oMDPkAcVdLi4pXtQTqYJwmuxIdrCAlTpew6lGzADA==} + /@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==} peerDependencies: vite: ^5.0.0 vitest: ^1.3.1 dependencies: - '@nrwl/vite': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4)(vite@5.0.8)(vitest@1.3.1) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) '@swc/helpers': 0.5.3 enquirer: 2.3.6 @@ -8656,12 +8656,12 @@ packages: - verdaccio dev: true - /@nx/web@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-99r0pqyyitIOsndIdXPRpYkfecr8TNVn73PXpxrys3dDvq9c7SBqpaCw/ObUia5f4r4Y7SvxxO/O1dPTDtaKTA==} + /@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==} dependencies: - '@nrwl/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) chalk: 4.1.2 detect-port: 1.5.1 http-server: 14.1.0 @@ -8679,13 +8679,13 @@ packages: - verdaccio dev: true - /@nx/webpack@18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4): - resolution: {integrity: sha512-eoYAXW2yWSy2Zj8JrU+Oa23zpmfPrmIwyv/JAxN4Ikpkdflp9UmhVM2VkO3Hooqotlw/UOg2gtI1GEHINz7tbg==} + /@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==} dependencies: '@babel/core': 7.23.9 - '@nrwl/webpack': 18.1.0-beta.5(@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.5)(typescript@5.3.3)(verdaccio@5.15.4) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) - '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86)(@types/node@18.19.8)(nx@18.1.0-beta.5)(typescript@5.3.3)(verdaccio@5.15.4) + '@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) 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) @@ -8764,14 +8764,14 @@ packages: - debug dev: true - /@nx/workspace@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-r2k8KOZW355gMPCv16AdxO9Dwi8GRFDKPrYhsaKcd74YR/dsdsdDpXBDD/9MwMfzB+ZfEcawWei6tgzgwh2MEg==} + /@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==} dependencies: - '@nrwl/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) - '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@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) chalk: 4.1.2 enquirer: 2.3.6 - nx: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + nx: 18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86) tslib: 2.6.2 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -25331,8 +25331,8 @@ packages: - debug dev: true - /nx@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86): - resolution: {integrity: sha512-TUaR3xpsi4dNPVv72uCQAr3l4MkX7jn4NiXu1ZJ8u1QSwFReLSiCGfRwZ6d5Ji2sPXVACmgpywFtsBPF2+yLig==} + /nx@18.1.0-beta.9(@swc-node/register@1.8.0)(@swc/core@1.3.86): + resolution: {integrity: sha512-SwicygKHVVvltXKqsiUDV3df9yYwwz1qBQVFxEKI0Q9i1MnC/kOvAosl8/vlrnDPhbDsuoMP6tJvDVBqw2Hz7w==} hasBin: true requiresBuild: true peerDependencies: @@ -25344,7 +25344,7 @@ packages: '@swc/core': optional: true dependencies: - '@nrwl/tao': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.86) + '@nrwl/tao': 18.1.0-beta.9(@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 @@ -25381,16 +25381,16 @@ packages: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 18.1.0-beta.5 - '@nx/nx-darwin-x64': 18.1.0-beta.5 - '@nx/nx-freebsd-x64': 18.1.0-beta.5 - '@nx/nx-linux-arm-gnueabihf': 18.1.0-beta.5 - '@nx/nx-linux-arm64-gnu': 18.1.0-beta.5 - '@nx/nx-linux-arm64-musl': 18.1.0-beta.5 - '@nx/nx-linux-x64-gnu': 18.1.0-beta.5 - '@nx/nx-linux-x64-musl': 18.1.0-beta.5 - '@nx/nx-win32-arm64-msvc': 18.1.0-beta.5 - '@nx/nx-win32-x64-msvc': 18.1.0-beta.5 + '@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 transitivePeerDependencies: - debug dev: true From 9ca400c25fb29e05814d2fe2c4237eb481ddb539 Mon Sep 17 00:00:00 2001 From: Emily Xiong Date: Tue, 12 Mar 2024 15:01:52 -0400 Subject: [PATCH 5/8] feat(core): run commands directly (#21918) --- .../run-commands/run-commands.impl.ts | 170 ++++++++++++------ packages/nx/src/hasher/hash-task.ts | 4 +- .../src/tasks-runner/default-tasks-runner.ts | 1 - .../forked-process-task-runner.ts | 4 +- .../nx/src/tasks-runner/task-orchestrator.ts | 84 +++++++-- .../nx/src/tasks-runner/tasks-schedule.ts | 9 +- packages/nx/src/tasks-runner/utils.ts | 29 +-- 7 files changed, 208 insertions(+), 93 deletions(-) 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 630f9a302e9c4..d2c9a39ed136c 100644 --- a/packages/nx/src/executors/run-commands/run-commands.impl.ts +++ b/packages/nx/src/executors/run-commands/run-commands.impl.ts @@ -51,6 +51,8 @@ export interface RunCommandsOptions extends Json { args?: string | string[]; envFile?: string; __unparsed__: string[]; + usePty?: boolean; + streamOutput?: boolean; } const propKeys = [ @@ -64,7 +66,8 @@ const propKeys = [ 'envFile', '__unparsed__', 'env', - 'mode', + 'usePty', + 'streamOutput', 'verbose', ]; @@ -87,6 +90,7 @@ export default async function ( context: ExecutorContext ): Promise<{ success: boolean; + terminalOutput: string; }> { await loadEnvVars(options.envFile); const normalized = normalizeOptions(options); @@ -107,10 +111,10 @@ export default async function ( } try { - const success = options.parallel + const result = options.parallel ? await runInParallel(normalized, context) : await runSerially(normalized, context); - return { success }; + return result; } catch (e) { if (process.env.NX_VERBOSE_LOGGING === 'true') { console.error(e); @@ -124,7 +128,7 @@ export default async function ( async function runInParallel( options: NormalizedRunCommandsOptions, context: ExecutorContext -) { +): Promise<{ success: boolean; terminalOutput: string }> { const procs = options.commands.map((c) => createProcess( c, @@ -132,35 +136,59 @@ async function runInParallel( options.color, calculateCwd(options.cwd, context), options.env ?? {}, - true - ).then((result) => ({ + true, + options.usePty, + options.streamOutput + ).then((result: { success: boolean; terminalOutput: string }) => ({ result, command: c.command, })) ); + let terminalOutput = ''; if (options.readyWhen) { - const r = await Promise.race(procs); - if (!r.result) { - process.stderr.write( - `Warning: command "${r.command}" exited with non-zero status code` - ); - return false; + const r: { + result: { success: boolean; terminalOutput: string }; + command: string; + } = await Promise.race(procs); + terminalOutput += r.result.terminalOutput; + if (!r.result.success) { + const output = `Warning: command "${r.command}" exited with non-zero status code`; + terminalOutput += output; + if (options.streamOutput) { + process.stderr.write(output); + } + return { success: false, terminalOutput }; } else { - return true; + return { success: true, terminalOutput }; } } else { - const r = await Promise.all(procs); - const failed = r.filter((v) => !v.result); + const r: { + result: { success: boolean; terminalOutput: string }; + command: string; + }[] = await Promise.all(procs); + terminalOutput += r.map((f) => f.result.terminalOutput).join(''); + const failed = r.filter((v) => !v.result.success); if (failed.length > 0) { - failed.forEach((f) => { - process.stderr.write( - `Warning: command "${f.command}" exited with non-zero status code` - ); - }); - return false; + const output = failed + .map( + (f) => + `Warning: command "${f.command}" exited with non-zero status code` + ) + .join('\r\n'); + terminalOutput += output; + if (options.streamOutput) { + process.stderr.write(output); + } + return { + success: false, + terminalOutput, + }; } else { - return true; + return { + success: true, + terminalOutput, + }; } } } @@ -213,25 +241,31 @@ function normalizeOptions( async function runSerially( options: NormalizedRunCommandsOptions, context: ExecutorContext -) { +): Promise<{ success: boolean; terminalOutput: string }> { + let terminalOutput = ''; for (const c of options.commands) { - const success = await createProcess( - c, - undefined, - options.color, - calculateCwd(options.cwd, context), - options.env ?? {}, - false - ); - if (!success) { - process.stderr.write( - `Warning: command "${c.command}" exited with non-zero status code` + const result: { success: boolean; terminalOutput: string } = + await createProcess( + c, + undefined, + options.color, + calculateCwd(options.cwd, context), + options.env ?? {}, + false, + options.usePty, + options.streamOutput ); - return false; + terminalOutput += result.terminalOutput; + if (!result.success) { + const output = `Warning: command "${c.command}" exited with non-zero status code`; + result.terminalOutput += output; + if (options.streamOutput) { + process.stderr.write(output); + } + return { success: false, terminalOutput }; } } - - return true; + return { success: true, terminalOutput }; } async function createProcess( @@ -245,8 +279,10 @@ async function createProcess( color: boolean, cwd: string, env: Record, - isParallel: boolean -): Promise { + isParallel: boolean, + usePty: boolean = true, + streamOutput: boolean = true +): Promise<{ success: boolean; terminalOutput: string }> { env = processEnv(color, cwd, env); // The rust runCommand is always a tty, so it will not look nice in parallel and if we need prefixes // currently does not work properly in windows @@ -254,32 +290,33 @@ async function createProcess( process.env.NX_NATIVE_COMMAND_RUNNER !== 'false' && process.stdout.isTTY && !commandConfig.prefix && - !isParallel + !isParallel && + usePty ) { const cp = new PseudoTtyProcess( - runCommand(commandConfig.command, cwd, env) + runCommand(commandConfig.command, cwd, env, !streamOutput) ); + let terminalOutput = ''; return new Promise((res) => { cp.onOutput((output) => { + terminalOutput += output; if (readyWhen && output.indexOf(readyWhen) > -1) { - res(true); + res({ success: true, terminalOutput }); } }); cp.onExit((code) => { - if (code === 0) { - res(true); - } else if (code >= 128) { + if (code >= 128) { process.exit(code); } else { - res(false); + res({ success: code === 0, terminalOutput }); } }); }); } - return nodeProcess(commandConfig, color, cwd, env, readyWhen); + return nodeProcess(commandConfig, cwd, env, readyWhen, streamOutput); } function nodeProcess( @@ -289,11 +326,12 @@ function nodeProcess( bgColor?: string; prefix?: string; }, - color: boolean, cwd: string, env: Record, - readyWhen: string -): Promise { + readyWhen: string, + streamOutput = true +): Promise<{ success: boolean; terminalOutput: string }> { + let terminalOutput = ''; return new Promise((res) => { const childProcess = exec(commandConfig.command, { maxBuffer: LARGE_BUFFER, @@ -312,24 +350,36 @@ function nodeProcess( process.on('SIGQUIT', processExitListener); childProcess.stdout.on('data', (data) => { - process.stdout.write(addColorAndPrefix(data, commandConfig)); + const output = addColorAndPrefix(data, commandConfig); + terminalOutput += output; + if (streamOutput) { + process.stdout.write(output); + } if (readyWhen && data.toString().indexOf(readyWhen) > -1) { - res(true); + res({ success: true, terminalOutput }); } }); childProcess.stderr.on('data', (err) => { - process.stderr.write(addColorAndPrefix(err, commandConfig)); + const output = addColorAndPrefix(err, commandConfig); + terminalOutput += output; + if (streamOutput) { + process.stderr.write(output); + } if (readyWhen && err.toString().indexOf(readyWhen) > -1) { - res(true); + res({ success: true, terminalOutput }); } }); childProcess.on('error', (err) => { - process.stderr.write(addColorAndPrefix(err.toString(), commandConfig)); - res(false); + const ouptput = addColorAndPrefix(err.toString(), commandConfig); + terminalOutput += ouptput; + if (streamOutput) { + process.stderr.write(ouptput); + } + res({ success: false, terminalOutput }); }); childProcess.on('exit', (code) => { if (!readyWhen) { - res(code === 0); + res({ success: code === 0, terminalOutput }); } }); }); @@ -370,11 +420,13 @@ function calculateCwd( } function processEnv(color: boolean, cwd: string, env: Record) { + const localEnv = appendLocalEnv({ cwd: cwd ?? process.cwd() }); const res = { ...process.env, - ...appendLocalEnv({ cwd: cwd ?? process.cwd() }), + ...localEnv, ...env, }; + res.PATH = localEnv.PATH; // need to override PATH to make sure we are using the local node_modules if (color) { res.FORCE_COLOR = `${color}`; @@ -389,7 +441,7 @@ export function interpolateArgsIntoCommand( 'args' | 'parsedArgs' | '__unparsed__' | 'unknownOptions' >, forwardAllArgs: boolean -) { +): string { if (command.indexOf('{args.') > -1) { const regex = /{args\.([^}]+)}/g; return command.replace(regex, (_, group: string) => diff --git a/packages/nx/src/hasher/hash-task.ts b/packages/nx/src/hasher/hash-task.ts index 08ce18b05b220..fedc9e284d53c 100644 --- a/packages/nx/src/hasher/hash-task.ts +++ b/packages/nx/src/hasher/hash-task.ts @@ -16,7 +16,7 @@ export async function hashTasksThatDoNotDependOnOutputsOfOtherTasks( const tasks = Object.values(taskGraph.tasks); const tasksWithHashers = await Promise.all( tasks.map(async (task) => { - const customHasher = await getCustomHasher(task, projectGraph); + const customHasher = getCustomHasher(task, projectGraph); return { task, customHasher }; }) ); @@ -56,7 +56,7 @@ export async function hashTask( env: NodeJS.ProcessEnv ) { performance.mark('hashSingleTask:start'); - const customHasher = await getCustomHasher(task, projectGraph); + const customHasher = getCustomHasher(task, projectGraph); const projectsConfigurations = readProjectsConfigurationFromProjectGraph(projectGraph); const { value, details } = await (customHasher diff --git a/packages/nx/src/tasks-runner/default-tasks-runner.ts b/packages/nx/src/tasks-runner/default-tasks-runner.ts index 75e80cdc9386b..a5cb33bfd7473 100644 --- a/packages/nx/src/tasks-runner/default-tasks-runner.ts +++ b/packages/nx/src/tasks-runner/default-tasks-runner.ts @@ -1,6 +1,5 @@ import { TasksRunner, TaskStatus } from './tasks-runner'; import { TaskOrchestrator } from './task-orchestrator'; -import { performance } from 'perf_hooks'; import { TaskHasher } from '../hasher/task-hasher'; import { LifeCycle } from './life-cycle'; import { ProjectGraph } from '../config/project-graph'; 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 fe661918e6a43..15730c733b079 100644 --- a/packages/nx/src/tasks-runner/forked-process-task-runner.ts +++ b/packages/nx/src/tasks-runner/forked-process-task-runner.ts @@ -14,8 +14,8 @@ import { } from './batch/batch-messages'; import { stripIndents } from '../utils/strip-indents'; import { Task, TaskGraph } from '../config/task-graph'; -import { Readable, Transform } from 'stream'; -import { ChildProcess as NativeChildProcess, nxFork } from '../native'; +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'; diff --git a/packages/nx/src/tasks-runner/task-orchestrator.ts b/packages/nx/src/tasks-runner/task-orchestrator.ts index da7daa0450ebd..ad94aaf2816ef 100644 --- a/packages/nx/src/tasks-runner/task-orchestrator.ts +++ b/packages/nx/src/tasks-runner/task-orchestrator.ts @@ -1,6 +1,8 @@ import { defaultMaxListeners } from 'events'; import { performance } from 'perf_hooks'; +import { relative } from 'path'; import { TaskHasher } from '../hasher/task-hasher'; +import runCommandsImpl from '../executors/run-commands/run-commands.impl'; import { ForkedProcessTaskRunner } from './forked-process-task-runner'; import { Cache } from './cache'; import { DefaultTasksRunnerOptions } from './default-tasks-runner'; @@ -8,6 +10,8 @@ import { TaskStatus } from './tasks-runner'; import { calculateReverseDeps, getExecutorForTask, + getPrintableCommandArgsForTask, + getTargetConfigurationForTask, isCacheableTask, removeTasksFromTaskGraph, shouldStreamOutput, @@ -24,6 +28,9 @@ import { getTaskSpecificEnv, } from './task-env'; import * as os from 'os'; +import { workspaceRoot } from '../utils/workspace-root'; +import { output } from '../utils/output'; +import { combineOptionsForExecutor } from '../utils/params'; export class TaskOrchestrator { private cache = new Cache(this.options); @@ -376,20 +383,73 @@ export class TaskOrchestrator { // the task wasn't cached if (results.length === 0) { - // cache prep - const { code, terminalOutput } = await this.runTaskInForkedProcess( + const shouldPrefix = + streamOutput && process.env.NX_PREFIX_OUTPUT === 'true'; + const targetConfiguration = getTargetConfigurationForTask( task, - env, - pipeOutput, - temporaryOutputPath, - streamOutput + this.projectGraph ); + if ( + process.env.NX_RUN_COMMANDS_DIRECTLY !== 'false' && + targetConfiguration.executor === 'nx:run-commands' && + !shouldPrefix + ) { + const { schema } = getExecutorForTask(task, this.projectGraph); + const isRunOne = this.initiatingProject != null; + const combinedOptions = combineOptionsForExecutor( + task.overrides, + task.target.configuration ?? targetConfiguration.defaultConfiguration, + targetConfiguration, + schema, + task.target.project, + relative(task.projectRoot ?? workspaceRoot, process.cwd()), + process.env.NX_VERBOSE_LOGGING === 'true' + ); + if (streamOutput) { + const args = getPrintableCommandArgsForTask(task); + output.logCommand(args.join(' ')); + } + const { success, terminalOutput } = await runCommandsImpl( + { + ...combinedOptions, + env, + usePty: isRunOne && !this.tasksSchedule.hasTasks(), + streamOutput, + }, + { + root: workspaceRoot, // only root is needed in runCommandsImpl + } as any + ); - results.push({ - task, - status: code === 0 ? 'success' : 'failure', - terminalOutput, - }); + const status = success ? 'success' : 'failure'; + if (!streamOutput) { + this.options.lifeCycle.printTaskTerminalOutput( + task, + status, + terminalOutput + ); + } + + results.push({ + task, + status, + terminalOutput, + }); + } else { + // cache prep + const { code, terminalOutput } = await this.runTaskInForkedProcess( + task, + env, + pipeOutput, + temporaryOutputPath, + streamOutput + ); + results.push({ + task, + status: code === 0 ? 'success' : 'failure', + terminalOutput, + }); + } } await this.postRunSteps([task], results, doNotSkipCache, { groupId }); } @@ -573,7 +633,7 @@ export class TaskOrchestrator { return true; } - const { schema } = await getExecutorForTask(task, this.projectGraph); + const { schema } = getExecutorForTask(task, this.projectGraph); return ( schema.outputCapture === 'pipe' || diff --git a/packages/nx/src/tasks-runner/tasks-schedule.ts b/packages/nx/src/tasks-runner/tasks-schedule.ts index 010219f8c56aa..5d63f3a317302 100644 --- a/packages/nx/src/tasks-runner/tasks-schedule.ts +++ b/packages/nx/src/tasks-runner/tasks-schedule.ts @@ -123,10 +123,7 @@ export class TasksSchedule { const batchMap: Record = {}; for (const root of this.notScheduledTaskGraph.roots) { const rootTask = this.notScheduledTaskGraph.tasks[root]; - const executorName = await getExecutorNameForTask( - rootTask, - this.projectGraph - ); + const executorName = getExecutorNameForTask(rootTask, this.projectGraph); await this.processTaskForBatches(batchMap, rootTask, executorName, true); } for (const [executorName, taskGraph] of Object.entries(batchMap)) { @@ -154,11 +151,11 @@ export class TasksSchedule { return; } - const { batchImplementationFactory } = await getExecutorForTask( + const { batchImplementationFactory } = getExecutorForTask( task, this.projectGraph ); - const executorName = await getExecutorNameForTask(task, this.projectGraph); + const executorName = getExecutorNameForTask(task, this.projectGraph); if (rootExecutorName !== executorName) { return; } diff --git a/packages/nx/src/tasks-runner/utils.ts b/packages/nx/src/tasks-runner/utils.ts index 8b53f765982e9..9038fd30379dc 100644 --- a/packages/nx/src/tasks-runner/utils.ts +++ b/packages/nx/src/tasks-runner/utils.ts @@ -2,14 +2,17 @@ import { output } from '../utils/output'; import { relative } from 'path'; import { Task, TaskGraph } from '../config/task-graph'; import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; -import { TargetDependencyConfig } from '../config/workspace-json-project-json'; +import { + TargetConfiguration, + TargetDependencyConfig, +} from '../config/workspace-json-project-json'; import { workspaceRoot } from '../utils/workspace-root'; import { joinPathFragments } from '../utils/path'; import { isRelativePath } from '../utils/fileutils'; import { serializeOverridesIntoCommandLine } from '../utils/serialize-overrides-into-command-line'; import { splitByColons } from '../utils/split-target'; import { getExecutorInformation } from '../command-line/run/executor-utils'; -import { CustomHasher } from '../config/misc-interfaces'; +import { CustomHasher, ExecutorConfig } from '../config/misc-interfaces'; import { readProjectsConfigurationFromProjectGraph } from '../project-graph/project-graph'; export function getCommandAsString(execCommand: string, task: Task) { @@ -248,19 +251,23 @@ export function interpolate(template: string, data: any): string { }); } -export async function getExecutorNameForTask( +export function getTargetConfigurationForTask( task: Task, projectGraph: ProjectGraph -) { +): TargetConfiguration | undefined { const project = projectGraph.nodes[task.target.project].data; - return project.targets[task.target.target].executor; + return project.targets[task.target.target]; +} + +export function getExecutorNameForTask(task: Task, projectGraph: ProjectGraph) { + return getTargetConfigurationForTask(task, projectGraph)?.executor; } -export async function getExecutorForTask( +export function getExecutorForTask( task: Task, projectGraph: ProjectGraph -) { - const executor = await getExecutorNameForTask(task, projectGraph); +): ExecutorConfig & { isNgCompat: boolean; isNxExecutor: boolean } { + const executor = getExecutorNameForTask(task, projectGraph); const [nodeModule, executorName] = executor.split(':'); return getExecutorInformation( @@ -271,11 +278,11 @@ export async function getExecutorForTask( ); } -export async function getCustomHasher( +export function getCustomHasher( task: Task, projectGraph: ProjectGraph -): Promise | null { - const factory = (await getExecutorForTask(task, projectGraph)).hasherFactory; +): CustomHasher | null { + const factory = getExecutorForTask(task, projectGraph).hasherFactory; return factory ? factory() : null; } From b6cd1962c820498940906df305de8691aba5041b Mon Sep 17 00:00:00 2001 From: Nicholas Cunningham Date: Tue, 12 Mar 2024 13:22:50 -0600 Subject: [PATCH 6/8] fix(vite): Storing nxjson details too early (#22285) --- .../src/generators/configuration/configuration.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/generators/configuration/configuration.ts b/packages/vite/src/generators/configuration/configuration.ts index b5322270c0b5c..7338886c6fbea 100644 --- a/packages/vite/src/generators/configuration/configuration.ts +++ b/packages/vite/src/generators/configuration/configuration.ts @@ -40,12 +40,6 @@ export async function viteConfigurationGeneratorInternal( ) { const tasks: GeneratorCallback[] = []; - const nxJson = readNxJson(tree); - const addPluginDefault = - process.env.NX_ADD_PLUGINS !== 'false' && - nxJson.useInferencePlugins !== false; - schema.addPlugin ??= addPluginDefault; - const projectConfig = readProjectConfiguration(tree, schema.project); const { targets, root: projectRoot } = projectConfig; @@ -77,6 +71,12 @@ export async function viteConfigurationGeneratorInternal( tasks.push(initTask); tasks.push(ensureDependencies(tree, schema)); + const nxJson = readNxJson(tree); + const addPluginDefault = + process.env.NX_ADD_PLUGINS !== 'false' && + nxJson.useInferencePlugins !== false; + schema.addPlugin ??= addPluginDefault; + const hasPlugin = nxJson.plugins?.some((p) => typeof p === 'string' ? p === '@nx/vite/plugin' From 81df8485a1be38ff9e706d25ffb5518f9d37b5ed Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Tue, 12 Mar 2024 19:33:27 +0000 Subject: [PATCH 7/8] fix(module-federation): ensure targetDefaults for module federation executors are setup correctly (#22282) --- packages/angular/migrations.json | 6 + .../generators/utils/add-mf-env-to-inputs.ts | 5 +- .../add-mf-env-var-to-target-defaults.spec.ts | 2 + .../fix-target-defaults-inputs.spec.ts | 127 ++++++++++++++++++ .../fix-target-defaults-inputs.ts | 75 +++++++++++ packages/react/migrations.json | 6 + .../add-mf-env-var-to-target-defaults.spec.ts | 2 + .../fix-target-defaults-inputs.spec.ts | 127 ++++++++++++++++++ .../fix-target-defaults-inputs.ts | 75 +++++++++++ .../react/src/utils/add-mf-env-to-inputs.ts | 5 +- 10 files changed, 428 insertions(+), 2 deletions(-) create mode 100644 packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts create mode 100644 packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts create mode 100644 packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts create mode 100644 packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts diff --git a/packages/angular/migrations.json b/packages/angular/migrations.json index c6f295f5f6579..ab21ab71b1344 100644 --- a/packages/angular/migrations.json +++ b/packages/angular/migrations.json @@ -371,6 +371,12 @@ }, "description": "Update the @angular/cli package version to ~17.2.0.", "factory": "./src/migrations/update-18-1-0/update-angular-cli" + }, + "fix-target-defaults-for-webpack-browser": { + "cli": "nx", + "version": "18.1.1-beta.0", + "description": "Ensure targetDefaults inputs for task hashing when '@nx/angular:webpack-browser' is used are correct for Module Federation.", + "factory": "./src/migrations/update-18-1-1/fix-target-defaults-inputs" } }, "packageJsonUpdates": { diff --git a/packages/angular/src/generators/utils/add-mf-env-to-inputs.ts b/packages/angular/src/generators/utils/add-mf-env-to-inputs.ts index a989ca5c679de..ba8928796ac8e 100644 --- a/packages/angular/src/generators/utils/add-mf-env-to-inputs.ts +++ b/packages/angular/src/generators/utils/add-mf-env-to-inputs.ts @@ -7,7 +7,10 @@ export function addMfEnvToTargetDefaultInputs(tree: Tree) { nxJson.targetDefaults ??= {}; nxJson.targetDefaults[webpackExecutor] ??= {}; - nxJson.targetDefaults[webpackExecutor].inputs ??= []; + nxJson.targetDefaults[webpackExecutor].inputs ??= [ + 'production', + '^production', + ]; let mfEnvVarExists = false; for (const input of nxJson.targetDefaults[webpackExecutor].inputs) { diff --git a/packages/angular/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts b/packages/angular/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts index 78eecc67326dd..36e2ed5420537 100644 --- a/packages/angular/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts +++ b/packages/angular/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts @@ -26,6 +26,8 @@ describe('addMfEnvVarToTargetDefaults', () => { { "@nx/angular:webpack-browser": { "inputs": [ + "production", + "^production", { "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", }, diff --git a/packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts b/packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts new file mode 100644 index 0000000000000..a9b3f77bbae1d --- /dev/null +++ b/packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts @@ -0,0 +1,127 @@ +import fixTargetDefaultInputs from './fix-target-defaults-inputs'; +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; +import { addProjectConfiguration, readNxJson, updateNxJson } from '@nx/devkit'; + +describe('fixTargetDefaultsInputs', () => { + it('should add the executor and input when it does not exist', async () => { + // ARRANGE + const tree = createTreeWithEmptyWorkspace(); + addProjectConfiguration(tree, 'test', { + root: '', + targets: { + build: { + executor: '@nx/angular:webpack-browser', + }, + }, + }); + + tree.write('module-federation.config.ts', ''); + + // ACT + await fixTargetDefaultInputs(tree); + + // ASSERT + const nxJson = readNxJson(tree); + expect(nxJson.targetDefaults).toMatchInlineSnapshot(` + { + "@nx/angular:webpack-browser": { + "inputs": [ + "production", + "^production", + { + "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", + }, + ], + }, + "build": { + "cache": true, + }, + "lint": { + "cache": true, + }, + } + `); + }); + + it('should not add the executor and input when no project uses it', async () => { + // ARRANGE + const tree = createTreeWithEmptyWorkspace(); + addProjectConfiguration(tree, 'test', { + root: '', + targets: { + build: { + executor: '@nx/angular:module-federation-dev-server', + }, + }, + }); + + // ACT + await fixTargetDefaultInputs(tree); + + // ASSERT + const nxJson = readNxJson(tree); + expect(nxJson.targetDefaults).toMatchInlineSnapshot(` + { + "build": { + "cache": true, + }, + "lint": { + "cache": true, + }, + } + `); + }); + + it('should update the executor and input target default when it already exists', async () => { + // ARRANGE + const tree = createTreeWithEmptyWorkspace(); + addProjectConfiguration(tree, 'test', { + root: '', + targets: { + build: { + executor: '@nx/angular:webpack-browser', + }, + }, + }); + tree.write('module-federation.config.ts', ''); + + let nxJson = readNxJson(tree); + nxJson = { + ...nxJson, + targetDefaults: { + ...nxJson.targetDefaults, + ['@nx/angular:webpack-browser']: { + inputs: ['^build'], + }, + }, + }; + + updateNxJson(tree, nxJson); + + // ACT + await fixTargetDefaultInputs(tree); + + // ASSERT + nxJson = readNxJson(tree); + expect(nxJson.targetDefaults).toMatchInlineSnapshot(` + { + "@nx/angular:webpack-browser": { + "inputs": [ + "^build", + "production", + "^production", + { + "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", + }, + ], + }, + "build": { + "cache": true, + }, + "lint": { + "cache": true, + }, + } + `); + }); +}); diff --git a/packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts b/packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts new file mode 100644 index 0000000000000..19fc17b1117d7 --- /dev/null +++ b/packages/angular/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts @@ -0,0 +1,75 @@ +import { + getProjects, + type Tree, + type ProjectConfiguration, + joinPathFragments, + formatFiles, + readNxJson, + updateNxJson, +} from '@nx/devkit'; + +export default async function (tree: Tree) { + if (!isWebpackBrowserUsed(tree)) { + return; + } + ensureTargetDefaultsContainProductionInputs(tree); + + await formatFiles(tree); +} + +function ensureTargetDefaultsContainProductionInputs(tree: Tree) { + const nxJson = readNxJson(tree); + const webpackExecutor = '@nx/angular:webpack-browser'; + const mfEnvVar = 'NX_MF_DEV_SERVER_STATIC_REMOTES'; + + nxJson.targetDefaults[webpackExecutor] ??= {}; + + nxJson.targetDefaults[webpackExecutor].inputs ??= [ + 'production', + '^production', + { env: mfEnvVar }, + ]; + + if (!nxJson.targetDefaults[webpackExecutor].inputs.includes('production')) { + nxJson.targetDefaults[webpackExecutor].inputs.push('production'); + } + + if (!nxJson.targetDefaults[webpackExecutor].inputs.includes('^production')) { + nxJson.targetDefaults[webpackExecutor].inputs.push('^production'); + } + + let mfEnvVarExists = false; + for (const input of nxJson.targetDefaults[webpackExecutor].inputs) { + if (typeof input === 'object' && input['env'] === mfEnvVar) { + mfEnvVarExists = true; + break; + } + } + + if (!mfEnvVarExists) { + nxJson.targetDefaults[webpackExecutor].inputs.push({ env: mfEnvVar }); + } + + updateNxJson(tree, nxJson); +} + +function isWebpackBrowserUsed(tree: Tree) { + const projects = getProjects(tree); + for (const project of projects.values()) { + const targets = project.targets || {}; + for (const [_, target] of Object.entries(targets)) { + if ( + target.executor === '@nx/angular:webpack-browser' && + (tree.exists( + joinPathFragments(project.root, 'module-federation.config.ts') + ) || + tree.exists( + joinPathFragments(project.root, 'module-federation.config.js') + )) + ) { + return true; + } + } + } + return false; +} diff --git a/packages/react/migrations.json b/packages/react/migrations.json index 7cc691b277542..16efe10c5b4fe 100644 --- a/packages/react/migrations.json +++ b/packages/react/migrations.json @@ -53,6 +53,12 @@ "version": "18.0.0-beta.0", "description": "Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/webpack:webpack' is used for Module Federation.", "factory": "./src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults" + }, + "fix-target-defaults-for-webpack": { + "cli": "nx", + "version": "18.1.1-beta.0", + "description": "Ensure targetDefaults inputs for task hashing when '@nx/webpack:webpack' is used are correct for Module Federation.", + "factory": "./src/migrations/update-18-1-1/fix-target-defaults-inputs" } }, "packageJsonUpdates": { diff --git a/packages/react/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts b/packages/react/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts index bd594493e69c8..8bc815a804645 100644 --- a/packages/react/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts +++ b/packages/react/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.spec.ts @@ -25,6 +25,8 @@ describe('addMfEnvVarToTargetDefaults', () => { { "@nx/webpack:webpack": { "inputs": [ + "production", + "^production", { "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", }, diff --git a/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts b/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts new file mode 100644 index 0000000000000..85e1b3042554d --- /dev/null +++ b/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts @@ -0,0 +1,127 @@ +import fixTargetDefaultsInputs from './fix-target-defaults-inputs'; +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; +import { addProjectConfiguration, readNxJson, updateNxJson } from '@nx/devkit'; + +describe('fixTargetDefaultsInputs', () => { + it('should add the executor and input when it does not exist', async () => { + // ARRANGE + const tree = createTreeWithEmptyWorkspace(); + addProjectConfiguration(tree, 'test', { + root: '', + targets: { + build: { + executor: '@nx/webpack:webpack', + }, + }, + }); + tree.write('module-federation.config.ts', ''); + + // ACT + await fixTargetDefaultsInputs(tree); + + // ASSERT + const nxJson = readNxJson(tree); + expect(nxJson.targetDefaults).toMatchInlineSnapshot(` + { + "@nx/webpack:webpack": { + "inputs": [ + "production", + "^production", + { + "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", + }, + ], + }, + "build": { + "cache": true, + }, + "lint": { + "cache": true, + }, + } + `); + }); + + it('should not add the executor and input when no project uses it', async () => { + // ARRANGE + const tree = createTreeWithEmptyWorkspace(); + addProjectConfiguration(tree, 'test', { + root: '', + targets: { + build: { + executor: '@nx/angular:module-federation-dev-server', + }, + }, + }); + + // ACT + await fixTargetDefaultsInputs(tree); + + // ASSERT + const nxJson = readNxJson(tree); + expect(nxJson.targetDefaults).toMatchInlineSnapshot(` + { + "build": { + "cache": true, + }, + "lint": { + "cache": true, + }, + } + `); + }); + + it('should update the executor and input target default when it already exists', async () => { + // ARRANGE + const tree = createTreeWithEmptyWorkspace(); + addProjectConfiguration(tree, 'test', { + root: '', + targets: { + build: { + executor: '@nx/webpack:webpack', + }, + }, + }); + + tree.write('module-federation.config.ts', ''); + + let nxJson = readNxJson(tree); + nxJson = { + ...nxJson, + targetDefaults: { + ...nxJson.targetDefaults, + ['@nx/webpack:webpack']: { + inputs: ['^build'], + }, + }, + }; + + updateNxJson(tree, nxJson); + + // ACT + await fixTargetDefaultsInputs(tree); + + // ASSERT + nxJson = readNxJson(tree); + expect(nxJson.targetDefaults).toMatchInlineSnapshot(` + { + "@nx/webpack:webpack": { + "inputs": [ + "^build", + "production", + "^production", + { + "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", + }, + ], + }, + "build": { + "cache": true, + }, + "lint": { + "cache": true, + }, + } + `); + }); +}); diff --git a/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts b/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts new file mode 100644 index 0000000000000..ee2701bd71878 --- /dev/null +++ b/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts @@ -0,0 +1,75 @@ +import { + getProjects, + type Tree, + type ProjectConfiguration, + joinPathFragments, + formatFiles, + readNxJson, + updateNxJson, +} from '@nx/devkit'; + +export default async function (tree: Tree) { + if (!hasModuleFederationProject(tree)) { + return; + } + ensureTargetDefaultsContainProductionInputs(tree); + + await formatFiles(tree); +} + +function ensureTargetDefaultsContainProductionInputs(tree: Tree) { + const nxJson = readNxJson(tree); + const webpackExecutor = '@nx/webpack:webpack'; + const mfEnvVar = 'NX_MF_DEV_SERVER_STATIC_REMOTES'; + + nxJson.targetDefaults[webpackExecutor] ??= {}; + + nxJson.targetDefaults[webpackExecutor].inputs ??= [ + 'production', + '^production', + { env: mfEnvVar }, + ]; + + if (!nxJson.targetDefaults[webpackExecutor].inputs.includes('production')) { + nxJson.targetDefaults[webpackExecutor].inputs.push('production'); + } + + if (!nxJson.targetDefaults[webpackExecutor].inputs.includes('^production')) { + nxJson.targetDefaults[webpackExecutor].inputs.push('^production'); + } + + let mfEnvVarExists = false; + for (const input of nxJson.targetDefaults[webpackExecutor].inputs) { + if (typeof input === 'object' && input['env'] === mfEnvVar) { + mfEnvVarExists = true; + break; + } + } + + if (!mfEnvVarExists) { + nxJson.targetDefaults[webpackExecutor].inputs.push({ env: mfEnvVar }); + } + + updateNxJson(tree, nxJson); +} + +function hasModuleFederationProject(tree: Tree) { + const projects = getProjects(tree); + for (const project of projects.values()) { + const targets = project.targets || {}; + for (const [_, target] of Object.entries(targets)) { + if ( + target.executor === '@nx/webpack:webpack' && + (tree.exists( + joinPathFragments(project.root, 'module-federation.config.ts') + ) || + tree.exists( + joinPathFragments(project.root, 'module-federation.config.js') + )) + ) { + return true; + } + } + } + return false; +} diff --git a/packages/react/src/utils/add-mf-env-to-inputs.ts b/packages/react/src/utils/add-mf-env-to-inputs.ts index 6786fb628289f..0a899eb95317d 100644 --- a/packages/react/src/utils/add-mf-env-to-inputs.ts +++ b/packages/react/src/utils/add-mf-env-to-inputs.ts @@ -7,7 +7,10 @@ export function addMfEnvToTargetDefaultInputs(tree: Tree) { nxJson.targetDefaults ??= {}; nxJson.targetDefaults[webpackExecutor] ??= {}; - nxJson.targetDefaults[webpackExecutor].inputs ??= []; + nxJson.targetDefaults[webpackExecutor].inputs ??= [ + 'production', + '^production', + ]; let mfEnvVarExists = false; for (const input of nxJson.targetDefaults[webpackExecutor].inputs) { From 73a8091b9353538085c29ff7082514d138f1c72c Mon Sep 17 00:00:00 2001 From: Nicholas Cunningham Date: Wed, 13 Mar 2024 03:34:55 -0600 Subject: [PATCH 8/8] docs(nx-dev): Update internal links to use Link tag (#22287) --- nx-dev/feature-ai/src/lib/error-message.tsx | 5 +++-- .../src/lib/related-documents-section.tsx | 5 +++-- .../src/lib/content.tsx | 8 ++++---- .../src/lib/ui/headings.tsx | 13 +++++++------ .../src/lib/ui/top.layout.tsx | 6 ++++-- nx-dev/nx-dev/pages/_app.tsx | 5 +++-- nx-dev/nx-dev/pages/changelog.tsx | 5 +++-- nx-dev/nx-dev/pages/nx-api/index.tsx | 4 ++-- nx-dev/ui-common/src/lib/documentation-header.tsx | 4 ++-- nx-dev/ui-common/src/lib/header.tsx | 4 ++-- nx-dev/ui-common/src/lib/plugin-card.tsx | 5 +++-- nx-dev/ui-community/src/lib/connect-with-us.tsx | 5 +++-- nx-dev/ui-conference/src/lib/launch-week/intro.tsx | 6 ++++-- nx-dev/ui-home/src/lib/hero.tsx | 10 +++------- .../src/lib/migrations-and-code-generation.tsx | 4 ++-- nx-dev/ui-home/src/lib/nx-with-ci.tsx | 5 +++-- .../ui-markdoc/src/lib/nodes/heading.component.tsx | 5 +++-- nx-dev/ui-markdoc/src/lib/tags/cards.component.tsx | 5 +++-- nx-dev/ui-markdoc/src/lib/tags/pill.component.tsx | 5 +++-- 19 files changed, 60 insertions(+), 49 deletions(-) diff --git a/nx-dev/feature-ai/src/lib/error-message.tsx b/nx-dev/feature-ai/src/lib/error-message.tsx index afe3d075d0383..41d86c5cd87fc 100644 --- a/nx-dev/feature-ai/src/lib/error-message.tsx +++ b/nx-dev/feature-ai/src/lib/error-message.tsx @@ -3,6 +3,7 @@ import { ExclamationTriangleIcon, XCircleIcon, } from '@heroicons/react/24/outline'; +import Link from 'next/link'; function ErrorMessage({ error }: { error: any }): JSX.Element { try { @@ -28,12 +29,12 @@ function ErrorMessage({ error }: { error: any }): JSX.Element {
Sorry, I don't know how to help with that. You can visit the{' '} - Nx documentation - {' '} + {' '} for more info.
diff --git a/nx-dev/feature-doc-viewer/src/lib/related-documents-section.tsx b/nx-dev/feature-doc-viewer/src/lib/related-documents-section.tsx index 7a4e9a1c00f36..cdeca25df1eb6 100644 --- a/nx-dev/feature-doc-viewer/src/lib/related-documents-section.tsx +++ b/nx-dev/feature-doc-viewer/src/lib/related-documents-section.tsx @@ -7,6 +7,7 @@ import { MagnifyingGlassIcon, InformationCircleIcon, } from '@heroicons/react/24/outline'; +import Link from 'next/link'; export function RelatedDocumentsSection({ relatedCategories, @@ -50,13 +51,13 @@ function CategoryBox({ category }: { category: RelatedDocumentsCategory }) { key={d.id} className="flex justify-between items-center py-1 pl-0 text-sm" > - {d.name} - + ))} diff --git a/nx-dev/feature-package-schema-viewer/src/lib/content.tsx b/nx-dev/feature-package-schema-viewer/src/lib/content.tsx index fd54218f54498..afa43da62ccbb 100644 --- a/nx-dev/feature-package-schema-viewer/src/lib/content.tsx +++ b/nx-dev/feature-package-schema-viewer/src/lib/content.tsx @@ -125,13 +125,13 @@ export function Content({ > {schemaViewModel.type} - Rescope @nrwl to @nx - + {schemaViewModel.deprecated && ( diff --git a/nx-dev/feature-package-schema-viewer/src/lib/ui/headings.tsx b/nx-dev/feature-package-schema-viewer/src/lib/ui/headings.tsx index 76540313a6651..c59f25475f1d3 100644 --- a/nx-dev/feature-package-schema-viewer/src/lib/ui/headings.tsx +++ b/nx-dev/feature-package-schema-viewer/src/lib/ui/headings.tsx @@ -1,5 +1,6 @@ import { LinkIcon } from '@heroicons/react/24/solid'; import { slugify } from '../slugify.utils'; +import Link from 'next/link'; export const Heading1 = ({ title }: { title: string }) => (

( className="group mb-5 text-4xl font-extrabold tracking-tight text-slate-900 dark:text-slate-100" > {title} - +

); @@ -22,12 +23,12 @@ export const Heading2 = ({ title }: { title: string }) => ( className="group mb-5 text-2xl font-bold tracking-tight text-slate-800 dark:text-slate-200" > {title} - + ); @@ -37,11 +38,11 @@ export const Heading3 = ({ title }: { title: string }) => ( className="group text-xl font-semibold tracking-tight text-slate-700 dark:text-slate-300" > {title} - + ); diff --git a/nx-dev/feature-package-schema-viewer/src/lib/ui/top.layout.tsx b/nx-dev/feature-package-schema-viewer/src/lib/ui/top.layout.tsx index 7d5d5746bd08b..f990fd88f5156 100644 --- a/nx-dev/feature-package-schema-viewer/src/lib/ui/top.layout.tsx +++ b/nx-dev/feature-package-schema-viewer/src/lib/ui/top.layout.tsx @@ -1,3 +1,5 @@ +import Link from 'next/link'; + export function TopSchemaLayout({ name, url, @@ -15,13 +17,13 @@ export function TopSchemaLayout({ > Package - Rescope @nrwl to @nx - +
- Skip to content - + {/* Global Site Tag (gtag.js) - Google Analytics */}