diff --git a/graph/client/src/app/feature-projects/machines/composite-graph.state.ts b/graph/client/src/app/feature-projects/machines/composite-graph.state.ts
index 3f7dcbc4891be..d34d6806ce83d 100644
--- a/graph/client/src/app/feature-projects/machines/composite-graph.state.ts
+++ b/graph/client/src/app/feature-projects/machines/composite-graph.state.ts
@@ -34,6 +34,43 @@ export const compositeGraphStateConfig: ProjectGraphStateNodeConfig = {
}),
],
on: {
+ selectAll: {
+ actions: [
+ assign((ctx, event) => {
+ if (event.type !== 'selectAll') return;
+ ctx.compositeGraph.enabled = true;
+ ctx.compositeGraph.context = null;
+ }),
+ send((ctx) => ({
+ type: 'enableCompositeGraph',
+ context: ctx.compositeGraph.context,
+ })),
+ ],
+ },
+ deselectAll: {
+ actions: [
+ assign((ctx, event) => {
+ if (event.type !== 'deselectAll') return;
+ ctx.compositeGraph.enabled = true;
+ }),
+ send(
+ () => ({
+ type: 'notifyGraphHideAllProjects',
+ }),
+ { to: (context) => context.graphActor }
+ ),
+ ],
+ },
+ selectAffected: {
+ actions: [
+ send(
+ () => ({
+ type: 'notifyGraphShowAffectedProjects',
+ }),
+ { to: (context) => context.graphActor }
+ ),
+ ],
+ },
focusProject: {
actions: [
assign((ctx, event) => {
@@ -112,6 +149,7 @@ export const compositeGraphStateConfig: ProjectGraphStateNodeConfig = {
if (event.type !== 'enableCompositeGraph') return;
ctx.compositeGraph.enabled = true;
ctx.compositeGraph.context = event.context || undefined;
+ ctx.focusedProject = null;
}),
send(
(ctx, event) => ({
diff --git a/graph/client/src/app/feature-projects/panels/group-by-folder-panel.tsx b/graph/client/src/app/feature-projects/panels/group-by-folder-panel.tsx
index 34e5ef3fc964d..f17c5ff5fd7c4 100644
--- a/graph/client/src/app/feature-projects/panels/group-by-folder-panel.tsx
+++ b/graph/client/src/app/feature-projects/panels/group-by-folder-panel.tsx
@@ -3,11 +3,15 @@ import { CheckboxPanel } from '../../ui-components/checkbox-panel';
export interface DisplayOptionsPanelProps {
groupByFolder: boolean;
groupByFolderChanged: (checked: boolean) => void;
+ disabled?: boolean;
+ disabledDescription?: string;
}
export const GroupByFolderPanel = ({
groupByFolder,
groupByFolderChanged,
+ disabled,
+ disabledDescription,
}: DisplayOptionsPanelProps) => {
return (
);
};
diff --git a/graph/client/src/app/feature-projects/project-list.tsx b/graph/client/src/app/feature-projects/project-list.tsx
index 33af5316eb9c8..ef9a906934575 100644
--- a/graph/client/src/app/feature-projects/project-list.tsx
+++ b/graph/client/src/app/feature-projects/project-list.tsx
@@ -283,13 +283,8 @@ function CompositeNodeListItem({
No composite nodes;
}
diff --git a/graph/client/src/app/feature-projects/projects-sidebar.tsx b/graph/client/src/app/feature-projects/projects-sidebar.tsx
index 676f318bdb084..52c05eb1b6a1d 100644
--- a/graph/client/src/app/feature-projects/projects-sidebar.tsx
+++ b/graph/client/src/app/feature-projects/projects-sidebar.tsx
@@ -7,6 +7,8 @@ import { useProjectGraphSelector } from './hooks/use-project-graph-selector';
import { TracingAlgorithmType } from './machines/interfaces';
import {
collapseEdgesSelector,
+ compositeContextSelector,
+ compositeGraphEnabledSelector,
focusedProjectNameSelector,
getTracingInfo,
groupByFolderSelector,
@@ -40,6 +42,8 @@ import {
} from 'react-router-dom';
import { useCurrentPath } from '../hooks/use-current-path';
import { ProjectDetailsModal } from '../ui-components/project-details-modal';
+import { CompositeGraphPanel } from './panels/composite-graph-panel';
+import { CompositeContextPanel } from '../ui-components/composite-context-panel';
export function ProjectsSidebar(): JSX.Element {
const environmentConfig = useEnvironmentConfig();
@@ -53,6 +57,10 @@ export function ProjectsSidebar(): JSX.Element {
);
const groupByFolder = useProjectGraphSelector(groupByFolderSelector);
const collapseEdges = useProjectGraphSelector(collapseEdgesSelector);
+ const compositeEnabled = useProjectGraphSelector(
+ compositeGraphEnabledSelector
+ );
+ const compositeContext = useProjectGraphSelector(compositeContextSelector);
const isTracing = projectGraphService.getSnapshot().matches('tracing');
const tracingInfo = useProjectGraphSelector(getTracingInfo);
@@ -75,17 +83,48 @@ export function ProjectsSidebar(): JSX.Element {
navigate(routeConstructor('/projects', true));
}
+ function resetCompositeContext() {
+ projectGraphService.send({ type: 'enableCompositeGraph', context: null });
+ navigate(
+ routeConstructor(
+ { pathname: '/projects', search: '?composite=true' },
+ true
+ )
+ );
+ }
+
function showAllProjects() {
- navigate(routeConstructor('/projects/all', true));
+ navigate(
+ routeConstructor('/projects/all', (searchParams) => {
+ if (searchParams.has('composite')) {
+ searchParams.set('composite', 'true');
+ }
+ return searchParams;
+ })
+ );
}
function hideAllProjects() {
projectGraphService.send({ type: 'deselectAll' });
- navigate(routeConstructor('/projects', true));
+ navigate(
+ routeConstructor('/projects', (searchParams) => {
+ if (searchParams.has('composite')) {
+ searchParams.set('composite', 'true');
+ }
+ return searchParams;
+ })
+ );
}
function showAffectedProjects() {
- navigate(routeConstructor('/projects/affected', true));
+ navigate(
+ routeConstructor('/projects/affected', (searchParams) => {
+ if (searchParams.has('composite')) {
+ searchParams.set('composite', 'true');
+ }
+ return searchParams;
+ })
+ );
}
function searchDepthFilterEnabledChange(checked: boolean) {
@@ -126,6 +165,17 @@ export function ProjectsSidebar(): JSX.Element {
});
}
+ function compositeEnabledChanged(checked: boolean) {
+ setSearchParams((currentSearchParams) => {
+ if (checked) {
+ currentSearchParams.set('composite', 'true');
+ } else {
+ currentSearchParams.delete('composite');
+ }
+ return currentSearchParams;
+ });
+ }
+
function incrementDepthFilter() {
const newSearchDepth = searchDepthInfo.searchDepth + 1;
setSearchParams((currentSearchParams) => {
@@ -224,7 +274,7 @@ export function ProjectsSidebar(): JSX.Element {
projectName: routeParams.endTrace,
});
}
- }, [routeParams]);
+ }, [routeParams, compositeEnabled]);
useEffect(() => {
if (searchParams.has('groupByFolder') && groupByFolder === false) {
@@ -251,6 +301,17 @@ export function ProjectsSidebar(): JSX.Element {
});
}
+ if (searchParams.has('composite')) {
+ const compositeParam = searchParams.get('composite');
+ projectGraphService.send({
+ type: 'enableCompositeGraph',
+ context: compositeParam === 'true' ? null : compositeParam,
+ });
+ } else if (!searchParams.has('composite')) {
+ projectGraphService.send({ type: 'disableCompositeGraph' });
+ navigate(routeConstructor('/projects', true));
+ }
+
if (searchParams.has('searchDepth')) {
const parsedValue = parseInt(searchParams.get('searchDepth'), 10);
@@ -329,6 +390,13 @@ export function ProjectsSidebar(): JSX.Element {
<>
+ {compositeEnabled && compositeContext ? (
+
+ ) : null}
+
{focusedProject ? (
-
+
Experimental Features
@@ -386,6 +456,10 @@ export function ProjectsSidebar(): JSX.Element {
collapseEdges={collapseEdges}
collapseEdgesChanged={collapseEdgesChanged}
>
+
diff --git a/graph/client/src/app/ui-components/checkbox-panel.tsx b/graph/client/src/app/ui-components/checkbox-panel.tsx
index 9fea965cac1d8..90ac08e1ae3ff 100644
--- a/graph/client/src/app/ui-components/checkbox-panel.tsx
+++ b/graph/client/src/app/ui-components/checkbox-panel.tsx
@@ -1,4 +1,5 @@
import { memo } from 'react';
+import classNames from 'classnames';
export interface CheckboxPanelProps {
checked: boolean;
@@ -6,12 +7,28 @@ export interface CheckboxPanelProps {
name: string;
label: string;
description: string;
+ disabled?: boolean;
+ disabledDescription?: string;
}
export const CheckboxPanel = memo(
- ({ checked, checkChanged, label, description, name }: CheckboxPanelProps) => {
+ ({
+ checked,
+ checkChanged,
+ label,
+ description,
+ name,
+ disabled,
+ disabledDescription,
+ }: CheckboxPanelProps) => {
return (
-
+
checkChanged(event.target.checked)}
checked={checked}
+ disabled={disabled}
/>
diff --git a/graph/client/src/app/ui-tooltips/graph-tooltip-display.tsx b/graph/client/src/app/ui-tooltips/graph-tooltip-display.tsx
index 9bcf1c0f2e5d5..7ac1caa3c9dd8 100644
--- a/graph/client/src/app/ui-tooltips/graph-tooltip-display.tsx
+++ b/graph/client/src/app/ui-tooltips/graph-tooltip-display.tsx
@@ -41,17 +41,16 @@ export function TooltipDisplay() {
});
break;
case 'focus-node': {
- const to =
- action.tooltipNodeType === 'compositeNode'
- ? routeConstructor(
- {
- pathname: `/projects`,
- search: `?composite=true&compositeContext=${action.id}`,
- },
- false
- )
- : routeConstructor(`/projects/${action.id}`, true);
- navigate(to);
+ if (action.tooltipNodeType === 'compositeNode') {
+ navigate(
+ routeConstructor(
+ { pathname: `/projects`, search: `?composite=${action.id}` },
+ true
+ )
+ );
+ } else {
+ navigate(routeConstructor(`/projects/${action.id}`, true));
+ }
break;
}
case 'collapse-node':
diff --git a/package.json b/package.json
index 1e4a9b4d41831..1ff58c12ac1a5 100644
--- a/package.json
+++ b/package.json
@@ -324,7 +324,7 @@
"@markdoc/markdoc": "0.2.2",
"@monaco-editor/react": "^4.4.6",
"@napi-rs/canvas": "^0.1.52",
- "@nx/graph": "0.0.1-alpha.16",
+ "@nx/graph": "0.0.1-alpha.17",
"@react-spring/three": "^9.7.3",
"@react-three/drei": "^9.108.3",
"@react-three/fiber": "^8.16.8",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7fff0fca3c09f..51bb7e0b9132b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -31,8 +31,8 @@ importers:
specifier: ^0.1.52
version: 0.1.55
'@nx/graph':
- specifier: 0.0.1-alpha.16
- version: 0.0.1-alpha.16(@nx/devkit@19.8.0-beta.2(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11))))(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ specifier: 0.0.1-alpha.17
+ version: 0.0.1-alpha.17(@nx/devkit@19.8.0-beta.2(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11))))(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
'@react-spring/three':
specifier: ^9.7.3
version: 9.7.4(@react-three/fiber@8.17.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.166.1))(react@18.3.1)(three@0.166.1)
@@ -4388,8 +4388,8 @@ packages:
'@zkochan/js-yaml':
optional: true
- '@nx/graph@0.0.1-alpha.16':
- resolution: {integrity: sha512-pJVFuTunlRfa8BuO2Vy6wxRtfC2kDT3TKDR6y1KXmMl90xTVT30zU/K9ITXPZzLfo8nLpewIfbv41gGSCY9+Dg==}
+ '@nx/graph@0.0.1-alpha.17':
+ resolution: {integrity: sha512-s1pe+om4dk0vGojjv1yHQIRNbeIajHs66glS/lcZP2YovCLWXy+3OBmM1jzzWrKIW1fdSwamO5S9WBdWnAPKFQ==}
peerDependencies:
'@nx/devkit': '>= 19 < 20'
nx: '>= 19 < 20'
@@ -16623,7 +16623,7 @@ snapshots:
dependencies:
'@ampproject/remapping': 2.3.0
'@angular-devkit/architect': 0.1802.5(chokidar@3.6.0)
- '@angular-devkit/build-webpack': 0.1802.5(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.88.0))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))
+ '@angular-devkit/build-webpack': 0.1802.5(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))
'@angular-devkit/core': 18.2.5(chokidar@3.6.0)
'@angular/build': 18.2.5(@angular/compiler-cli@18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@types/node@18.19.8)(chokidar@3.6.0)(less@4.2.0)(postcss@8.4.41)(stylus@0.59.0)(tailwindcss@3.4.4(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@18.19.8)(typescript@5.5.4)))(terser@5.31.6)(typescript@5.5.4)
'@angular/compiler-cli': 18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4)
@@ -16709,12 +16709,12 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@angular-devkit/build-webpack@0.1802.5(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.88.0))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))':
+ '@angular-devkit/build-webpack@0.1802.5(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))':
dependencies:
'@angular-devkit/architect': 0.1802.5(chokidar@3.6.0)
rxjs: 7.8.1
webpack: 5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))
- webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.88.0)
+ webpack-dev-server: 5.0.4(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))(webpack@5.94.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.23.0)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))
transitivePeerDependencies:
- chokidar
@@ -20582,7 +20582,7 @@ snapshots:
- supports-color
- verdaccio
- '@nx/graph@0.0.1-alpha.16(@nx/devkit@19.8.0-beta.2(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11))))(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
+ '@nx/graph@0.0.1-alpha.17(@nx/devkit@19.8.0-beta.2(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11))))(nx@19.8.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.5.4))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react': 0.26.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -26481,8 +26481,8 @@ snapshots:
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0)
- eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
+ eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.57.0)
eslint-plugin-react: 7.35.0(eslint@8.57.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
@@ -26505,33 +26505,33 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0):
+ eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.3.7(supports-color@8.1.1)
enhanced-resolve: 5.17.1
eslint: 8.57.0
- eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
+ eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)
+ eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
- eslint-import-resolver-webpack
- supports-color
- eslint-module-utils@2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
+ eslint-module-utils@2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
optionalDependencies:
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
@@ -26550,7 +26550,7 @@ snapshots:
eslint: 8.57.0
globals: 13.24.0
- eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
+ eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -26561,7 +26561,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
+ eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
hasown: 2.0.2
is-core-module: 2.15.1
is-glob: 4.0.3