Compare commits

..

3 Commits

Author SHA1 Message Date
Nicholas Cunningham 22684215ad fix(react): add missing offset variable for generateFiles 2025-07-23 14:42:16 -06:00
Nicholas Cunningham 05949b1f8f fix(nextjs): use files array instead of types for Next.js typings 2025-07-23 13:45:30 -06:00
Nicholas Cunningham 635d15f50b fix(react): use files array instead of types for CSS module typings
When using pnpm with its strict symlink structure, TypeScript fails to resolve
the @nx/react/typings/cssmodule.d.ts file when it's specified in the types array.
This is because pnpm doesn't hoist dependencies in the same way as npm/yarn.

By moving these type definitions to the files array  we ensure they are always included regardless of the package manager's module resolution

Fixes: #29945
2025-07-23 13:28:21 -06:00
2010 changed files with 194228 additions and 170354 deletions
+1 -2
View File
@@ -1,8 +1,7 @@
{
"mcpServers": {
"nx-mcp": {
"command": "npx",
"args": ["-y", "nx-mcp@latest"]
"url": "http://localhost:9470/mcp"
}
}
}
+2 -1
View File
@@ -3,8 +3,9 @@
#
# Linux start script should use lf
/gradlew text eol=lf
# These are Windows script files and should use crlf
*.bat text eol=crlf
# Exclude files from Graphite reviews
docs/generated/* linguist-generated=true
*.gif,*.mp4,*.webp,*.avif,*.png,*.jpeg,*.jpg,*.tiff filter=lfs diff=lfs merge=lfs -text
+2 -6
View File
@@ -80,9 +80,7 @@ jobs:
run: brew install python-setuptools
- name: Install packages
run: |
pnpm install --frozen-lockfile
pnpm playwright install --with-deps
run: pnpm install --frozen-lockfile
- name: Homebrew cache directory path
if: ${{ matrix.os == 'macos-latest' }}
@@ -184,9 +182,7 @@ jobs:
bun-version: latest
- name: Install packages
run: |
pnpm install --frozen-lockfile
pnpm playwright install --with-deps
run: pnpm install --frozen-lockfile
- name: Cleanup
if: ${{ matrix.os == 'ubuntu-latest' }}
@@ -43,7 +43,6 @@ const matrixData: MatrixData = {
],
projects: [
{ name: 'e2e-cypress', codeowners: 'S04T16BTJJY', is_golden: true },
{ name: 'e2e-docker', codeowners: 'S04SJ6HHP0X', is_golden: true },
{ name: 'e2e-detox', codeowners: 'S04TNCNJG5N' , is_golden: true},
{ name: 'e2e-esbuild', codeowners: 'S04SJ6HHP0X' , is_golden: true},
{ name: 'e2e-gradle', codeowners: 'S04TNCNJG5N' , is_golden: true},
+5 -3
View File
@@ -348,8 +348,9 @@ jobs:
with:
name: bindings-${{ matrix.settings.target }}
path: |
packages/nx/src/native/*.node
packages/nx/src/native/*.wasm
packages/**/*.node
packages/**/*.wasm
!packages/*/node_modules/**
if-no-files-found: error
build-freebsd:
@@ -415,7 +416,8 @@ jobs:
with:
name: bindings-freebsd
path: |
packages/nx/src/native/*.node
packages/**/*.node
!packages/*/node_modules/**
if-no-files-found: error
publish:
-1
View File
@@ -108,4 +108,3 @@ tasks/
# Upstream docs local configuration (machine-specific)
.upstreamdocs.local.json
astro-docs/.netlify
-1
View File
@@ -1 +0,0 @@
node ./scripts/commit-lint.js "$1"
+1 -11
View File
@@ -1,12 +1,2 @@
# Skip if this is a worktree creation (previous ref is null)
if [ "$1" = "0000000000000000000000000000000000000000" ]; then
exit 0
fi
# Skip if this is a file checkout (not branch switch) - $3 would be 0
if [ "$3" = "0" ]; then
exit 0
fi
changedFiles="$(git diff-tree -r --name-only --no-commit-id $1 $2)"
node ./scripts/notify-lockfile-changes.js $changedFiles
node ./scripts/notify-lockfile-changes.js $changedFiles
+2 -2
View File
@@ -1,6 +1,6 @@
launch-templates:
linux-large:
resource-class: 'docker_linux_amd64/large'
linux-medium:
resource-class: 'docker_linux_amd64/medium+'
image: 'us-east1-docker.pkg.dev/nxcloudoperations/nx-cloud/nx-agents-base-images:ubuntu22.04-node20.19-v1'
env:
GIT_AUTHOR_EMAIL: test@test.com
+6 -25
View File
@@ -1,25 +1,14 @@
distribute-on:
default: auto linux-large, 1 linux-extra-large
default: auto linux-medium, 1 linux-extra-large
assignment-rules:
# e2e-release tests must run sequentially due to shared git state and publishing operations
- projects:
- e2e-release
targets:
- e2e-ci**
run-on:
- agent: linux-large
parallelism: 1
# All other e2e tests can run in parallel
- targets:
- e2e-ci**
run-on:
- agent: linux-large
parallelism: 2
- agent: linux-medium
parallelism: 1
- agent: linux-extra-large
parallelism: 3
parallelism: 1
# These projects should not need to be isolated.
- projects:
- nx-dev
targets:
@@ -27,25 +16,17 @@ assignment-rules:
run-on:
- agent: linux-extra-large
parallelism: 1
- projects:
- angular
- react
targets:
- test
run-on:
- agent: linux-extra-large
parallelism: 1
- targets:
- lint
run-on:
- agent: linux-large
- agent: linux-medium
parallelism: 6
- targets:
- '*'
run-on:
- agent: linux-large
- agent: linux-medium
parallelism: 3
- agent: linux-extra-large
parallelism: 3
+6 -10
View File
@@ -9,10 +9,9 @@ pnpm-lock.yaml @nrwl/nx-core-reviewers
rust-toolchain.toml @nrwl/nx-native-reviewers
# Docs Site + Graph
/astro-docs @nrwl/nx-docs-reviewers
/docs @nrwl/nx-docs-reviewers
/docs/nx-cloud @StalkAltan @rarmatei @nixallover @nrwl/nx-docs-reviewers
/graph/** @philipjfulcher @FrozenPandaz @bcabanes @MaxKless @Coly010 @jaysoo
/graph/** @philipjfulcher @FrozenPandaz @bcabanes @MaxKless @xiongemi
/images @nrwl/nx-docs-reviewers
/nx-dev/** @nrwl/nx-docs-reviewers
/typedoc-theme @nrwl/nx-docs-reviewers
@@ -138,9 +137,6 @@ rust-toolchain.toml @nrwl/nx-native-reviewers
/packages/storybook/** @nrwl/nx-storybook-reviewers
/e2e/storybook/** @nrwl/nx-storybook-reviewers
# Docker
/packages/docker/** @nrwl/nx-core-reviewers @Coly010
## Devkit
/docs/generated/devkit/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/devkit/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers
@@ -149,8 +145,8 @@ rust-toolchain.toml @nrwl/nx-native-reviewers
/packages/devkit/public-api.ts @FrozenPandaz @vsavkin
# Gradle
/packages/gradle/** @FrozenPandaz @MaxKless
/e2e/gradle/** @FrozenPandaz @MaxKless
/packages/gradle/** @FrozenPandaz @MaxKless @xiongemi
/e2e/gradle/** @FrozenPandaz @MaxKless @xiongemi
# Nx-Plugin
/docs/generated/packages/plugin/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers
@@ -178,10 +174,10 @@ rust-toolchain.toml @nrwl/nx-native-reviewers
# Misc
/e2e/lerna-smoke-tests/** @vsavkin @JamesHenry
/e2e/utils/** @meeroslav @nrwl/nx-testing-tools-reviewers @vsavkin
/e2e/utils/** @meeroslav @nrwl/nx-testing-tools-reviewers @vsavkin @mandarini
/community @nrwl/nx-docs-reviewers
/CONTRIBUTING.md @FrozenPandaz
/CODE_OF_CONDUCT.md @FrozenPandaz
/CONTRIBUTING.md @FrozenPandaz @isaacplmann
/CODE_OF_CONDUCT.md @FrozenPandaz @isaacplmann
/CODEOWNERS @FrozenPandaz @AgentEnder
/packages/nx/src/nx-cloud/utilities/url-shorten.ts @MaxKless
-1
View File
@@ -344,7 +344,6 @@ The scope must be one of the following:
- express - anything Express specific
- js - anything related to @nx/js package or general js/ts support
- linter - anything Linter specific
- module-federation - anything Nx Module Federation specific
- nest - anything Nest specific
- nextjs - anything Next specific
- node - anything Node specific
-24
View File
@@ -1,24 +0,0 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# Local Netlify folder
.netlify
-54
View File
@@ -1,54 +0,0 @@
# Starlight Starter Kit: Basics
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
```
pnpm create astro@latest -- --template starlight
```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## 🚀 Project Structure
Inside of your Astro + Starlight project, you'll see the following folders and files:
```
.
├── public/
├── src/
│ ├── assets/
│ ├── content/
│ │ ├── docs/
│ └── content.config.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json
```
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
Static assets, like favicons, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :--------------------- | :----------------------------------------------- |
| `pnpm install` | Installs dependencies |
| `pnpm dev` | Starts local dev server at `localhost:4321` |
| `pnpm build` | Build your production site to `./dist/` |
| `pnpm preview` | Preview your build locally, before deploying |
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` |
| `pnpm astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Check out [Starlights docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
-70
View File
@@ -1,70 +0,0 @@
// @ts-check
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import netlify from '@astrojs/netlify';
import linkValidator from 'starlight-links-validator';
import react from '@astrojs/react';
import markdoc from '@astrojs/markdoc';
import tailwindcss from '@tailwindcss/vite';
import { sidebar } from './sidebar.mts';
// https://astro.build/config
export default defineConfig({
vite: { plugins: [tailwindcss()] },
site: 'https://docs.nx.dev',
adapter: netlify(),
integrations: [
markdoc(),
starlight({
title: 'Nx',
tagline:
'An AI-first build platform that connects everything from your editor to CI. Helping you deliver fast, without breaking things.',
customCss: ['./src/styles/global.css'],
favicon: '/favicon.svg',
logo: {
light: './src/assets/nx/Nx-dark.png',
dark: './src/assets/nx/Nx-light.png',
replacesTitle: true,
},
plugins: [
// linkValidator(),
],
routeMiddleware: ['./src/plugins/banner.middleware.ts'],
markdown: {
// this breaks the renderMarkdown function in the plugin loader due to starlight path normalization
// as to _why_ it has to normalize a path?
// idk just working around the issue for now but we'll want to have linked headers so will need to fix
headingLinks: false,
},
social: [
{ icon: 'github', label: 'GitHub', href: 'https://github.com/nrwl/nx' },
{
icon: 'youtube',
label: 'YouTube',
href: 'https://www.youtube.com/@NxDevtools?utm_source=nx.dev',
},
{
icon: 'x.com',
label: 'X',
href: 'https://x.com/NxDevTools?utm_source=nx.dev',
},
{
icon: 'discord',
label: 'Discord',
href: 'https://go.nx.dev/community',
},
],
editLink: {
baseUrl: 'https://github.com/nrwl/nx/tree/main/',
},
sidebar,
components: {
Footer: './src/components/layout/Footer.astro',
PageFrame: './src/components/layout/PageFrame.astro',
Sidebar: './src/components/layout/Sidebar.astro',
TwoColumnContent: './src/components/layout/TwoColumnContent.astro',
},
}),
react(),
],
});
-378
View File
@@ -1,378 +0,0 @@
import { defineMarkdocConfig, component } from '@astrojs/markdoc/config';
import starlightMarkdoc from '@astrojs/starlight-markdoc';
export default defineMarkdocConfig({
extends: [starlightMarkdoc()],
tags: {
call_to_action: {
render: component('./src/components/markdoc/CallToAction.astro'),
attributes: {
url: {
type: 'String',
required: true,
},
title: {
type: 'String',
required: true,
},
description: {
type: 'String',
required: false,
},
icon: {
type: 'String',
required: false,
},
variant: {
type: 'String',
required: false,
default: 'default',
matches: ['default', 'gradient', 'inverted', 'gradient-alt'],
},
size: {
type: 'String',
required: false,
default: 'sm',
matches: ['sm', 'md', 'lg'],
},
},
},
callout: {
render: component('./src/components/markdoc/Callout.astro'),
children: ['paragraph', 'tag', 'list'],
attributes: {
type: {
type: 'String',
default: 'note',
matches: [
'announcement',
'caution',
'check',
'note',
'warning',
'deepdive',
],
errorLevel: 'critical',
},
title: {
type: 'String',
required: true,
},
expanded: {
type: 'Boolean',
default: false,
},
},
},
card: {
render: component('./src/components/markdoc/Card.astro'),
attributes: {
title: {
type: 'String',
required: true,
},
description: {
type: 'String',
default: '',
},
type: {
type: 'String',
default: 'documentation',
},
url: {
type: 'String',
default: '',
},
},
},
cards: {
render: component('./src/components/markdoc/Cards.astro'),
attributes: {
cols: {
type: 'Number',
required: true,
},
smCols: {
type: 'Number',
required: true,
},
mdCols: {
type: 'Number',
required: true,
},
lgCols: {
type: 'Number',
required: true,
},
moreLink: {
type: 'String',
required: false,
},
},
},
course_video: {
render: component('./src/components/markdoc/CourseVideo.astro'),
attributes: {
src: {
type: 'String',
required: true,
},
courseTitle: {
type: 'String',
required: true,
},
courseUrl: {
type: 'String',
required: true,
},
},
},
github_repository: {
render: component('./src/components/markdoc/GithubRepository.astro'),
attributes: {
url: {
type: 'String',
required: true,
},
title: {
type: 'String',
required: false,
},
},
},
graph: {
render: component('./src/components/markdoc/Graph.astro'),
children: [],
attributes: {
jsonFile: {
type: 'String',
},
title: {
type: 'String',
},
type: {
type: 'String',
matches: ['project', 'task'],
default: 'project',
},
height: {
type: 'String',
required: true,
},
},
},
iframe: {
render: component('./src/components/markdoc/Iframe.astro'),
attributes: {
src: {
type: 'String',
required: true,
},
title: {
type: 'String',
required: true,
},
width: {
type: 'String',
default: '50%',
},
},
},
install_nx_console: {
render: component('./src/components/markdoc/InstallNxConsole.astro'),
attributes: {},
},
link_card: {
render: component('./src/components/markdoc/LinkCard.astro'),
attributes: {
title: {
type: 'String',
required: true,
},
type: {
type: 'String',
required: true,
},
icon: {
type: 'String',
required: false,
},
url: {
type: 'String',
default: '',
},
appearance: {
type: 'String',
default: 'default',
},
},
},
metrics: {
render: component('./src/components/markdoc/Metrics.astro'),
attributes: {
metrics: {
type: 'Array',
required: true,
},
},
},
persona: {
render: component('./src/components/markdoc/Persona.astro'),
children: ['paragraph', 'tag', 'list'],
attributes: {
title: {
type: 'String',
},
type: {
type: 'String',
default: 'integrated',
required: true,
matches: [
'cache',
'distribute',
'javascript',
'lerna',
'react',
'angular',
'integrated',
],
errorLevel: 'critical',
},
url: {
type: 'String',
required: true,
errorLevel: 'critical',
},
},
},
personas: {
render: component('./src/components/markdoc/Personas.astro'),
},
pill: {
render: component('./src/components/markdoc/Pill.astro'),
attributes: {
url: {
type: 'String',
default: '',
},
},
},
project_details: {
render: component('./src/components/markdoc/ProjectDetails.astro'),
children: [],
attributes: {
jsonFile: {
type: 'String',
},
title: {
type: 'String',
},
height: {
type: 'String',
},
expandedTargets: {
type: 'Array',
},
},
},
stackblitz_button: {
render: component('./src/components/markdoc/StackblitzButton.astro'),
attributes: {
url: {
type: 'String',
required: true,
},
title: {
type: 'String',
required: false,
},
},
},
testimonial: {
render: component('./src/components/markdoc/Testimonial.astro'),
children: ['paragraph'],
attributes: {
name: {
type: 'String',
},
title: {
type: 'String',
},
image: {
type: 'String',
},
},
},
video_link: {
render: component('./src/components/markdoc/VideoLink.astro'),
attributes: {
link: {
type: 'String',
required: true,
},
text: {
type: 'String',
required: false,
},
},
},
video_player: {
render: component('./src/components/markdoc/VideoPlayer.astro'),
attributes: {
src: {
type: 'String',
required: true,
},
alt: {
type: 'String',
required: false,
},
link: {
type: 'String',
required: false,
},
showDescription: {
type: 'Boolean',
required: false,
default: false,
},
showControls: {
type: 'Boolean',
required: false,
default: false,
},
autoPlay: {
type: 'Boolean',
required: false,
default: false,
},
loop: {
type: 'Boolean',
required: false,
default: false,
},
},
},
youtube: {
render: component('./src/components/markdoc/Youtube.astro'),
attributes: {
src: {
type: 'String',
required: true,
},
title: {
type: 'String',
required: true,
},
width: {
type: 'String',
default: '100%',
},
caption: {
type: 'String',
required: false,
},
},
},
},
});
-20
View File
@@ -1,20 +0,0 @@
{
"name": "astro-docs",
"version": "0.0.1",
"private": true,
"dependencies": {
"@astrojs/check": "^0.7.0",
"@astrojs/markdoc": "^0.15.0",
"@astrojs/netlify": "^6.4.0",
"@astrojs/react": "^4.3.0",
"@astrojs/starlight": "0.34.6",
"@astrojs/starlight-markdoc": "^0.4.0",
"@astrojs/starlight-tailwind": "^4.0.1",
"@nx/nx-dev-ui-common": "workspace:*",
"@nx/nx-dev-ui-icons": "workspace:*",
"@nx/nx-dev-ui-markdoc": "workspace:*",
"@tailwindcss/vite": "^4.1.11",
"astro": "^5.10.1",
"tailwindcss": "4.1.11"
}
}
-37
View File
@@ -1,37 +0,0 @@
{
"name": "astro-docs",
"targets": {
"comment": "package.json#scripts runs in the project root directory with astro assumes is where the node_modules is. which fails. so run the scripts in project.json#targets with --root command instead",
"serve": {
"continuous": true,
"dependsOn": [
{
"projects": ["devkit", "create-nx-workspace"],
"target": "build"
}
],
"command": "astro dev",
"options": {
"cwd": "astro-docs"
}
},
"build": {
"dependsOn": [
{
"projects": ["devkit", "create-nx-workspace"],
"target": "build"
}
],
"command": "astro build",
"options": {
"cwd": "astro-docs"
}
},
"astro": {
"command": "astro",
"options": {
"cwd": "astro-docs"
}
}
}
}
-1
View File
@@ -1 +0,0 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Nx</title><path d="M11.987 14.138l-3.132 4.923-5.193-8.427-.012 8.822H0V4.544h3.691l5.247 8.833.005-3.998 3.044 4.759zm.601-5.761c.024-.048 0-3.784.008-3.833h-3.65c.002.059-.005 3.776-.003 3.833h3.645zm5.634 4.134a2.061 2.061 0 0 0-1.969 1.336 1.963 1.963 0 0 1 2.343-.739c.396.161.917.422 1.33.283a2.1 2.1 0 0 0-1.704-.88zm3.39 1.061c-.375-.13-.8-.277-1.109-.681-.06-.08-.116-.17-.176-.265a2.143 2.143 0 0 0-.533-.642c-.294-.216-.68-.322-1.18-.322a2.482 2.482 0 0 0-2.294 1.536 2.325 2.325 0 0 1 4.002.388.75.75 0 0 0 .836.334c.493-.105.46.36 1.203.518v-.133c-.003-.446-.246-.55-.75-.733zm2.024 1.266a.723.723 0 0 0 .347-.638c-.01-2.957-2.41-5.487-5.37-5.487a5.364 5.364 0 0 0-4.487 2.418c-.01-.026-1.522-2.39-1.538-2.418H8.943l3.463 5.423-3.379 5.32h3.54l1.54-2.366 1.568 2.366h3.541l-3.21-5.052a.7.7 0 0 1-.084-.32 2.69 2.69 0 0 1 2.69-2.691h.001c1.488 0 1.736.89 2.057 1.308.634.826 1.9.464 1.9 1.541a.707.707 0 0 0 1.066.596zm.35.133c-.173.372-.56.338-.755.639-.176.271.114.412.114.412s.337.156.538-.311c.104-.231.14-.488.103-.74z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 78 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 334 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

-1
View File
@@ -1 +0,0 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Nx</title><path d="M11.987 14.138l-3.132 4.923-5.193-8.427-.012 8.822H0V4.544h3.691l5.247 8.833.005-3.998 3.044 4.759zm.601-5.761c.024-.048 0-3.784.008-3.833h-3.65c.002.059-.005 3.776-.003 3.833h3.645zm5.634 4.134a2.061 2.061 0 0 0-1.969 1.336 1.963 1.963 0 0 1 2.343-.739c.396.161.917.422 1.33.283a2.1 2.1 0 0 0-1.704-.88zm3.39 1.061c-.375-.13-.8-.277-1.109-.681-.06-.08-.116-.17-.176-.265a2.143 2.143 0 0 0-.533-.642c-.294-.216-.68-.322-1.18-.322a2.482 2.482 0 0 0-2.294 1.536 2.325 2.325 0 0 1 4.002.388.75.75 0 0 0 .836.334c.493-.105.46.36 1.203.518v-.133c-.003-.446-.246-.55-.75-.733zm2.024 1.266a.723.723 0 0 0 .347-.638c-.01-2.957-2.41-5.487-5.37-5.487a5.364 5.364 0 0 0-4.487 2.418c-.01-.026-1.522-2.39-1.538-2.418H8.943l3.463 5.423-3.379 5.32h3.54l1.54-2.366 1.568 2.366h3.541l-3.21-5.052a.7.7 0 0 1-.084-.32 2.69 2.69 0 0 1 2.69-2.691h.001c1.488 0 1.736.89 2.057 1.308.634.826 1.9.464 1.9 1.541a.707.707 0 0 0 1.066.596zm.35.133c-.173.372-.56.338-.755.639-.176.271.114.412.114.412s.337.156.538-.311c.104-.231.14-.488.103-.74z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 68 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 112 KiB

-4
View File
@@ -1,4 +0,0 @@
User-agent: *
Allow: /
Sitemap: https://<YOUR SITE>/sitemap-index.xml
-196
View File
@@ -1,196 +0,0 @@
import type { StarlightUserConfig } from '@astrojs/starlight/types';
import { getPluginItems } from './src/plugins/utils/plugin-mappings';
export const sidebar: StarlightUserConfig['sidebar'] = [
{
label: 'Getting Started',
collapsed: false,
autogenerate: { directory: 'getting-started', collapsed: true },
},
{
label: 'Features',
collapsed: false,
autogenerate: { directory: 'features', collapsed: true },
},
{
label: 'Guides',
collapsed: true,
autogenerate: { directory: 'guides', collapsed: true },
},
{
label: 'Concepts',
collapsed: true,
autogenerate: { directory: 'concepts', collapsed: true },
},
{
label: 'Technologies',
collapsed: false,
// manually type the tech routes due to complexity of order and structure
items: [
{
label: 'TypeScript',
collapsed: true,
items: getPluginItems('js', 'typescript'),
},
{
label: 'Angular',
collapsed: true,
items: [
...getPluginItems('angular'),
// TODO: angular rspack and rsbuild are special cases
//
// label: 'Angular Rspack',
// link: '/technologies/angular/angular-rspack/',
// items: getPluginItems('angular-rspack', 'angular'),
// },
// {
// label: 'Angular Rsbuild',
// link: '/technologies/angular/angular-rsbuild/',
// items: getPluginItems('angular-rsbuild', 'angular'),
// },
],
},
{
label: 'React',
collapsed: true,
items: [
...getPluginItems('react'),
{
label: 'Next',
items: getPluginItems('next', 'react'),
},
{
label: 'Remix',
items: getPluginItems('remix', 'react'),
},
{
label: 'React Native',
items: getPluginItems('react-native', 'react'),
},
{
label: 'Expo',
items: getPluginItems('expo', 'react'),
},
],
},
{
label: 'Vue',
collapsed: true,
items: [
...getPluginItems('vue'),
{
label: 'Nuxt',
items: getPluginItems('nuxt', 'vue'),
},
],
},
{
label: 'Node.js',
collapsed: true,
items: [
...getPluginItems('node'),
{
label: 'Express',
items: getPluginItems('express', 'node'),
},
{
label: 'Nest',
items: getPluginItems('nest', 'node'),
},
],
},
{
label: 'Java',
collapsed: true,
// when we have maven this will change to not have gradle as the top docs for Java
items: getPluginItems('gradle', 'java'),
},
{
label: 'Module Federation',
collapsed: true,
items: getPluginItems('module-federation'),
},
{
label: 'ESLint',
collapsed: true,
items: [
...getPluginItems('eslint'),
{
label: 'ESLint Plugin',
items: getPluginItems('eslint-plugin', 'eslint'),
},
],
},
{
label: 'Build Tools',
collapsed: true,
items: [
{
label: 'Webpack',
items: getPluginItems('webpack', 'build-tools'),
},
{
label: 'Vite',
items: getPluginItems('vite', 'build-tools'),
},
{
label: 'Rollup',
items: getPluginItems('rollup', 'build-tools'),
},
{
label: 'ESBuild',
items: getPluginItems('esbuild', 'build-tools'),
},
{
label: 'Rspack',
items: getPluginItems('rspack', 'build-tools'),
},
{
label: 'Rsbuild',
items: getPluginItems('rsbuild', 'build-tools'),
},
],
},
{
label: 'Test Tools',
collapsed: true,
items: [
{
label: 'Cypress',
items: getPluginItems('cypress', 'test-tools'),
},
{
label: 'Jest',
items: getPluginItems('jest', 'test-tools'),
},
{
label: 'Playwright',
items: getPluginItems('playwright', 'test-tools'),
},
{
label: 'Storybook',
items: getPluginItems('storybook', 'test-tools'),
},
{
label: 'Detox',
items: getPluginItems('detox', 'test-tools'),
},
],
},
],
},
{
label: 'Enterprise',
collapsed: true,
autogenerate: { directory: 'enterprise', collapsed: true },
},
{
label: 'Reference',
collapsed: false,
autogenerate: { directory: 'references', collapsed: true },
},
{
label: 'Troubleshooting',
collapsed: false,
autogenerate: { directory: 'troubleshooting', collapsed: true },
},
];
Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 334 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 78 KiB

@@ -1,233 +0,0 @@
{
"project": {
"name": "myreactapp",
"type": "app",
"data": {
"root": "apps/myreactapp",
"targets": {
"build": {
"options": {
"cwd": "apps/myreactapp",
"command": "vite build"
},
"cache": true,
"dependsOn": ["^build"],
"inputs": [
"production",
"^production",
{
"externalDependencies": ["vite"]
}
],
"outputs": ["{workspaceRoot}/dist/apps/myreactapp"],
"executor": "nx:run-commands",
"configurations": {},
"metadata": {
"technologies": ["vite"]
}
},
"serve": {
"options": {
"cwd": "apps/myreactapp",
"command": "vite serve",
"continuous": true
},
"executor": "nx:run-commands",
"configurations": {},
"metadata": {
"technologies": ["vite"]
}
},
"preview": {
"options": {
"cwd": "apps/myreactapp",
"command": "vite preview"
},
"executor": "nx:run-commands",
"configurations": {},
"metadata": {
"technologies": ["vite"]
}
},
"serve-static": {
"executor": "@nx/web:file-server",
"options": {
"buildTarget": "build",
"continuous": true
},
"configurations": {}
},
"test": {
"options": {
"cwd": "apps/myreactapp",
"command": "vitest run"
},
"cache": true,
"inputs": [
"default",
"^production",
{
"externalDependencies": ["vitest"]
}
],
"outputs": ["{workspaceRoot}/coverage/apps/myreactapp"],
"executor": "nx:run-commands",
"configurations": {},
"metadata": {
"technologies": ["vite"]
}
},
"lint": {
"cache": true,
"options": {
"cwd": "apps/myreactapp",
"command": "eslint ."
},
"inputs": [
"default",
"{workspaceRoot}/.eslintrc.json",
"{workspaceRoot}/apps/myreactapp/.eslintrc.json",
"{workspaceRoot}/tools/eslint-rules/**/*",
{
"externalDependencies": ["eslint"]
}
],
"executor": "nx:run-commands",
"configurations": {},
"metadata": {
"technologies": ["eslint"]
}
}
},
"name": "myreactapp",
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/myreactapp/src",
"projectType": "application",
"tags": [],
"implicitDependencies": [],
"metadata": {
"technologies": ["react"]
}
}
},
"sourceMap": {
"root": ["apps/myreactapp/project.json", "nx/core/project-json"],
"targets": ["apps/myreactapp/project.json", "nx/core/project-json"],
"targets.build": ["apps/myreactapp/vite.config.ts", "@nx/vite/plugin"],
"targets.build.command": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.build.options": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.build.cache": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.build.dependsOn": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.build.inputs": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.build.outputs": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.build.options.cwd": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve": ["apps/myreactapp/vite.config.ts", "@nx/vite/plugin"],
"targets.serve.command": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve.options": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve.options.cwd": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.preview": ["apps/myreactapp/vite.config.ts", "@nx/vite/plugin"],
"targets.preview.command": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.preview.options": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.preview.options.cwd": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve-static": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve-static.executor": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve-static.options": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve-static.options.buildTarget": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.test": ["apps/myreactapp/vite.config.ts", "@nx/vite/plugin"],
"targets.test.command": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.test.options": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.test.cache": ["apps/myreactapp/vite.config.ts", "@nx/vite/plugin"],
"targets.test.inputs": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.test.outputs": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.test.options.cwd": [
"apps/myreactapp/vite.config.ts",
"@nx/vite/plugin"
],
"targets.lint": ["apps/myreactapp/project.json", "@nx/eslint/plugin"],
"targets.lint.command": [
"apps/myreactapp/project.json",
"@nx/eslint/plugin"
],
"targets.lint.cache": ["apps/myreactapp/project.json", "@nx/eslint/plugin"],
"targets.lint.options": [
"apps/myreactapp/project.json",
"@nx/eslint/plugin"
],
"targets.lint.inputs": [
"apps/myreactapp/project.json",
"@nx/eslint/plugin"
],
"targets.lint.options.cwd": [
"apps/myreactapp/project.json",
"@nx/eslint/plugin"
],
"name": ["apps/myreactapp/project.json", "nx/core/project-json"],
"$schema": ["apps/myreactapp/project.json", "nx/core/project-json"],
"sourceRoot": ["apps/myreactapp/project.json", "nx/core/project-json"],
"projectType": ["apps/myreactapp/project.json", "nx/core/project-json"],
"tags": ["apps/myreactapp/project.json", "nx/core/project-json"]
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 66 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 78 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 334 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 172 KiB

@@ -1,64 +0,0 @@
{
"projects": [
{
"name": "app1",
"type": "app",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
},
{
"name": "app2",
"type": "app",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
},
{
"name": "lib",
"type": "lib",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
}
],
"taskId": "lib:test",
"taskGraphs": {
"lib:test": {
"roots": ["app1:test", "app2:test", "lib:test"],
"tasks": {
"app1:test": {
"id": "app1:test",
"target": { "project": "app1", "target": "test" },
"projectRoot": "apps/app1",
"overrides": {}
},
"app2:test": {
"id": "app2:test",
"target": { "project": "app2", "target": "test" },
"projectRoot": "apps/app2",
"overrides": {}
},
"lib:test": {
"id": "lib:test",
"target": { "project": "lib", "target": "test" },
"projectRoot": "libs/lib",
"overrides": {}
}
},
"dependencies": {
"app1:test": ["lib:test"],
"app2:test": ["lib:test"]
}
}
}
}
@@ -1,61 +0,0 @@
{
"projects": [
{
"name": "app1",
"type": "app",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
},
{
"name": "app2",
"type": "app",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
},
{
"name": "lib",
"type": "lib",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
}
],
"taskId": "lib:test",
"taskGraphs": {
"lib:test": {
"roots": ["app1:test", "app2:test", "lib:test"],
"tasks": {
"app1:test": {
"id": "app1:test",
"target": { "project": "app1", "target": "test" },
"projectRoot": "apps/app1",
"overrides": {}
},
"app2:test": {
"id": "app2:test",
"target": { "project": "app2", "target": "test" },
"projectRoot": "apps/app2",
"overrides": {}
},
"lib:test": {
"id": "lib:test",
"target": { "project": "lib", "target": "test" },
"projectRoot": "libs/lib",
"overrides": {}
}
},
"dependencies": {}
}
}
}
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 196 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 68 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

@@ -1,29 +0,0 @@
{
"projects": [
{
"name": "lib",
"type": "lib",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
}
],
"taskId": "lib:test",
"taskGraphs": {
"lib:test": {
"roots": ["lib:test"],
"tasks": {
"lib:test": {
"id": "lib:test",
"target": { "project": "lib", "target": "test" },
"projectRoot": "libs/lib",
"overrides": {}
}
},
"dependencies": {}
}
}
}
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 112 KiB

@@ -1,47 +0,0 @@
{
"projects": [
{
"name": "app1",
"type": "app",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
},
{
"name": "app2",
"type": "app",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
},
{
"name": "lib",
"type": "lib",
"data": {
"tags": [],
"targets": {
"test": {}
}
}
}
],
"dependencies": {
"app1": [{ "source": "app1", "target": "lib", "type": "static" }],
"app2": [{ "source": "app2", "target": "lib", "type": "static" }],
"lib": []
},
"workspaceLayout": {
"appsDir": "apps",
"libsDir": "libs"
},
"affectedProjectIds": [],
"focus": null,
"groupByFolder": false,
"exclude": []
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Some files were not shown because too many files have changed in this diff Show More