mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-10-04 22:59:50 +02:00
Compare commits
1 Commits
mindmap-no
...
renovate/e
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bd343d0d86 |
@@ -6,14 +6,6 @@
|
||||
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css"
|
||||
/>
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<style>
|
||||
svg:not(svg svg) {
|
||||
border: 2px solid darkred;
|
||||
|
@@ -10,7 +10,7 @@
|
||||
|
||||
# Interface: LayoutData
|
||||
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:169](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L169)
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:168](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L168)
|
||||
|
||||
## Indexable
|
||||
|
||||
@@ -22,7 +22,7 @@ Defined in: [packages/mermaid/src/rendering-util/types.ts:169](https://github.co
|
||||
|
||||
> **config**: [`MermaidConfig`](MermaidConfig.md)
|
||||
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:172](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L172)
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:171](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L171)
|
||||
|
||||
---
|
||||
|
||||
@@ -30,7 +30,7 @@ Defined in: [packages/mermaid/src/rendering-util/types.ts:172](https://github.co
|
||||
|
||||
> **edges**: `Edge`\[]
|
||||
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:171](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L171)
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:170](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L170)
|
||||
|
||||
---
|
||||
|
||||
@@ -38,4 +38,4 @@ Defined in: [packages/mermaid/src/rendering-util/types.ts:171](https://github.co
|
||||
|
||||
> **nodes**: `Node`\[]
|
||||
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:170](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L170)
|
||||
Defined in: [packages/mermaid/src/rendering-util/types.ts:169](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.ts#L169)
|
||||
|
@@ -69,7 +69,7 @@
|
||||
"@changesets/cli": "^2.29.7",
|
||||
"@cspell/eslint-plugin": "^8.19.4",
|
||||
"@cypress/code-coverage": "^3.14.6",
|
||||
"@eslint/js": "^9.26.0",
|
||||
"@eslint/js": "^9.37.0",
|
||||
"@rollup/plugin-typescript": "^12.1.4",
|
||||
"@types/cors": "^2.8.19",
|
||||
"@types/express": "^5.0.3",
|
||||
@@ -93,7 +93,7 @@
|
||||
"cypress-image-snapshot": "^4.0.1",
|
||||
"cypress-split": "^1.24.23",
|
||||
"esbuild": "^0.25.10",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.37.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-cypress": "^4.3.0",
|
||||
"eslint-plugin-html": "^8.1.3",
|
||||
@@ -126,7 +126,7 @@
|
||||
"tslib": "^2.8.1",
|
||||
"tsx": "^4.20.5",
|
||||
"typescript": "~5.7.3",
|
||||
"typescript-eslint": "^8.38.0",
|
||||
"typescript-eslint": "^8.45.0",
|
||||
"vite": "^7.0.7",
|
||||
"vite-plugin-istanbul": "^7.0.0",
|
||||
"vitest": "^3.2.4"
|
||||
|
@@ -1,222 +0,0 @@
|
||||
import { log } from '../../logger.js';
|
||||
import type { D3Selection } from '../../types.js';
|
||||
import type { Node } from '../../rendering-util/types.js';
|
||||
import { getIconSVG, isIconAvailable } from '../../rendering-util/icons.js';
|
||||
|
||||
export interface MindmapIconConfig {
|
||||
iconSize: number;
|
||||
iconPadding: number;
|
||||
shapeType: 'circle' | 'rect' | 'rounded' | 'bang' | 'cloud' | 'hexagon' | 'default';
|
||||
}
|
||||
|
||||
export interface MindmapDimensions {
|
||||
width: number;
|
||||
height: number;
|
||||
labelOffset: { x: number; y: number };
|
||||
}
|
||||
|
||||
/**
|
||||
* Get icon configuration for different mindmap shape types
|
||||
*/
|
||||
export function getMindmapIconConfig(shapeType: string): MindmapIconConfig {
|
||||
const baseConfig = {
|
||||
iconSize: 30,
|
||||
iconPadding: 15,
|
||||
shapeType: shapeType as MindmapIconConfig['shapeType'],
|
||||
};
|
||||
|
||||
switch (shapeType) {
|
||||
case 'bang':
|
||||
return { ...baseConfig, iconPadding: 1 };
|
||||
case 'rect':
|
||||
case 'default':
|
||||
return { ...baseConfig, iconPadding: 10 };
|
||||
default:
|
||||
return baseConfig;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate dimensions and label positioning for mindmap nodes with icons
|
||||
*/
|
||||
export function calculateMindmapDimensions(
|
||||
node: Node,
|
||||
bbox: any,
|
||||
baseWidth: number,
|
||||
baseHeight: number,
|
||||
basePadding: number,
|
||||
config: MindmapIconConfig
|
||||
): MindmapDimensions {
|
||||
const hasIcon = Boolean(node.icon);
|
||||
|
||||
if (!hasIcon) {
|
||||
return {
|
||||
width: baseWidth,
|
||||
height: baseHeight,
|
||||
labelOffset: { x: -bbox.width / 2, y: -bbox.height / 2 },
|
||||
};
|
||||
}
|
||||
|
||||
const { iconSize, iconPadding, shapeType } = config;
|
||||
let width = baseWidth;
|
||||
let height = baseHeight;
|
||||
let labelXOffset = -bbox.width / 2;
|
||||
const labelYOffset = -bbox.height / 2;
|
||||
|
||||
switch (shapeType) {
|
||||
case 'circle': {
|
||||
const totalWidthNeeded = bbox.width + iconSize + iconPadding * 2;
|
||||
const minRadiusWithIcon = totalWidthNeeded / 2 + basePadding;
|
||||
const radius = Math.max(baseWidth / 2, minRadiusWithIcon);
|
||||
width = radius * 2;
|
||||
height = radius * 2;
|
||||
labelXOffset = -radius + iconSize + iconPadding;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'rect':
|
||||
case 'rounded':
|
||||
case 'default': {
|
||||
const minWidthWithIcon = bbox.width + iconSize + iconPadding * 2 + basePadding * 2;
|
||||
width = Math.max(baseWidth, minWidthWithIcon);
|
||||
height = Math.max(baseHeight, iconSize + basePadding * 2);
|
||||
|
||||
const availableTextSpace = width - iconSize - iconPadding * 2;
|
||||
labelXOffset = -width / 2 + iconSize + iconPadding + availableTextSpace / 2 - bbox.width / 2;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'bang':
|
||||
case 'cloud': {
|
||||
const minWidthWithIcon = bbox.width + iconSize + iconPadding * 2 + basePadding;
|
||||
width = Math.max(baseWidth, minWidthWithIcon);
|
||||
height = Math.max(baseHeight, iconSize + basePadding);
|
||||
|
||||
const availableTextSpace = width - iconSize - iconPadding * 2;
|
||||
labelXOffset = -width / 2 + iconSize + iconPadding + availableTextSpace / 2 - bbox.width / 2;
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
const minWidthWithIcon = bbox.width + iconSize + iconPadding * 2 + basePadding * 2;
|
||||
width = Math.max(baseWidth, minWidthWithIcon);
|
||||
height = Math.max(baseHeight, iconSize + basePadding * 2);
|
||||
|
||||
const availableTextSpace = width - iconSize - iconPadding * 2;
|
||||
labelXOffset = -width / 2 + iconSize + iconPadding + availableTextSpace / 2 - bbox.width / 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
width,
|
||||
height,
|
||||
labelOffset: { x: labelXOffset, y: labelYOffset },
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert mindmap icon into the shape SVG element
|
||||
*/
|
||||
export async function insertMindmapIcon(
|
||||
parentElement: D3Selection<SVGGraphicsElement>,
|
||||
node: Node,
|
||||
config: MindmapIconConfig
|
||||
): Promise<void> {
|
||||
if (!node.icon) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { iconSize, iconPadding, shapeType } = config;
|
||||
const section = node.section ?? 0;
|
||||
|
||||
let iconName = node.icon;
|
||||
const isCssFormat = iconName.includes(' ');
|
||||
|
||||
if (isCssFormat) {
|
||||
iconName = iconName.replace(' ', ':');
|
||||
}
|
||||
|
||||
try {
|
||||
if (await isIconAvailable(iconName)) {
|
||||
const iconSvg = await getIconSVG(
|
||||
iconName,
|
||||
{
|
||||
height: iconSize,
|
||||
width: iconSize,
|
||||
},
|
||||
{ class: 'label-icon' }
|
||||
);
|
||||
|
||||
const iconElem = parentElement.append('g');
|
||||
iconElem.html(`<g>${iconSvg}</g>`);
|
||||
|
||||
let iconX = 0;
|
||||
let iconY = 0;
|
||||
|
||||
switch (shapeType) {
|
||||
case 'circle': {
|
||||
const nodeWidth = node.width || 100;
|
||||
const radius = nodeWidth / 2;
|
||||
iconX = -radius + iconSize / 2 + iconPadding;
|
||||
iconY = 0;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
const nodeWidth = node.width || 100;
|
||||
iconX = -nodeWidth / 2 + iconSize / 2 + iconPadding;
|
||||
iconY = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
iconElem.attr('transform', `translate(${iconX}, ${iconY})`);
|
||||
iconElem.attr('style', 'color: currentColor;');
|
||||
return;
|
||||
}
|
||||
} catch (error) {
|
||||
log.debug('SVG icon rendering failed, falling back to CSS:', error);
|
||||
}
|
||||
|
||||
// Fallback to CSS approach (original mindmap behavior)
|
||||
const iconClass = isCssFormat ? node.icon : node.icon.replace(':', ' ');
|
||||
|
||||
let iconX = 0;
|
||||
const iconY = -iconSize / 2;
|
||||
|
||||
switch (shapeType) {
|
||||
case 'circle': {
|
||||
const nodeWidth = node.width || 100;
|
||||
const radius = nodeWidth / 2;
|
||||
iconX = -radius + iconPadding;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
const nodeWidth = node.width || 100;
|
||||
iconX = -nodeWidth / 2 + iconPadding;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const icon = parentElement
|
||||
.append('foreignObject')
|
||||
.attr('height', `${iconSize}px`)
|
||||
.attr('width', `${iconSize}px`)
|
||||
.attr('x', iconX)
|
||||
.attr('y', iconY)
|
||||
.attr(
|
||||
'style',
|
||||
'text-align: center; display: flex; align-items: center; justify-content: center;'
|
||||
);
|
||||
|
||||
icon
|
||||
.append('div')
|
||||
.attr('class', 'icon-container')
|
||||
.attr(
|
||||
'style',
|
||||
'width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;'
|
||||
)
|
||||
.append('i')
|
||||
.attr('class', `node-icon-${section} ${iconClass}`)
|
||||
.attr('style', `font-size: ${iconSize}px;`);
|
||||
}
|
@@ -7,7 +7,6 @@ import type { LayoutData } from '../../rendering-util/types.js';
|
||||
import type { FilledMindMapNode } from './mindmapTypes.js';
|
||||
import defaultConfig from '../../defaultConfig.js';
|
||||
import type { MindmapDB } from './mindmapDb.js';
|
||||
import { getMindmapIconConfig, insertMindmapIcon } from './mindmapIconHelper.js';
|
||||
|
||||
/**
|
||||
* Update the layout data with actual node dimensions after drawing
|
||||
@@ -72,28 +71,6 @@ export const draw: DrawDefinition = async (text, id, _version, diagObj) => {
|
||||
|
||||
// Use the unified rendering system
|
||||
await render(data4Layout, svg);
|
||||
const genericShapes = ['hexagon', 'rect', 'rounded', 'squareRect'];
|
||||
const nodesWithIcons = data4Layout.nodes.filter(
|
||||
(node) => node.icon && genericShapes.includes(node.shape || '')
|
||||
);
|
||||
|
||||
if (nodesWithIcons.length > 0) {
|
||||
for (const node of nodesWithIcons) {
|
||||
const nodeId = node.domId || node.id;
|
||||
const nodeElement = svg.select(`g[id="${nodeId}"]`);
|
||||
|
||||
if (!nodeElement.empty()) {
|
||||
try {
|
||||
const iconConfig = getMindmapIconConfig(node.shape || 'default');
|
||||
await insertMindmapIcon(nodeElement, node, iconConfig);
|
||||
} catch (error) {
|
||||
log.warn(`Failed to add icon to ${nodeId}:`, error);
|
||||
}
|
||||
} else {
|
||||
log.warn(`Could not find DOM element for node ${nodeId}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Setup the view box and size of the svg element using config from data4Layout
|
||||
setupViewPortForSVG(
|
||||
|
@@ -7,11 +7,6 @@ import rough from 'roughjs';
|
||||
import type { D3Selection } from '../../../types.js';
|
||||
import { handleUndefinedAttr } from '../../../utils.js';
|
||||
import type { Bounds, Point } from '../../../types.js';
|
||||
import {
|
||||
calculateMindmapDimensions,
|
||||
getMindmapIconConfig,
|
||||
insertMindmapIcon,
|
||||
} from '../../../diagrams/mindmap/mindmapIconHelper.js';
|
||||
|
||||
export async function bang<T extends SVGGraphicsElement>(parent: D3Selection<T>, node: Node) {
|
||||
const { labelStyles, nodeStyles } = styles2String(node);
|
||||
@@ -22,34 +17,20 @@ export async function bang<T extends SVGGraphicsElement>(parent: D3Selection<T>,
|
||||
getNodeClasses(node)
|
||||
);
|
||||
|
||||
const baseWidth = bbox.width + 10 * halfPadding;
|
||||
const baseHeight = bbox.height + 8 * halfPadding;
|
||||
|
||||
const iconConfig = getMindmapIconConfig('bang');
|
||||
const dimensions = calculateMindmapDimensions(
|
||||
node,
|
||||
bbox,
|
||||
baseWidth,
|
||||
baseHeight,
|
||||
halfPadding,
|
||||
iconConfig
|
||||
);
|
||||
|
||||
const w = dimensions.width;
|
||||
const h = dimensions.height;
|
||||
|
||||
node.width = w;
|
||||
node.height = h;
|
||||
const w = bbox.width + 10 * halfPadding;
|
||||
const h = bbox.height + 8 * halfPadding;
|
||||
const r = 0.15 * w;
|
||||
const { cssStyles } = node;
|
||||
|
||||
const minWidth = bbox.width + 20;
|
||||
const minHeight = bbox.height + 20;
|
||||
const effectiveWidth = Math.max(w, minWidth);
|
||||
const effectiveHeight = Math.max(h, minHeight);
|
||||
|
||||
label.attr('transform', `translate(${dimensions.labelOffset.x}, ${dimensions.labelOffset.y})`);
|
||||
label.attr('transform', `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);
|
||||
|
||||
const r = 0.15 * effectiveWidth;
|
||||
const path = `M0 0
|
||||
let bangElem;
|
||||
const path = `M0 0
|
||||
a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${-1 * effectiveHeight * 0.1}
|
||||
a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}
|
||||
a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}
|
||||
@@ -69,16 +50,13 @@ export async function bang<T extends SVGGraphicsElement>(parent: D3Selection<T>,
|
||||
a${r},${r} 1 0,0 ${effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}
|
||||
H0 V0 Z`;
|
||||
|
||||
let bangElem;
|
||||
if (node.look === 'handDrawn') {
|
||||
// @ts-expect-error -- Passing a D3.Selection seems to work for some reason
|
||||
const rc = rough.svg(shapeSvg);
|
||||
const options = userNodeOverrides(node, {});
|
||||
const roughNode = rc.path(path, options);
|
||||
bangElem = shapeSvg.insert(() => roughNode, ':first-child');
|
||||
bangElem
|
||||
.attr('class', 'basic label-container')
|
||||
.attr('style', handleUndefinedAttr(node.cssStyles));
|
||||
bangElem.attr('class', 'basic label-container').attr('style', handleUndefinedAttr(cssStyles));
|
||||
} else {
|
||||
bangElem = shapeSvg
|
||||
.insert('path', ':first-child')
|
||||
@@ -90,10 +68,6 @@ export async function bang<T extends SVGGraphicsElement>(parent: D3Selection<T>,
|
||||
// Translate the path (center the shape)
|
||||
bangElem.attr('transform', `translate(${-effectiveWidth / 2}, ${-effectiveHeight / 2})`);
|
||||
|
||||
if (node.icon) {
|
||||
await insertMindmapIcon(shapeSvg, node, iconConfig);
|
||||
}
|
||||
|
||||
updateNodeBounds(node, bangElem);
|
||||
node.calcIntersect = function (bounds: Bounds, point: Point) {
|
||||
return intersect.rect(bounds, point);
|
||||
|
@@ -14,25 +14,9 @@ export async function circle<T extends SVGGraphicsElement>(
|
||||
) {
|
||||
const { labelStyles, nodeStyles } = styles2String(node);
|
||||
node.labelStyle = labelStyles;
|
||||
|
||||
const { shapeSvg, bbox, halfPadding, label } = await labelHelper(
|
||||
parent,
|
||||
node,
|
||||
getNodeClasses(node)
|
||||
);
|
||||
|
||||
const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
const padding = options?.padding ?? halfPadding;
|
||||
|
||||
const radius = bbox.width / 2 + padding;
|
||||
|
||||
node.width = radius * 2;
|
||||
node.height = radius * 2;
|
||||
|
||||
const labelXOffset = -bbox.width / 2;
|
||||
const labelYOffset = -bbox.height / 2;
|
||||
if (node.icon) {
|
||||
label.attr('transform', `translate(${labelXOffset}, ${labelYOffset})`);
|
||||
}
|
||||
let circleElem;
|
||||
const { cssStyles } = node;
|
||||
|
||||
|
@@ -6,11 +6,6 @@ import type { Node } from '../../types.js';
|
||||
import intersect from '../intersect/index.js';
|
||||
import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js';
|
||||
import { getNodeClasses, labelHelper, updateNodeBounds } from './util.js';
|
||||
import {
|
||||
getMindmapIconConfig,
|
||||
calculateMindmapDimensions,
|
||||
insertMindmapIcon,
|
||||
} from '../../../diagrams/mindmap/mindmapIconHelper.js';
|
||||
|
||||
export async function cloud<T extends SVGGraphicsElement>(parent: D3Selection<T>, node: Node) {
|
||||
const { labelStyles, nodeStyles } = styles2String(node);
|
||||
@@ -22,26 +17,8 @@ export async function cloud<T extends SVGGraphicsElement>(parent: D3Selection<T>
|
||||
getNodeClasses(node)
|
||||
);
|
||||
|
||||
const baseWidth = bbox.width + 2 * halfPadding;
|
||||
const baseHeight = bbox.height + 2 * halfPadding;
|
||||
|
||||
const iconConfig = getMindmapIconConfig('cloud');
|
||||
const dimensions = calculateMindmapDimensions(
|
||||
node,
|
||||
bbox,
|
||||
baseWidth,
|
||||
baseHeight,
|
||||
halfPadding,
|
||||
iconConfig
|
||||
);
|
||||
|
||||
const w = dimensions.width;
|
||||
const h = dimensions.height;
|
||||
|
||||
node.width = w;
|
||||
node.height = h;
|
||||
|
||||
label.attr('transform', `translate(${dimensions.labelOffset.x}, ${dimensions.labelOffset.y})`);
|
||||
const w = bbox.width + 2 * halfPadding;
|
||||
const h = bbox.height + 2 * halfPadding;
|
||||
|
||||
// Cloud radii
|
||||
const r1 = 0.15 * w;
|
||||
@@ -84,13 +61,11 @@ export async function cloud<T extends SVGGraphicsElement>(parent: D3Selection<T>
|
||||
.attr('d', path);
|
||||
}
|
||||
|
||||
label.attr('transform', `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);
|
||||
|
||||
// Center the shape
|
||||
cloudElem.attr('transform', `translate(${-w / 2}, ${-h / 2})`);
|
||||
|
||||
if (node.icon) {
|
||||
await insertMindmapIcon(shapeSvg, node, iconConfig);
|
||||
}
|
||||
|
||||
updateNodeBounds(node, cloudElem);
|
||||
|
||||
node.calcIntersect = function (bounds: Bounds, point: Point) {
|
||||
|
@@ -3,11 +3,6 @@ import type { Node } from '../../types.js';
|
||||
import intersect from '../intersect/index.js';
|
||||
import { styles2String } from './handDrawnShapeStyles.js';
|
||||
import { getNodeClasses, labelHelper, updateNodeBounds } from './util.js';
|
||||
import {
|
||||
getMindmapIconConfig,
|
||||
calculateMindmapDimensions,
|
||||
insertMindmapIcon,
|
||||
} from '../../../diagrams/mindmap/mindmapIconHelper.js';
|
||||
|
||||
export async function defaultMindmapNode<T extends SVGGraphicsElement>(
|
||||
parent: D3Selection<T>,
|
||||
@@ -22,38 +17,22 @@ export async function defaultMindmapNode<T extends SVGGraphicsElement>(
|
||||
getNodeClasses(node)
|
||||
);
|
||||
|
||||
const baseWidth = bbox.width + 8 * halfPadding;
|
||||
const baseHeight = bbox.height + 2 * halfPadding;
|
||||
const w = bbox.width + 8 * halfPadding;
|
||||
const h = bbox.height + 2 * halfPadding;
|
||||
const rd = 5;
|
||||
|
||||
const iconConfig = getMindmapIconConfig('default');
|
||||
const dimensions = calculateMindmapDimensions(
|
||||
node,
|
||||
bbox,
|
||||
baseWidth,
|
||||
baseHeight,
|
||||
halfPadding,
|
||||
iconConfig
|
||||
);
|
||||
|
||||
const w = dimensions.width;
|
||||
const h = dimensions.height;
|
||||
|
||||
node.width = w;
|
||||
node.height = h;
|
||||
|
||||
label.attr('transform', `translate(${dimensions.labelOffset.x}, ${dimensions.labelOffset.y})`);
|
||||
|
||||
const RD = 5;
|
||||
const rectPath = `M${-w / 2} ${h / 2 - RD}
|
||||
v${-h + 2 * RD}
|
||||
q0,-${RD} ${RD},-${RD}
|
||||
h${w - 2 * RD}
|
||||
q${RD},0 ${RD},${RD}
|
||||
v${h - 2 * RD}
|
||||
q0,${RD} -${RD},${RD}
|
||||
h${-w + 2 * RD}
|
||||
q-${RD},0 -${RD},-${RD}
|
||||
Z`;
|
||||
const rectPath = `
|
||||
M${-w / 2} ${h / 2 - rd}
|
||||
v${-h + 2 * rd}
|
||||
q0,-${rd} ${rd},-${rd}
|
||||
h${w - 2 * rd}
|
||||
q${rd},0 ${rd},${rd}
|
||||
v${h - 2 * rd}
|
||||
q0,${rd} -${rd},${rd}
|
||||
h${-w + 2 * rd}
|
||||
q-${rd},0 -${rd},-${rd}
|
||||
Z
|
||||
`;
|
||||
|
||||
const bg = shapeSvg
|
||||
.append('path')
|
||||
@@ -70,12 +49,9 @@ export async function defaultMindmapNode<T extends SVGGraphicsElement>(
|
||||
.attr('x2', w / 2)
|
||||
.attr('y2', h / 2);
|
||||
|
||||
label.attr('transform', `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);
|
||||
shapeSvg.append(() => label.node());
|
||||
|
||||
if (node.icon) {
|
||||
await insertMindmapIcon(shapeSvg, node, iconConfig);
|
||||
}
|
||||
|
||||
updateNodeBounds(node, bg);
|
||||
node.calcIntersect = function (bounds: Bounds, point: Point) {
|
||||
return intersect.rect(bounds, point);
|
||||
|
@@ -15,21 +15,11 @@ export async function drawRect<T extends SVGGraphicsElement>(
|
||||
) {
|
||||
const { labelStyles, nodeStyles } = styles2String(node);
|
||||
node.labelStyle = labelStyles;
|
||||
|
||||
const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
// console.log('IPI labelStyles:', labelStyles);
|
||||
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
|
||||
const totalWidth = Math.max(bbox.width + options.labelPaddingX * 2, node?.width || 0);
|
||||
const totalHeight = Math.max(bbox.height + options.labelPaddingY * 2, node?.height || 0);
|
||||
|
||||
node.width = totalWidth;
|
||||
node.height = totalHeight;
|
||||
|
||||
const labelXOffset = -bbox.width / 2;
|
||||
|
||||
const labelYOffset = -bbox.height / 2;
|
||||
if (node.icon) {
|
||||
label.attr('transform', `translate(${labelXOffset}, ${labelYOffset})`);
|
||||
}
|
||||
const x = -totalWidth / 2;
|
||||
const y = -totalHeight / 2;
|
||||
|
||||
|
@@ -26,22 +26,10 @@ export const createHexagonPathD = (
|
||||
export async function hexagon<T extends SVGGraphicsElement>(parent: D3Selection<T>, node: Node) {
|
||||
const { labelStyles, nodeStyles } = styles2String(node);
|
||||
node.labelStyle = labelStyles;
|
||||
|
||||
const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
|
||||
const h = bbox.height + (node.padding ?? 0);
|
||||
const w = bbox.width + (node.padding ?? 0) * 2.5;
|
||||
|
||||
node.width = w;
|
||||
node.height = h;
|
||||
|
||||
const labelXOffset = -bbox.width / 2;
|
||||
|
||||
const labelYOffset = -bbox.height / 2;
|
||||
|
||||
if (node.icon) {
|
||||
label.attr('transform', `translate(${labelXOffset}, ${labelYOffset})`);
|
||||
}
|
||||
const { cssStyles } = node;
|
||||
// @ts-expect-error -- Passing a D3.Selection seems to work for some reason
|
||||
const rc = rough.svg(shapeSvg);
|
||||
@@ -86,6 +74,9 @@ export async function hexagon<T extends SVGGraphicsElement>(parent: D3Selection<
|
||||
polygon.selectChildren('path').attr('style', nodeStyles);
|
||||
}
|
||||
|
||||
node.width = w;
|
||||
node.height = h;
|
||||
|
||||
updateNodeBounds(node, polygon);
|
||||
|
||||
node.intersect = function (point) {
|
||||
|
@@ -1,57 +1,13 @@
|
||||
import type { Node } from '../../types.js';
|
||||
import { circle } from './circle.js';
|
||||
import type { Node, MindmapOptions } from '../../types.js';
|
||||
import type { D3Selection } from '../../../types.js';
|
||||
import { getNodeClasses, labelHelper, updateNodeBounds } from './util.js';
|
||||
import { styles2String } from './handDrawnShapeStyles.js';
|
||||
import intersect from '../intersect/index.js';
|
||||
import {
|
||||
getMindmapIconConfig,
|
||||
calculateMindmapDimensions,
|
||||
insertMindmapIcon,
|
||||
} from '../../../diagrams/mindmap/mindmapIconHelper.js';
|
||||
|
||||
export async function mindmapCircle<T extends SVGGraphicsElement>(
|
||||
parent: D3Selection<T>,
|
||||
node: Node
|
||||
) {
|
||||
const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
const halfPadding = (node.padding ?? 0) / 2;
|
||||
|
||||
const iconConfig = getMindmapIconConfig('circle');
|
||||
const baseRadius = bbox.width / 2 + halfPadding;
|
||||
const baseDiameter = baseRadius * 2;
|
||||
|
||||
const dimensions = calculateMindmapDimensions(
|
||||
node,
|
||||
bbox,
|
||||
baseDiameter,
|
||||
baseDiameter,
|
||||
halfPadding,
|
||||
iconConfig
|
||||
);
|
||||
|
||||
const radius = dimensions.width / 2;
|
||||
node.width = dimensions.width;
|
||||
node.height = dimensions.height;
|
||||
|
||||
label.attr('transform', `translate(${dimensions.labelOffset.x}, ${dimensions.labelOffset.y})`);
|
||||
|
||||
const circle = shapeSvg
|
||||
.insert('circle', ':first-child')
|
||||
.attr('r', radius)
|
||||
.attr('class', 'basic label-container')
|
||||
.attr('style', styles2String(node).nodeStyles);
|
||||
|
||||
shapeSvg.append(() => label.node());
|
||||
|
||||
if (node.icon) {
|
||||
await insertMindmapIcon(shapeSvg, node, iconConfig);
|
||||
}
|
||||
|
||||
updateNodeBounds(node, circle);
|
||||
|
||||
node.intersect = function (point) {
|
||||
return intersect.circle(node, radius, point);
|
||||
};
|
||||
|
||||
return shapeSvg;
|
||||
const options = {
|
||||
padding: node.padding ?? 0,
|
||||
} as MindmapOptions;
|
||||
return circle(parent, node, options);
|
||||
}
|
||||
|
@@ -2,8 +2,8 @@ import { labelHelper, updateNodeBounds, getNodeClasses, createPathFromPoints } f
|
||||
import intersect from '../intersect/index.js';
|
||||
import type { Node } from '../../types.js';
|
||||
import { styles2String, userNodeOverrides } from './handDrawnShapeStyles.js';
|
||||
import type { D3Selection } from '../../../types.js';
|
||||
import rough from 'roughjs';
|
||||
import type { D3Selection } from '../../../types.js';
|
||||
|
||||
/**
|
||||
* Generates evenly spaced points along an elliptical arc connecting two points.
|
||||
@@ -91,20 +91,13 @@ export async function roundedRect<T extends SVGGraphicsElement>(
|
||||
) {
|
||||
const { labelStyles, nodeStyles } = styles2String(node);
|
||||
node.labelStyle = labelStyles;
|
||||
const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));
|
||||
|
||||
const labelPaddingX = node?.padding ?? 0;
|
||||
const labelPaddingY = node?.padding ?? 0;
|
||||
|
||||
const w = (node?.width ? node?.width : bbox.width) + labelPaddingX * 2;
|
||||
const h = (node?.height ? node?.height : bbox.height) + labelPaddingY * 2;
|
||||
|
||||
const labelXOffset = -bbox.width / 2;
|
||||
|
||||
if (node.icon) {
|
||||
label.attr('transform', `translate(${labelXOffset}, ${-bbox.height / 2})`);
|
||||
}
|
||||
|
||||
const radius = node.radius || 5;
|
||||
const taper = node.taper || 5; // Taper width for the rounded corners
|
||||
const { cssStyles } = node;
|
||||
|
@@ -84,7 +84,6 @@ interface BaseNode {
|
||||
radius?: number;
|
||||
taper?: number;
|
||||
stroke?: string;
|
||||
section?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
|
275
pnpm-lock.yaml
generated
275
pnpm-lock.yaml
generated
@@ -27,13 +27,13 @@ importers:
|
||||
version: 2.29.7(@types/node@22.18.6)
|
||||
'@cspell/eslint-plugin':
|
||||
specifier: ^8.19.4
|
||||
version: 8.19.4(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 8.19.4(eslint@9.37.0(jiti@2.5.1))
|
||||
'@cypress/code-coverage':
|
||||
specifier: ^3.14.6
|
||||
version: 3.14.6(@babel/core@7.28.4)(@babel/preset-env@7.28.3(@babel/core@7.28.4))(babel-loader@10.0.0(@babel/core@7.28.4)(webpack@5.101.3(esbuild@0.25.10)))(cypress@14.5.4)(webpack@5.101.3(esbuild@0.25.10))
|
||||
'@eslint/js':
|
||||
specifier: ^9.26.0
|
||||
version: 9.35.0
|
||||
specifier: ^9.37.0
|
||||
version: 9.37.0
|
||||
'@rollup/plugin-typescript':
|
||||
specifier: ^12.1.4
|
||||
version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.7.3)
|
||||
@@ -104,32 +104,32 @@ importers:
|
||||
specifier: ^0.25.10
|
||||
version: 0.25.10
|
||||
eslint:
|
||||
specifier: ^9.26.0
|
||||
version: 9.35.0(jiti@2.5.1)
|
||||
specifier: ^9.37.0
|
||||
version: 9.37.0(jiti@2.5.1)
|
||||
eslint-config-prettier:
|
||||
specifier: ^10.1.8
|
||||
version: 10.1.8(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 10.1.8(eslint@9.37.0(jiti@2.5.1))
|
||||
eslint-plugin-cypress:
|
||||
specifier: ^4.3.0
|
||||
version: 4.3.0(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 4.3.0(eslint@9.37.0(jiti@2.5.1))
|
||||
eslint-plugin-html:
|
||||
specifier: ^8.1.3
|
||||
version: 8.1.3
|
||||
eslint-plugin-jest:
|
||||
specifier: ^28.14.0
|
||||
version: 28.14.0(@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(jest@30.1.3(@types/node@22.18.6))(typescript@5.7.3)
|
||||
version: 28.14.0(@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(jest@30.1.3(@types/node@22.18.6))(typescript@5.7.3)
|
||||
eslint-plugin-jsdoc:
|
||||
specifier: ^50.8.0
|
||||
version: 50.8.0(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 50.8.0(eslint@9.37.0(jiti@2.5.1))
|
||||
eslint-plugin-json:
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1
|
||||
eslint-plugin-lodash:
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 8.0.0(eslint@9.37.0(jiti@2.5.1))
|
||||
eslint-plugin-markdown:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 5.1.0(eslint@9.37.0(jiti@2.5.1))
|
||||
eslint-plugin-no-only-tests:
|
||||
specifier: ^3.3.0
|
||||
version: 3.3.0
|
||||
@@ -138,7 +138,7 @@ importers:
|
||||
version: 0.4.0
|
||||
eslint-plugin-unicorn:
|
||||
specifier: ^59.0.1
|
||||
version: 59.0.1(eslint@9.35.0(jiti@2.5.1))
|
||||
version: 59.0.1(eslint@9.37.0(jiti@2.5.1))
|
||||
express:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0
|
||||
@@ -203,8 +203,8 @@ importers:
|
||||
specifier: ~5.7.3
|
||||
version: 5.7.3
|
||||
typescript-eslint:
|
||||
specifier: ^8.38.0
|
||||
version: 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
specifier: ^8.45.0
|
||||
version: 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
vite:
|
||||
specifier: ^7.0.7
|
||||
version: 7.1.5(@types/node@22.18.6)(jiti@2.5.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)
|
||||
@@ -2161,24 +2161,24 @@ packages:
|
||||
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/config-helpers@0.3.1':
|
||||
resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==}
|
||||
'@eslint/config-helpers@0.4.0':
|
||||
resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/core@0.13.0':
|
||||
resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/core@0.15.2':
|
||||
resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
|
||||
'@eslint/core@0.16.0':
|
||||
resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/eslintrc@3.3.1':
|
||||
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/js@9.35.0':
|
||||
resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==}
|
||||
'@eslint/js@9.37.0':
|
||||
resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/object-schema@2.1.6':
|
||||
@@ -2189,8 +2189,8 @@ packages:
|
||||
resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/plugin-kit@0.3.5':
|
||||
resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
|
||||
'@eslint/plugin-kit@0.4.0':
|
||||
resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@fastify/ajv-compiler@3.6.0':
|
||||
@@ -3242,16 +3242,16 @@ packages:
|
||||
'@types/yauzl@2.10.3':
|
||||
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.43.0':
|
||||
resolution: {integrity: sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ==}
|
||||
'@typescript-eslint/eslint-plugin@8.45.0':
|
||||
resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.43.0
|
||||
'@typescript-eslint/parser': ^8.45.0
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/parser@8.43.0':
|
||||
resolution: {integrity: sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==}
|
||||
'@typescript-eslint/parser@8.45.0':
|
||||
resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -3263,18 +3263,34 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/project-service@8.45.0':
|
||||
resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/scope-manager@8.43.0':
|
||||
resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/scope-manager@8.45.0':
|
||||
resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.43.0':
|
||||
resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/type-utils@8.43.0':
|
||||
resolution: {integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==}
|
||||
'@typescript-eslint/tsconfig-utils@8.45.0':
|
||||
resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/type-utils@8.45.0':
|
||||
resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -3284,12 +3300,22 @@ packages:
|
||||
resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/types@8.45.0':
|
||||
resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.43.0':
|
||||
resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.45.0':
|
||||
resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/utils@8.43.0':
|
||||
resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
@@ -3297,10 +3323,21 @@ packages:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/utils@8.45.0':
|
||||
resolution: {integrity: sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.43.0':
|
||||
resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.45.0':
|
||||
resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@ungap/structured-clone@1.3.0':
|
||||
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
||||
|
||||
@@ -5439,8 +5476,8 @@ packages:
|
||||
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
eslint@9.35.0:
|
||||
resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==}
|
||||
eslint@9.37.0:
|
||||
resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -9145,8 +9182,8 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x
|
||||
|
||||
typescript-eslint@8.43.0:
|
||||
resolution: {integrity: sha512-FyRGJKUGvcFekRRcBKFBlAhnp4Ng8rhe8tuvvkR9OiU0gfd4vyvTRQHEckO6VDlH57jbeUQem2IpqPq9kLJH+w==}
|
||||
typescript-eslint@8.45.0:
|
||||
resolution: {integrity: sha512-qzDmZw/Z5beNLUrXfd0HIW6MzIaAV5WNDxmMs9/3ojGOpYavofgNAAD/nC6tGV2PczIi0iw8vot2eAe/sBn7zg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -11554,12 +11591,12 @@ snapshots:
|
||||
'@cspell/url': 9.2.1
|
||||
import-meta-resolve: 4.2.0
|
||||
|
||||
'@cspell/eslint-plugin@8.19.4(eslint@9.35.0(jiti@2.5.1))':
|
||||
'@cspell/eslint-plugin@8.19.4(eslint@9.37.0(jiti@2.5.1))':
|
||||
dependencies:
|
||||
'@cspell/cspell-types': 8.19.4
|
||||
'@cspell/url': 8.19.4
|
||||
cspell-lib: 8.19.4
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
synckit: 0.11.11
|
||||
|
||||
'@cspell/filetypes@8.19.4': {}
|
||||
@@ -11856,9 +11893,9 @@ snapshots:
|
||||
'@esbuild/win32-x64@0.25.10':
|
||||
optional: true
|
||||
|
||||
'@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))':
|
||||
'@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.5.1))':
|
||||
dependencies:
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/regexpp@4.12.1': {}
|
||||
@@ -11871,13 +11908,15 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/config-helpers@0.3.1': {}
|
||||
'@eslint/config-helpers@0.4.0':
|
||||
dependencies:
|
||||
'@eslint/core': 0.16.0
|
||||
|
||||
'@eslint/core@0.13.0':
|
||||
dependencies:
|
||||
'@types/json-schema': 7.0.15
|
||||
|
||||
'@eslint/core@0.15.2':
|
||||
'@eslint/core@0.16.0':
|
||||
dependencies:
|
||||
'@types/json-schema': 7.0.15
|
||||
|
||||
@@ -11895,7 +11934,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/js@9.35.0': {}
|
||||
'@eslint/js@9.37.0': {}
|
||||
|
||||
'@eslint/object-schema@2.1.6': {}
|
||||
|
||||
@@ -11904,9 +11943,9 @@ snapshots:
|
||||
'@eslint/core': 0.13.0
|
||||
levn: 0.4.1
|
||||
|
||||
'@eslint/plugin-kit@0.3.5':
|
||||
'@eslint/plugin-kit@0.4.0':
|
||||
dependencies:
|
||||
'@eslint/core': 0.15.2
|
||||
'@eslint/core': 0.16.0
|
||||
levn: 0.4.1
|
||||
|
||||
'@fastify/ajv-compiler@3.6.0':
|
||||
@@ -13119,15 +13158,15 @@ snapshots:
|
||||
'@types/node': 22.18.6
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
'@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/scope-manager': 8.43.0
|
||||
'@typescript-eslint/type-utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/visitor-keys': 8.43.0
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
'@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/scope-manager': 8.45.0
|
||||
'@typescript-eslint/type-utils': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/visitor-keys': 8.45.0
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
graphemer: 1.4.0
|
||||
ignore: 7.0.5
|
||||
natural-compare: 1.4.0
|
||||
@@ -13136,14 +13175,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
'@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.43.0
|
||||
'@typescript-eslint/types': 8.43.0
|
||||
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.7.3)
|
||||
'@typescript-eslint/visitor-keys': 8.43.0
|
||||
'@typescript-eslint/scope-manager': 8.45.0
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.7.3)
|
||||
'@typescript-eslint/visitor-keys': 8.45.0
|
||||
debug: 4.4.3(supports-color@8.1.1)
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -13157,22 +13196,40 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/project-service@8.45.0(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.7.3)
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
debug: 4.4.3(supports-color@8.1.1)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@8.43.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.43.0
|
||||
'@typescript-eslint/visitor-keys': 8.43.0
|
||||
|
||||
'@typescript-eslint/scope-manager@8.45.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
'@typescript-eslint/visitor-keys': 8.45.0
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.7.3)':
|
||||
dependencies:
|
||||
typescript: 5.7.3
|
||||
|
||||
'@typescript-eslint/type-utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
'@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.43.0
|
||||
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
typescript: 5.7.3
|
||||
|
||||
'@typescript-eslint/type-utils@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
debug: 4.4.3(supports-color@8.1.1)
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
ts-api-utils: 2.1.0(typescript@5.7.3)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
@@ -13180,6 +13237,8 @@ snapshots:
|
||||
|
||||
'@typescript-eslint/types@8.43.0': {}
|
||||
|
||||
'@typescript-eslint/types@8.45.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.43.0(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/project-service': 8.43.0(typescript@5.7.3)
|
||||
@@ -13196,13 +13255,40 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
'@typescript-eslint/typescript-estree@8.45.0(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
||||
'@typescript-eslint/project-service': 8.45.0(typescript@5.7.3)
|
||||
'@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.7.3)
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
'@typescript-eslint/visitor-keys': 8.45.0
|
||||
debug: 4.4.3(supports-color@8.1.1)
|
||||
fast-glob: 3.3.3
|
||||
is-glob: 4.0.3
|
||||
minimatch: 9.0.5
|
||||
semver: 7.7.2
|
||||
ts-api-utils: 2.1.0(typescript@5.7.3)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.43.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
|
||||
'@typescript-eslint/scope-manager': 8.43.0
|
||||
'@typescript-eslint/types': 8.43.0
|
||||
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.7.3)
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
|
||||
'@typescript-eslint/scope-manager': 8.45.0
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.7.3)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -13212,6 +13298,11 @@ snapshots:
|
||||
'@typescript-eslint/types': 8.43.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.45.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.45.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
|
||||
'@ungap/structured-clone@1.3.0': {}
|
||||
|
||||
'@unocss/astro@66.5.1(vite@7.1.5(@types/node@22.18.6)(jiti@2.5.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))':
|
||||
@@ -15688,38 +15779,38 @@ snapshots:
|
||||
optionalDependencies:
|
||||
source-map: 0.6.1
|
||||
|
||||
eslint-config-prettier@10.1.8(eslint@9.35.0(jiti@2.5.1)):
|
||||
eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.5.1)):
|
||||
dependencies:
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
|
||||
eslint-plugin-cypress@4.3.0(eslint@9.35.0(jiti@2.5.1)):
|
||||
eslint-plugin-cypress@4.3.0(eslint@9.37.0(jiti@2.5.1)):
|
||||
dependencies:
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
globals: 15.15.0
|
||||
|
||||
eslint-plugin-html@8.1.3:
|
||||
dependencies:
|
||||
htmlparser2: 10.0.0
|
||||
|
||||
eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(jest@30.1.3(@types/node@22.18.6))(typescript@5.7.3):
|
||||
eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(jest@30.1.3(@types/node@22.18.6))(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
'@typescript-eslint/utils': 8.43.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
jest: 30.1.3(@types/node@22.18.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
eslint-plugin-jsdoc@50.8.0(eslint@9.35.0(jiti@2.5.1)):
|
||||
eslint-plugin-jsdoc@50.8.0(eslint@9.37.0(jiti@2.5.1)):
|
||||
dependencies:
|
||||
'@es-joy/jsdoccomment': 0.50.2
|
||||
are-docs-informative: 0.0.2
|
||||
comment-parser: 1.4.1
|
||||
debug: 4.4.3(supports-color@8.1.1)
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
espree: 10.4.0
|
||||
esquery: 1.6.0
|
||||
parse-imports-exports: 0.2.4
|
||||
@@ -15733,14 +15824,14 @@ snapshots:
|
||||
lodash: 4.17.21
|
||||
vscode-json-languageservice: 4.2.1
|
||||
|
||||
eslint-plugin-lodash@8.0.0(eslint@9.35.0(jiti@2.5.1)):
|
||||
eslint-plugin-lodash@8.0.0(eslint@9.37.0(jiti@2.5.1)):
|
||||
dependencies:
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
lodash: 4.17.21
|
||||
|
||||
eslint-plugin-markdown@5.1.0(eslint@9.35.0(jiti@2.5.1)):
|
||||
eslint-plugin-markdown@5.1.0(eslint@9.37.0(jiti@2.5.1)):
|
||||
dependencies:
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
mdast-util-from-markdown: 0.8.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -15752,15 +15843,15 @@ snapshots:
|
||||
'@microsoft/tsdoc': 0.15.1
|
||||
'@microsoft/tsdoc-config': 0.17.1
|
||||
|
||||
eslint-plugin-unicorn@59.0.1(eslint@9.35.0(jiti@2.5.1)):
|
||||
eslint-plugin-unicorn@59.0.1(eslint@9.37.0(jiti@2.5.1)):
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
|
||||
'@eslint/plugin-kit': 0.2.8
|
||||
ci-info: 4.3.0
|
||||
clean-regexp: 1.0.0
|
||||
core-js-compat: 3.45.1
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
esquery: 1.6.0
|
||||
find-up-simple: 1.0.1
|
||||
globals: 16.4.0
|
||||
@@ -15787,16 +15878,16 @@ snapshots:
|
||||
|
||||
eslint-visitor-keys@4.2.1: {}
|
||||
|
||||
eslint@9.35.0(jiti@2.5.1):
|
||||
eslint@9.37.0(jiti@2.5.1):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@eslint/config-array': 0.21.0
|
||||
'@eslint/config-helpers': 0.3.1
|
||||
'@eslint/core': 0.15.2
|
||||
'@eslint/config-helpers': 0.4.0
|
||||
'@eslint/core': 0.16.0
|
||||
'@eslint/eslintrc': 3.3.1
|
||||
'@eslint/js': 9.35.0
|
||||
'@eslint/plugin-kit': 0.3.5
|
||||
'@eslint/js': 9.37.0
|
||||
'@eslint/plugin-kit': 0.4.0
|
||||
'@humanfs/node': 0.16.7
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@humanwhocodes/retry': 0.4.3
|
||||
@@ -20266,13 +20357,13 @@ snapshots:
|
||||
typescript: 5.7.3
|
||||
yaml: 2.8.1
|
||||
|
||||
typescript-eslint@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3):
|
||||
typescript-eslint@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
eslint: 9.35.0(jiti@2.5.1)
|
||||
'@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.7.3)
|
||||
'@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.7.3)
|
||||
eslint: 9.37.0(jiti@2.5.1)
|
||||
typescript: 5.7.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
Reference in New Issue
Block a user