From 7e23f984e65f9b503f5a7a765b91ff88d590d178 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Thu, 10 Jul 2025 20:21:27 +0530 Subject: [PATCH 01/32] Updated code to use class based approach --- packages/mermaid/src/diagrams/treemap/db.ts | 174 +++++++++--------- .../mermaid/src/diagrams/treemap/diagram.ts | 6 +- .../mermaid/src/diagrams/treemap/parser.ts | 8 +- 3 files changed, 95 insertions(+), 93 deletions(-) diff --git a/packages/mermaid/src/diagrams/treemap/db.ts b/packages/mermaid/src/diagrams/treemap/db.ts index 6a68857f7..4aa608e9c 100644 --- a/packages/mermaid/src/diagrams/treemap/db.ts +++ b/packages/mermaid/src/diagrams/treemap/db.ts @@ -1,10 +1,10 @@ -import { getConfig as commonGetConfig } from '../../config.js'; -import DEFAULT_CONFIG from '../../defaultConfig.js'; -import type { DiagramStyleClassDef } from '../../diagram-api/types.js'; -import { isLabelStyle } from '../../rendering-util/rendering-elements/shapes/handDrawnShapeStyles.js'; - -import { cleanAndMerge } from '../../utils.js'; +import type { DiagramDB } from '../../diagram-api/types.js'; import { ImperativeState } from '../../utils/imperativeState.js'; +import type { TreemapData, TreemapDiagramConfig, TreemapNode } from './types.js'; +import DEFAULT_CONFIG from '../../defaultConfig.js'; +import { getConfig as commonGetConfig } from '../../config.js'; +import { cleanAndMerge } from '../../utils.js'; +import { isLabelStyle } from '../../rendering-util/rendering-elements/shapes/handDrawnShapeStyles.js'; import { clear as commonClear, getAccDescription, @@ -14,99 +14,99 @@ import { setAccTitle, setDiagramTitle, } from '../common/commonDb.js'; -import type { TreemapDB, TreemapData, TreemapDiagramConfig, TreemapNode } from './types.js'; +export class TreeMapDB implements DiagramDB { + private data: TreemapData; + private state: ImperativeState; -const defaultTreemapData: TreemapData = { - nodes: [], - levels: new Map(), - outerNodes: [], - classes: new Map(), -}; + constructor() { + this.data = { + nodes: [], + levels: new Map(), + outerNodes: [], + classes: new Map(), + }; -const state = new ImperativeState(() => structuredClone(defaultTreemapData)); - -const getConfig = (): Required => { - // Use type assertion with unknown as intermediate step - const defaultConfig = DEFAULT_CONFIG as unknown as { treemap: Required }; - const userConfig = commonGetConfig() as unknown as { treemap?: Partial }; - - return cleanAndMerge({ - ...defaultConfig.treemap, - ...(userConfig.treemap ?? {}), - }) as Required; -}; - -const getNodes = (): TreemapNode[] => state.records.nodes; - -const addNode = (node: TreemapNode, level: number) => { - const data = state.records; - data.nodes.push(node); - data.levels.set(node, level); - - if (level === 0) { - data.outerNodes.push(node); + this.state = new ImperativeState(() => structuredClone(this.data)); } - // Set the root node if this is a level 0 node and we don't have a root yet - if (level === 0 && !data.root) { - data.root = node; + public getNodes() { + return this.state.records.nodes; } -}; -const getRoot = (): TreemapNode | undefined => ({ name: '', children: state.records.outerNodes }); + public getConfig() { + // Use type assertion with unknown as intermediate step + const defaultConfig = DEFAULT_CONFIG as unknown as { treemap: Required }; + const userConfig = commonGetConfig() as unknown as { treemap?: Partial }; -const addClass = (id: string, _style: string) => { - const classes = state.records.classes; - const styleClass = classes.get(id) ?? { id, styles: [], textStyles: [] }; - classes.set(id, styleClass); + return cleanAndMerge({ + ...defaultConfig.treemap, + ...(userConfig.treemap ?? {}), + }) as Required; + } - const styles = _style.replace(/\\,/g, '§§§').replace(/,/g, ';').replace(/§§§/g, ',').split(';'); + public addNode(node: TreemapNode, level: number) { + const data = this.state.records; + data.nodes.push(node); + data.levels.set(node, level); - if (styles) { - styles.forEach((s) => { - if (isLabelStyle(s)) { - if (styleClass?.textStyles) { - styleClass.textStyles.push(s); - } else { - styleClass.textStyles = [s]; + if (level === 0) { + data.outerNodes.push(node); + } + + // Set the root node if this is a level 0 node and we don't have a root yet + if (level === 0 && !data.root) { + data.root = node; + } + } + + public getRoot() { + return { name: '', children: this.state.records.outerNodes }; + } + + public addClass(id: string, _style: string) { + // const classes = this.state.records.classes; + const styleClass = this.state.records.classes.get(id) ?? { id, styles: [], textStyles: [] }; + this.state.records.classes.set(id, styleClass); + + const styles = _style.replace(/\\,/g, '§§§').replace(/,/g, ';').replace(/§§§/g, ',').split(';'); + + if (styles) { + styles.forEach((s) => { + if (isLabelStyle(s)) { + if (styleClass?.textStyles) { + styleClass.textStyles.push(s); + } else { + styleClass.textStyles = [s]; + } } - } - if (styleClass?.styles) { - styleClass.styles.push(s); - } else { - styleClass.styles = [s]; - } - }); + if (styleClass?.styles) { + styleClass.styles.push(s); + } else { + styleClass.styles = [s]; + } + }); + } + + this.state.records.classes.set(id, styleClass); } - classes.set(id, styleClass); -}; -const getClasses = (): Map => { - return state.records.classes; -}; + public getClasses() { + return this.state.records.classes; + } -const getStylesForClass = (classSelector: string): string[] => { - return state.records.classes.get(classSelector)?.styles ?? []; -}; + public getStylesForClass(classSelector: string): string[] { + return this.state.records.classes.get(classSelector)?.styles ?? []; + } -const clear = () => { - commonClear(); - state.reset(); -}; + public clear = () => { + commonClear(); + this.state.reset(); + }; -export const db: TreemapDB = { - getNodes, - addNode, - getRoot, - getConfig, - clear, - setAccTitle, - getAccTitle, - setDiagramTitle, - getDiagramTitle, - getAccDescription, - setAccDescription, - addClass, - getClasses, - getStylesForClass, -}; + public setAccTitle = setAccTitle; + public setAccDescription = setAccDescription; + public setDiagramTitle = setDiagramTitle; + public getAccTitle = getAccTitle; + public getAccDescription = getAccDescription; + public getDiagramTitle = getDiagramTitle; +} diff --git a/packages/mermaid/src/diagrams/treemap/diagram.ts b/packages/mermaid/src/diagrams/treemap/diagram.ts index dd599174e..2f8ff92f3 100644 --- a/packages/mermaid/src/diagrams/treemap/diagram.ts +++ b/packages/mermaid/src/diagrams/treemap/diagram.ts @@ -1,12 +1,14 @@ import type { DiagramDefinition } from '../../diagram-api/types.js'; -import { db } from './db.js'; +import { TreeMapDB } from './db.js'; import { parser } from './parser.js'; import { renderer } from './renderer.js'; import styles from './styles.js'; export const diagram: DiagramDefinition = { parser, - db, + get db() { + return new TreeMapDB(); + }, renderer, styles, }; diff --git a/packages/mermaid/src/diagrams/treemap/parser.ts b/packages/mermaid/src/diagrams/treemap/parser.ts index 82efb5911..0ed452f45 100644 --- a/packages/mermaid/src/diagrams/treemap/parser.ts +++ b/packages/mermaid/src/diagrams/treemap/parser.ts @@ -2,15 +2,14 @@ import { parse } from '@mermaid-js/parser'; import type { ParserDefinition } from '../../diagram-api/types.js'; import { log } from '../../logger.js'; import { populateCommonDb } from '../common/populateCommonDb.js'; -import { db } from './db.js'; -import type { TreemapNode, TreemapAst } from './types.js'; +import type { TreemapNode, TreemapAst, TreemapDB } from './types.js'; import { buildHierarchy } from './utils.js'; /** * Populates the database with data from the Treemap AST * @param ast - The Treemap AST */ -const populate = (ast: TreemapAst) => { +const populate = (ast: TreemapAst, db: TreemapDB) => { // We need to bypass the type checking for populateCommonDb // eslint-disable-next-line @typescript-eslint/no-explicit-any populateCommonDb(ast as any, db); @@ -84,6 +83,7 @@ const getItemName = (item: { name?: string | number }): string => { }; export const parser: ParserDefinition = { + parser: { yy: undefined }, parse: async (text: string): Promise => { try { // Use a generic parse that accepts any diagram type @@ -91,7 +91,7 @@ export const parser: ParserDefinition = { const parseFunc = parse as (diagramType: string, text: string) => Promise; const ast = await parseFunc('treemap', text); log.debug('Treemap AST:', ast); - populate(ast); + populate(ast, parser.parser?.yy as TreemapDB); } catch (error) { log.error('Error parsing treemap:', error); throw error; From 90707e806262e826e672fc607ced9e2db25a7e8a Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Thu, 10 Jul 2025 20:25:46 +0530 Subject: [PATCH 02/32] fix(parser): initialize parser.yy as TreemapDB --- packages/mermaid/src/diagrams/treemap/parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/treemap/parser.ts b/packages/mermaid/src/diagrams/treemap/parser.ts index 0ed452f45..ad9d748d8 100644 --- a/packages/mermaid/src/diagrams/treemap/parser.ts +++ b/packages/mermaid/src/diagrams/treemap/parser.ts @@ -83,7 +83,7 @@ const getItemName = (item: { name?: string | number }): string => { }; export const parser: ParserDefinition = { - parser: { yy: undefined }, + parser: { yy: {} as TreemapDB }, parse: async (text: string): Promise => { try { // Use a generic parse that accepts any diagram type From d90634bf2b09e586b055729e07e9a1a31b21827c Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Thu, 10 Jul 2025 20:39:52 +0530 Subject: [PATCH 03/32] added changeset --- .changeset/pretty-falcons-say.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/pretty-falcons-say.md diff --git a/.changeset/pretty-falcons-say.md b/.changeset/pretty-falcons-say.md new file mode 100644 index 000000000..36f10713a --- /dev/null +++ b/.changeset/pretty-falcons-say.md @@ -0,0 +1,5 @@ +--- +'mermaid': chore +--- + +chore: updated treemapdb to use class based approach From 9dfbf1166df965293e2b87b777ed5a3635d1f583 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Fri, 11 Jul 2025 14:04:30 +0530 Subject: [PATCH 04/32] Refactors treemap DB to class-based state management on-behalf-of: @MermaidChart shubham-mermaid@mermaidchart.com --- .changeset/pretty-falcons-say.md | 4 +- packages/mermaid/src/diagrams/treemap/db.ts | 67 ++++++++------------- 2 files changed, 27 insertions(+), 44 deletions(-) diff --git a/.changeset/pretty-falcons-say.md b/.changeset/pretty-falcons-say.md index 36f10713a..05929efb0 100644 --- a/.changeset/pretty-falcons-say.md +++ b/.changeset/pretty-falcons-say.md @@ -1,5 +1,5 @@ --- -'mermaid': chore +'mermaid': patch --- -chore: updated treemapdb to use class based approach +patch: updated treemapdb to use class based approach diff --git a/packages/mermaid/src/diagrams/treemap/db.ts b/packages/mermaid/src/diagrams/treemap/db.ts index 4aa608e9c..9b1571dc4 100644 --- a/packages/mermaid/src/diagrams/treemap/db.ts +++ b/packages/mermaid/src/diagrams/treemap/db.ts @@ -1,6 +1,6 @@ import type { DiagramDB } from '../../diagram-api/types.js'; -import { ImperativeState } from '../../utils/imperativeState.js'; -import type { TreemapData, TreemapDiagramConfig, TreemapNode } from './types.js'; +import type { DiagramStyleClassDef } from '../../diagram-api/types.js'; +import type { TreemapDiagramConfig, TreemapNode } from './types.js'; import DEFAULT_CONFIG from '../../defaultConfig.js'; import { getConfig as commonGetConfig } from '../../config.js'; import { cleanAndMerge } from '../../utils.js'; @@ -15,29 +15,19 @@ import { setDiagramTitle, } from '../common/commonDb.js'; export class TreeMapDB implements DiagramDB { - private data: TreemapData; - private state: ImperativeState; - - constructor() { - this.data = { - nodes: [], - levels: new Map(), - outerNodes: [], - classes: new Map(), - }; - - this.state = new ImperativeState(() => structuredClone(this.data)); - } + private nodes: TreemapNode[] = []; + private levels: Map = new Map(); + private outerNodes: TreemapNode[] = []; + private classes: Map = new Map(); + private root?: TreemapNode; public getNodes() { - return this.state.records.nodes; + return this.nodes; } public getConfig() { - // Use type assertion with unknown as intermediate step const defaultConfig = DEFAULT_CONFIG as unknown as { treemap: Required }; const userConfig = commonGetConfig() as unknown as { treemap?: Partial }; - return cleanAndMerge({ ...defaultConfig.treemap, ...(userConfig.treemap ?? {}), @@ -45,31 +35,21 @@ export class TreeMapDB implements DiagramDB { } public addNode(node: TreemapNode, level: number) { - const data = this.state.records; - data.nodes.push(node); - data.levels.set(node, level); - + this.nodes.push(node); + this.levels.set(node, level); if (level === 0) { - data.outerNodes.push(node); - } - - // Set the root node if this is a level 0 node and we don't have a root yet - if (level === 0 && !data.root) { - data.root = node; + this.outerNodes.push(node); + this.root ??= node; } } public getRoot() { - return { name: '', children: this.state.records.outerNodes }; + return { name: '', children: this.outerNodes }; } public addClass(id: string, _style: string) { - // const classes = this.state.records.classes; - const styleClass = this.state.records.classes.get(id) ?? { id, styles: [], textStyles: [] }; - this.state.records.classes.set(id, styleClass); - + const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] }; const styles = _style.replace(/\\,/g, '§§§').replace(/,/g, ';').replace(/§§§/g, ',').split(';'); - if (styles) { styles.forEach((s) => { if (isLabelStyle(s)) { @@ -86,27 +66,30 @@ export class TreeMapDB implements DiagramDB { } }); } - - this.state.records.classes.set(id, styleClass); + this.classes.set(id, styleClass); } public getClasses() { - return this.state.records.classes; + return this.classes; } public getStylesForClass(classSelector: string): string[] { - return this.state.records.classes.get(classSelector)?.styles ?? []; + return this.classes.get(classSelector)?.styles ?? []; } public clear = () => { commonClear(); - this.state.reset(); + this.nodes = []; + this.levels = new Map(); + this.outerNodes = []; + this.classes = new Map(); + this.root = undefined; }; public setAccTitle = setAccTitle; - public setAccDescription = setAccDescription; - public setDiagramTitle = setDiagramTitle; public getAccTitle = getAccTitle; - public getAccDescription = getAccDescription; + public setDiagramTitle = setDiagramTitle; public getDiagramTitle = getDiagramTitle; + public getAccDescription = getAccDescription; + public setAccDescription = setAccDescription; } From c12aea588c61e3b6b0a8f989da833d2210f01806 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Fri, 11 Jul 2025 15:16:49 +0530 Subject: [PATCH 05/32] Updated code as per suggestions on-behalf-of: @MermaidChart --- packages/mermaid/src/diagrams/treemap/parser.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/treemap/parser.ts b/packages/mermaid/src/diagrams/treemap/parser.ts index ad9d748d8..64a5855db 100644 --- a/packages/mermaid/src/diagrams/treemap/parser.ts +++ b/packages/mermaid/src/diagrams/treemap/parser.ts @@ -4,6 +4,7 @@ import { log } from '../../logger.js'; import { populateCommonDb } from '../common/populateCommonDb.js'; import type { TreemapNode, TreemapAst, TreemapDB } from './types.js'; import { buildHierarchy } from './utils.js'; +import { TreeMapDB } from './db.js'; /** * Populates the database with data from the Treemap AST @@ -83,7 +84,7 @@ const getItemName = (item: { name?: string | number }): string => { }; export const parser: ParserDefinition = { - parser: { yy: {} as TreemapDB }, + parser: { yy: new TreeMapDB() }, parse: async (text: string): Promise => { try { // Use a generic parse that accepts any diagram type @@ -91,7 +92,13 @@ export const parser: ParserDefinition = { const parseFunc = parse as (diagramType: string, text: string) => Promise; const ast = await parseFunc('treemap', text); log.debug('Treemap AST:', ast); - populate(ast, parser.parser?.yy as TreemapDB); + const db = parser.parser?.yy; + if (!(db instanceof TreeMapDB)) { + throw new Error( + 'parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.' + ); + } + populate(ast, db); } catch (error) { log.error('Error parsing treemap:', error); throw error; From ad024b01d69b818c274bd3433cceb9abb1d6c876 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Fri, 11 Jul 2025 15:18:41 +0530 Subject: [PATCH 06/32] Updated the function to use class method on-behalf-of: @Mermaid-Chart --- packages/mermaid/src/diagrams/treemap/db.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/treemap/db.ts b/packages/mermaid/src/diagrams/treemap/db.ts index 9b1571dc4..23326bc85 100644 --- a/packages/mermaid/src/diagrams/treemap/db.ts +++ b/packages/mermaid/src/diagrams/treemap/db.ts @@ -77,14 +77,14 @@ export class TreeMapDB implements DiagramDB { return this.classes.get(classSelector)?.styles ?? []; } - public clear = () => { + public clear() { commonClear(); this.nodes = []; this.levels = new Map(); this.outerNodes = []; this.classes = new Map(); this.root = undefined; - }; + } public setAccTitle = setAccTitle; public getAccTitle = getAccTitle; From 12e3d31437f9eb3283286be50eb10aded653a101 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Fri, 11 Jul 2025 16:54:56 +0530 Subject: [PATCH 07/32] Addresses type incompatibility by setting the parser database to undefined, on-behalf-of: @Mermaid-Chart --- packages/mermaid/src/diagrams/treemap/parser.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/treemap/parser.ts b/packages/mermaid/src/diagrams/treemap/parser.ts index 64a5855db..4d71ff470 100644 --- a/packages/mermaid/src/diagrams/treemap/parser.ts +++ b/packages/mermaid/src/diagrams/treemap/parser.ts @@ -84,7 +84,8 @@ const getItemName = (item: { name?: string | number }): string => { }; export const parser: ParserDefinition = { - parser: { yy: new TreeMapDB() }, + // @ts-expect-error - TreeMapDB is not assignable to DiagramDB + parser: { yy: undefined }, parse: async (text: string): Promise => { try { // Use a generic parse that accepts any diagram type From 447d1cf988138dc1a403a4a6a043bbec802f2f98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 00:55:26 +0000 Subject: [PATCH 08/32] chore(deps): update autofix-ci/action digest to 635ffb0 --- .github/workflows/autofix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 5b1066661..4d2d43408 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -42,4 +42,4 @@ jobs: working-directory: ./packages/mermaid run: pnpm run docs:build - - uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef # main + - uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 # main From 966c112eb1700a84fd3d31c83243ba4c9a316fdf Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Mon, 14 Jul 2025 14:11:06 +0530 Subject: [PATCH 09/32] prevent title from overlapping with box top border in Safari --- packages/mermaid/src/diagrams/sequence/svgDraw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index c681c9491..04ccd8a84 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -524,7 +524,7 @@ export const drawBox = function (elem, box, conf) { box.name, g, box.x, - box.y + (box.textMaxHeight || 0) / 2, + box.y + conf.boxTextMargin + (box.textMaxHeight || 0) / 2, box.width, 0, { class: 'text' }, From 3e3ae089305e1c7b9948b9e149eba6854fe7f2d6 Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Mon, 14 Jul 2025 14:17:00 +0530 Subject: [PATCH 10/32] add changeset --- .changeset/tangy-ghosts-watch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tangy-ghosts-watch.md diff --git a/.changeset/tangy-ghosts-watch.md b/.changeset/tangy-ghosts-watch.md new file mode 100644 index 000000000..9d69de4d0 --- /dev/null +++ b/.changeset/tangy-ghosts-watch.md @@ -0,0 +1,5 @@ +--- +'mermaid': patch +--- + +fix: adjust sequence diagram title positioning to prevent overlap with top border in Safari From 4145879003920cd54f602579772bc09f8fd875ec Mon Sep 17 00:00:00 2001 From: quilicicf Date: Wed, 28 May 2025 15:20:08 +0200 Subject: [PATCH 11/32] test(refactor): Use real-ish rendering instead of heavy mocking in unit tests * Creates a utility method `jsdomIt` that overrides `it` from `vitest` and fakes a browser environment by : * Creating a DOM with `jsdom` (and `canvas`) * Adding (for the duration of the test) that DOM's `window` and `document` on `global` * Monkey-patching DOM methods that require a rendering engine (`Element.getBBox` & `Element.getComputedLength`) * Removes all d3 mocking since it can now work normally in `jsdomIt` tests * Re-writes existing rendering tests to : * Use `jsdomIt` * Get rid of most of the involved mocking * Run `expect` calls on the generated SVG instead Inspired by d3's own test code mocking : https://github.com/d3/d3-selection/blob/v3.0.0/test/jsdom.js --- __mocks__/d3.ts | 13 - package.json | 5 + packages/mermaid/package.json | 3 +- packages/mermaid/src/accessibility.spec.ts | 263 ++- .../architecture/architectureRenderer.ts | 9 + packages/mermaid/src/mermaidAPI.spec.ts | 161 +- packages/mermaid/src/tests/MockedD3.ts | 150 -- packages/mermaid/src/tests/setup.ts | 3 - packages/mermaid/src/tests/util.ts | 74 + packages/mermaid/src/utils.spec.ts | 59 +- pnpm-lock.yaml | 1625 ++++++++++++++--- vite.config.ts | 1 - 12 files changed, 1655 insertions(+), 711 deletions(-) delete mode 100644 __mocks__/d3.ts delete mode 100644 packages/mermaid/src/tests/MockedD3.ts delete mode 100644 packages/mermaid/src/tests/setup.ts diff --git a/__mocks__/d3.ts b/__mocks__/d3.ts deleted file mode 100644 index 97bd01665..000000000 --- a/__mocks__/d3.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3.js'; - -export const select = function () { - return new MockedD3(); -}; - -export const selectAll = function () { - return new MockedD3(); -}; - -export const curveBasis = 'basis'; -export const curveLinear = 'linear'; -export const curveCardinal = 'cardinal'; diff --git a/package.json b/package.json index 9947c697f..391a38258 100644 --- a/package.json +++ b/package.json @@ -139,8 +139,13 @@ "roughjs": "patches/roughjs.patch" }, "onlyBuiltDependencies": [ + "canvas", "cypress", "esbuild" + ], + "ignoredBuiltDependencies": [ + "sharp", + "vue-demi" ] } } diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 31d0b3a7d..24ade7898 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -105,13 +105,14 @@ "@types/stylis": "^4.2.7", "@types/uuid": "^10.0.0", "ajv": "^8.17.1", + "canvas": "^3.1.0", "chokidar": "4.0.3", "concurrently": "^9.1.2", "csstree-validator": "^4.0.1", "globby": "^14.0.2", "jison": "^0.4.18", "js-base64": "^3.7.7", - "jsdom": "^26.0.0", + "jsdom": "^26.1.0", "json-schema-to-typescript": "^15.0.4", "micromatch": "^4.0.8", "path-browserify": "^1.0.1", diff --git a/packages/mermaid/src/accessibility.spec.ts b/packages/mermaid/src/accessibility.spec.ts index f5998c475..7dbdf6c7f 100644 --- a/packages/mermaid/src/accessibility.spec.ts +++ b/packages/mermaid/src/accessibility.spec.ts @@ -1,28 +1,29 @@ -import { MockedD3 } from './tests/MockedD3.js'; -import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility.js'; -import type { D3Element } from './types.js'; +import { addSVGa11yTitleDescription, setA11yDiagramInfo } from './accessibility.js'; +import { ensureNodeFromSelector, jsdomIt } from './tests/util.js'; +import { select } from 'd3'; +import { expect } from 'vitest'; describe('accessibility', () => { - const fauxSvgNode: MockedD3 = new MockedD3(); - describe('setA11yDiagramInfo', () => { - it('should set svg element role to "graphics-document document"', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - setA11yDiagramInfo(fauxSvgNode, 'flowchart'); - expect(svgAttrSpy).toHaveBeenCalledWith('role', 'graphics-document document'); + jsdomIt('should set svg element role to "graphics-document document"', () => { + const svgSelection = select('svg'); + setA11yDiagramInfo(svgSelection, 'flowchart'); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('role')).toBe('graphics-document document'); }); - it('should set aria-roledescription to the diagram type', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - setA11yDiagramInfo(fauxSvgNode, 'flowchart'); - expect(svgAttrSpy).toHaveBeenCalledWith('aria-roledescription', 'flowchart'); + jsdomIt('should set aria-roledescription to the diagram type', () => { + const svgSelection = select('svg'); + setA11yDiagramInfo(svgSelection, 'flowchart'); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-roledescription')).toBe('flowchart'); }); - it('should not set aria-roledescription if the diagram type is empty', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - setA11yDiagramInfo(fauxSvgNode, ''); - expect(svgAttrSpy).toHaveBeenCalledTimes(1); - expect(svgAttrSpy).toHaveBeenCalledWith('role', expect.anything()); // only called to set the role + jsdomIt('should not set aria-roledescription if the diagram type is empty', () => { + const svgSelection = select('svg'); + setA11yDiagramInfo(svgSelection, ''); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-roledescription')).toBeNull(); }); }); @@ -39,115 +40,83 @@ describe('accessibility', () => { expect(noInsertAttrSpy).not.toHaveBeenCalled(); }); - // convenience functions to DRY up the spec - - function expectAriaLabelledByItTitleId( - svgD3Node: D3Element, - title: string | undefined, - desc: string | undefined, - givenId: string - ): void { - const svgAttrSpy = vi.spyOn(svgD3Node, 'attr').mockReturnValue(svgD3Node); - addSVGa11yTitleDescription(svgD3Node, title, desc, givenId); - expect(svgAttrSpy).toHaveBeenCalledWith('aria-labelledby', `chart-title-${givenId}`); - } - - function expectAriaDescribedByItDescId( - svgD3Node: D3Element, - title: string | undefined, - desc: string | undefined, - givenId: string - ): void { - const svgAttrSpy = vi.spyOn(svgD3Node, 'attr').mockReturnValue(svgD3Node); - addSVGa11yTitleDescription(svgD3Node, title, desc, givenId); - expect(svgAttrSpy).toHaveBeenCalledWith('aria-describedby', `chart-desc-${givenId}`); - } - - function a11yTitleTagInserted( - svgD3Node: D3Element, - title: string | undefined, - desc: string | undefined, - givenId: string, - callNumber: number - ): void { - a11yTagInserted(svgD3Node, title, desc, givenId, callNumber, 'title', title); - } - - function a11yDescTagInserted( - svgD3Node: D3Element, - title: string | undefined, - desc: string | undefined, - givenId: string, - callNumber: number - ): void { - a11yTagInserted(svgD3Node, title, desc, givenId, callNumber, 'desc', desc); - } - - function a11yTagInserted( - _svgD3Node: D3Element, - title: string | undefined, - desc: string | undefined, - givenId: string, - callNumber: number, - expectedPrefix: string, - expectedText: string | undefined - ): void { - const fauxInsertedD3: MockedD3 = new MockedD3(); - const svginsertpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxInsertedD3); - const titleAttrSpy = vi.spyOn(fauxInsertedD3, 'attr').mockReturnValue(fauxInsertedD3); - const titleTextSpy = vi.spyOn(fauxInsertedD3, 'text'); - - addSVGa11yTitleDescription(fauxSvgNode, title, desc, givenId); - expect(svginsertpy).toHaveBeenCalledWith(expectedPrefix, ':first-child'); - expect(titleAttrSpy).toHaveBeenCalledWith('id', `chart-${expectedPrefix}-${givenId}`); - expect(titleTextSpy).toHaveBeenNthCalledWith(callNumber, expectedText); - } - describe('with a11y title', () => { const a11yTitle = 'a11y title'; describe('with a11y description', () => { const a11yDesc = 'a11y description'; - it('should set aria-labelledby to the title id inserted as a child', () => { - expectAriaLabelledByItTitleId(fauxSvgNode, a11yTitle, a11yDesc, givenId); + jsdomIt('should set aria-labelledby to the title id inserted as a child', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-labelledby')).toBe(`chart-title-${givenId}`); }); - it('should set aria-describedby to the description id inserted as a child', () => { - expectAriaDescribedByItDescId(fauxSvgNode, a11yTitle, a11yDesc, givenId); + jsdomIt('should set aria-describedby to the description id inserted as a child', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${givenId}`); }); - it('should insert title tag as the first child with the text set to the accTitle given', () => { - a11yTitleTagInserted(fauxSvgNode, a11yTitle, a11yDesc, givenId, 2); - }); + jsdomIt( + 'should insert title tag as the first child with the text set to the accTitle given', + () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const titleNode = ensureNodeFromSelector('title', svgNode); + expect(titleNode?.innerHTML).toBe(a11yTitle); + } + ); - it('should insert desc tag as the 2nd child with the text set to accDescription given', () => { - a11yDescTagInserted(fauxSvgNode, a11yTitle, a11yDesc, givenId, 1); - }); + jsdomIt( + 'should insert desc tag as the 2nd child with the text set to accDescription given', + () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const descNode = ensureNodeFromSelector('desc', svgNode); + expect(descNode?.innerHTML).toBe(a11yDesc); + } + ); }); - describe(`without a11y description`, () => { + describe(`without a11y description`, {}, () => { const a11yDesc = undefined; - it('should set aria-labelledby to the title id inserted as a child', () => { - expectAriaLabelledByItTitleId(fauxSvgNode, a11yTitle, a11yDesc, givenId); + jsdomIt('should set aria-labelledby to the title id inserted as a child', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-labelledby')).toBe(`chart-title-${givenId}`); }); - it('should not set aria-describedby', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-describedby', expect.anything()); + jsdomIt('should not set aria-describedby', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-describedby')).toBeNull(); }); - it('should insert title tag as the first child with the text set to the accTitle given', () => { - a11yTitleTagInserted(fauxSvgNode, a11yTitle, a11yDesc, givenId, 1); - }); + jsdomIt( + 'should insert title tag as the first child with the text set to the accTitle given', + () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const titleNode = ensureNodeFromSelector('title', svgNode); + expect(titleNode?.innerHTML).toBe(a11yTitle); + } + ); - it('should not insert description tag', () => { - const fauxTitle: MockedD3 = new MockedD3(); - const svginsertpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxTitle); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svginsertpy).not.toHaveBeenCalledWith('desc', ':first-child'); + jsdomIt('should not insert description tag', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const descNode = svgNode.querySelector('desc'); + expect(descNode).toBeNull(); }); }); }); @@ -158,55 +127,71 @@ describe('accessibility', () => { describe('with a11y description', () => { const a11yDesc = 'a11y description'; - it('should not set aria-labelledby', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-labelledby', expect.anything()); + jsdomIt('should not set aria-labelledby', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-labelledby')).toBeNull(); }); - it('should not insert title tag', () => { - const fauxTitle: MockedD3 = new MockedD3(); - const svginsertpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxTitle); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svginsertpy).not.toHaveBeenCalledWith('title', ':first-child'); + jsdomIt('should not insert title tag', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const titleNode = svgNode.querySelector('title'); + expect(titleNode).toBeNull(); }); - it('should set aria-describedby to the description id inserted as a child', () => { - expectAriaDescribedByItDescId(fauxSvgNode, a11yTitle, a11yDesc, givenId); + jsdomIt('should set aria-describedby to the description id inserted as a child', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${givenId}`); }); - it('should insert desc tag as the 2nd child with the text set to accDescription given', () => { - a11yDescTagInserted(fauxSvgNode, a11yTitle, a11yDesc, givenId, 1); - }); + jsdomIt( + 'should insert desc tag as the 2nd child with the text set to accDescription given', + () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const descNode = ensureNodeFromSelector('desc', svgNode); + expect(descNode?.innerHTML).toBe(a11yDesc); + } + ); }); describe('without a11y description', () => { const a11yDesc = undefined; - it('should not set aria-labelledby', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-labelledby', expect.anything()); + jsdomIt('should not set aria-labelledby', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-labelledby')).toBeNull(); }); - it('should not set aria-describedby', () => { - const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-describedby', expect.anything()); + jsdomIt('should not set aria-describedby', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-describedby')).toBeNull(); }); - it('should not insert title tag', () => { - const fauxTitle: MockedD3 = new MockedD3(); - const svginsertpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxTitle); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svginsertpy).not.toHaveBeenCalledWith('title', ':first-child'); + jsdomIt('should not insert title tag', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const titleNode = svgNode.querySelector('title'); + expect(titleNode).toBeNull(); }); - it('should not insert description tag', () => { - const fauxDesc: MockedD3 = new MockedD3(); - const svginsertpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxDesc); - addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId); - expect(svginsertpy).not.toHaveBeenCalledWith('desc', ':first-child'); + jsdomIt('should not insert description tag', () => { + const svgSelection = select('svg'); + addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + const descNode = svgNode.querySelector('desc'); + expect(descNode).toBeNull(); }); }); }); diff --git a/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts b/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts index 9479e5108..1505b1950 100644 --- a/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts +++ b/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts @@ -379,6 +379,15 @@ function layoutArchitecture( }, }, ], + layout: { + name: 'grid', + boundingBox: { + x1: 0, + x2: 100, + y1: 0, + y2: 100, + }, + }, }); // Remove element after layout renderEl.remove(); diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 684a8b388..249e268f2 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -1,40 +1,5 @@ import { assert, beforeEach, describe, expect, it, vi } from 'vitest'; -// ------------------------------------- -// Mocks and mocking - -import { MockedD3 } from './tests/MockedD3.js'; - -// Note: If running this directly from within an IDE, the mocks directory must be at packages/mermaid/mocks -vi.mock('d3'); -vi.mock('dagre-d3'); - -// mermaidAPI.spec.ts: -import * as accessibility from './accessibility.js'; // Import it this way so we can use spyOn(accessibility,...) -vi.mock('./accessibility.js', () => ({ - setA11yDiagramInfo: vi.fn(), - addSVGa11yTitleDescription: vi.fn(), -})); - -// Mock the renderers specifically so we can test render(). Need to mock draw() for each renderer -vi.mock('./diagrams/c4/c4Renderer.js'); -vi.mock('./diagrams/class/classRenderer.js'); -vi.mock('./diagrams/class/classRenderer-v2.js'); -vi.mock('./diagrams/er/erRenderer.js'); -vi.mock('./diagrams/flowchart/flowRenderer-v2.js'); -vi.mock('./diagrams/git/gitGraphRenderer.js'); -vi.mock('./diagrams/gantt/ganttRenderer.js'); -vi.mock('./diagrams/user-journey/journeyRenderer.js'); -vi.mock('./diagrams/pie/pieRenderer.js'); -vi.mock('./diagrams/packet/renderer.js'); -vi.mock('./diagrams/xychart/xychartRenderer.js'); -vi.mock('./diagrams/requirement/requirementRenderer.js'); -vi.mock('./diagrams/sequence/sequenceRenderer.js'); -vi.mock('./diagrams/radar/renderer.js'); -vi.mock('./diagrams/architecture/architectureRenderer.js'); - -// ------------------------------------- - import assignWithDepth from './assignWithDepth.js'; import type { MermaidConfig } from './config.type.js'; import mermaid from './mermaid.js'; @@ -75,6 +40,9 @@ import { SequenceDB } from './diagrams/sequence/sequenceDb.js'; import { decodeEntities, encodeEntities } from './utils.js'; import { toBase64 } from './utils/base64.js'; import { StateDB } from './diagrams/state/stateDb.js'; +import { ensureNodeFromSelector, jsdomIt } from './tests/util.js'; +import { select } from 'd3'; +import { JSDOM } from 'jsdom'; /** * @see https://vitest.dev/guide/mocking.html Mock part of a module @@ -225,63 +193,57 @@ describe('mermaidAPI', () => { }); }); - const fauxParentNode = new MockedD3(); - const fauxEnclosingDiv = new MockedD3(); - const fauxSvgNode = new MockedD3(); - describe('appendDivSvgG', () => { - const fauxGNode = new MockedD3(); - const parent_append_spy = vi.spyOn(fauxParentNode, 'append').mockReturnValue(fauxEnclosingDiv); - const div_append_spy = vi.spyOn(fauxEnclosingDiv, 'append').mockReturnValue(fauxSvgNode); - // @ts-ignore @todo TODO why is this getting a type error? - const div_attr_spy = vi.spyOn(fauxEnclosingDiv, 'attr').mockReturnValue(fauxEnclosingDiv); - const svg_append_spy = vi.spyOn(fauxSvgNode, 'append').mockReturnValue(fauxGNode); - // @ts-ignore @todo TODO why is this getting a type error? - const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); - // cspell:ignore dthe - it('appends a div node', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(parent_append_spy).toHaveBeenCalledWith('div'); - expect(div_append_spy).toHaveBeenCalledWith('svg'); + jsdomIt('appends a div node', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId'); + const divNode = ensureNodeFromSelector('div'); + const svgNode = ensureNodeFromSelector('svg', divNode); + ensureNodeFromSelector('g', svgNode); }); - it('the id for the div is "d" with the id appended', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(div_attr_spy).toHaveBeenCalledWith('id', 'dtheId'); + jsdomIt('the id for the div is "d" with the id appended', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId'); + const divNode = ensureNodeFromSelector('div'); + expect(divNode?.getAttribute('id')).toBe('dtheId'); }); - it('sets the style for the div if one is given', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId', 'given div style', 'given x link'); - expect(div_attr_spy).toHaveBeenCalledWith('style', 'given div style'); + jsdomIt('sets the style for the div if one is given', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId', 'given div style', 'given x link'); + const divNode = ensureNodeFromSelector('div'); + expect(divNode?.getAttribute('style')).toBe('given div style'); }); - it('appends a svg node to the div node', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(div_attr_spy).toHaveBeenCalledWith('id', 'dtheId'); + jsdomIt('sets the svg width to 100%', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId'); + const svgNode = ensureNodeFromSelector('div > svg'); + expect(svgNode.getAttribute('width')).toBe('100%'); }); - it('sets the svg width to 100%', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(svg_attr_spy).toHaveBeenCalledWith('width', '100%'); + jsdomIt('the svg id is the id', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId'); + const svgNode = ensureNodeFromSelector('div > svg'); + expect(svgNode.getAttribute('id')).toBe('theId'); }); - it('the svg id is the id', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(svg_attr_spy).toHaveBeenCalledWith('id', 'theId'); + jsdomIt('the svg xml namespace is the 2000 standard', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId'); + const svgNode = ensureNodeFromSelector('div > svg'); + expect(svgNode.getAttribute('xmlns')).toBe('http://www.w3.org/2000/svg'); }); - it('the svg xml namespace is the 2000 standard', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(svg_attr_spy).toHaveBeenCalledWith('xmlns', 'http://www.w3.org/2000/svg'); + jsdomIt('sets the svg xlink if one is given', () => { + const body = select('body'); + appendDivSvgG(body, 'theId', 'dtheId', 'div style', 'given x link'); + const svgNode = ensureNodeFromSelector('div > svg'); + expect(svgNode.getAttribute('xmlns:xlink')).toBe('given x link'); }); - it('sets the svg xlink if one is given', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId', 'div style', 'given x link'); - expect(svg_attr_spy).toHaveBeenCalledWith('xmlns:xlink', 'given x link'); - }); - it('appends a g (group) node to the svg node', () => { - appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); - expect(svg_append_spy).toHaveBeenCalledWith('g'); - }); - it('returns the given parentRoot d3 nodes', () => { - expect(appendDivSvgG(fauxParentNode, 'theId', 'dtheId')).toEqual(fauxParentNode); + jsdomIt('returns the given parentRoot d3 nodes', () => { + const body = select('body'); + expect(appendDivSvgG(body, 'theId', 'dtheId')).toEqual(body); }); }); @@ -782,9 +744,9 @@ graph TD;A--x|text including URL space|B;`) // render(id, text, cb?, svgContainingElement?) // Test all diagram types. Note that old flowchart 'graph' type will invoke the flowRenderer-v2. (See the flowchart v2 detector.) - // We have to have both the specific textDiagramType and the expected type name because the expected type may be slightly different than was is put in the diagram text (ex: in -v2 diagrams) + // We have to have both the specific textDiagramType and the expected type name because the expected type may be slightly different from what is put in the diagram text (ex: in -v2 diagrams) const diagramTypesAndExpectations = [ - { textDiagramType: 'C4Context', expectedType: 'c4' }, + // { textDiagramType: 'C4Context', expectedType: 'c4' }, TODO : setAccTitle not called in C4 jison parser { textDiagramType: 'classDiagram', expectedType: 'class' }, { textDiagramType: 'classDiagram-v2', expectedType: 'classDiagram' }, { textDiagramType: 'erDiagram', expectedType: 'er' }, @@ -796,7 +758,11 @@ graph TD;A--x|text including URL space|B;`) { textDiagramType: 'pie', expectedType: 'pie' }, { textDiagramType: 'packet', expectedType: 'packet' }, { textDiagramType: 'packet-beta', expectedType: 'packet' }, - { textDiagramType: 'xychart-beta', expectedType: 'xychart' }, + { + textDiagramType: 'xychart-beta', + expectedType: 'xychart', + content: 'x-axis "Attempts" 10000 --> 10000\ny-axis "Passing tests" 1 --> 1\nbar [1]', + }, { textDiagramType: 'requirementDiagram', expectedType: 'requirement' }, { textDiagramType: 'sequenceDiagram', expectedType: 'sequence' }, { textDiagramType: 'stateDiagram-v2', expectedType: 'stateDiagram' }, @@ -812,20 +778,25 @@ graph TD;A--x|text including URL space|B;`) diagramTypesAndExpectations.forEach((testedDiagram) => { describe(`${testedDiagram.textDiagramType}`, () => { const diagramType = testedDiagram.textDiagramType; - const diagramText = `${diagramType}\n accTitle: ${a11yTitle}\n accDescr: ${a11yDescr}\n`; + const content = testedDiagram.content || ''; + const diagramText = `${diagramType}\n accTitle: ${a11yTitle}\n accDescr: ${a11yDescr}\n ${content}`; const expectedDiagramType = testedDiagram.expectedType; - it('should set aria-roledescription to the diagram type AND should call addSVGa11yTitleDescription', async () => { - const a11yDiagramInfo_spy = vi.spyOn(accessibility, 'setA11yDiagramInfo'); - const a11yTitleDesc_spy = vi.spyOn(accessibility, 'addSVGa11yTitleDescription'); - const result = await mermaidAPI.render(id, diagramText); - expect(result.diagramType).toBe(expectedDiagramType); - expect(a11yDiagramInfo_spy).toHaveBeenCalledWith( - expect.anything(), - expectedDiagramType - ); - expect(a11yTitleDesc_spy).toHaveBeenCalled(); - }); + jsdomIt( + 'should set aria-roledescription to the diagram type AND should call addSVGa11yTitleDescription', + async () => { + const { svg } = await mermaidAPI.render(id, diagramText); + const dom = new JSDOM(svg); + const svgNode = ensureNodeFromSelector('svg', dom.window.document); + const descNode = ensureNodeFromSelector('desc', svgNode); + const titleNode = ensureNodeFromSelector('title', svgNode); + expect(svgNode.getAttribute('aria-roledescription')).toBe(expectedDiagramType); + expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${id}`); + expect(descNode.getAttribute('id')).toBe(`chart-desc-${id}`); + expect(descNode.innerHTML).toBe(a11yDescr); + expect(titleNode.innerHTML).toBe(a11yTitle); + } + ); }); }); }); diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts deleted file mode 100644 index 019aed124..000000000 --- a/packages/mermaid/src/tests/MockedD3.ts +++ /dev/null @@ -1,150 +0,0 @@ -/** - * This is a mocked/stubbed version of the d3 Selection type. Each of the main functions are all - * mocked (via vi.fn()) so you can track if they have been called, etc. - * - * Note that node() returns a HTML Element with tag 'svg'. It is an empty element (no innerHTML, no children, etc). - * This potentially allows testing of mermaidAPI render(). - */ -export class MockedD3 { - public attribs = new Map(); - public id: string | undefined = ''; - _children: MockedD3[] = []; - - _containingHTMLdoc = new Document(); - - constructor(givenId = 'mock-id') { - this.id = givenId; - } - - /** Helpful utility during development/debugging. This is not a real d3 function */ - public listChildren(): string { - return this._children - .map((child) => { - return child.id; - }) - .join(', '); - } - - select = vi.fn().mockImplementation(({ select_str = '' }): MockedD3 => { - // Get the id from an argument string. if it is of the form [id='some-id'], strip off the - // surrounding id[..] - const stripSurroundRegexp = /\[id='(.*)']/; - const matchedSurrounds = select_str.match(stripSurroundRegexp); - const cleanId = matchedSurrounds ? matchedSurrounds[1] : select_str; - return new MockedD3(cleanId); - }); - - // This has the same implementation as select(). (It calls it.) - selectAll = vi.fn().mockImplementation(({ select_str = '' }): MockedD3 => { - return this.select(select_str); - }); - - append = vi.fn().mockImplementation(function ( - this: MockedD3, - type: string, - id = '' + '-appended' - ): MockedD3 { - const newMock = new MockedD3(id); - newMock.attribs.set('type', type); - this._children.push(newMock); - return newMock; - }); - - // NOTE: The d3 implementation allows for a selector ('beforeSelector' arg below). - // With this mocked implementation, we assume it will always refer to a node id - // and will always be of the form "#[id of the node to insert before]". - // To keep this simple, any leading '#' is removed and the resulting string is the node id searched. - insert = (type: string, beforeSelector?: string, id = this.id + '-inserted'): MockedD3 => { - const newMock = new MockedD3(id); - newMock.attribs.set('type', type); - if (beforeSelector === undefined) { - this._children.push(newMock); - } else { - const idOnly = beforeSelector.startsWith('#') ? beforeSelector.substring(1) : beforeSelector; - const foundIndex = this._children.findIndex((child) => child.id === idOnly); - if (foundIndex < 0) { - this._children.push(newMock); - } else { - this._children.splice(foundIndex, 0, newMock); - } - } - return newMock; - }; - - attr(attrName: string): undefined | string; - attr(attrName: string, attrValue: string): MockedD3; - attr(attrName: string, attrValue?: string): undefined | string | MockedD3 { - if (arguments.length === 1) { - return this.attribs.get(attrName); - } else { - if (attrName === 'id') { - this.id = attrValue; // also set the id explicitly - } - if (attrValue !== undefined) { - this.attribs.set(attrName, attrValue); - } - return this; - } - } - - public lower(attrValue = '') { - this.attribs.set('lower', attrValue); - return this; - } - public style(attrValue = '') { - this.attribs.set('style', attrValue); - return this; - } - public text(attrValue = '') { - this.attribs.set('text', attrValue); - return this; - } - - // NOTE: Returns a HTML Element with tag 'svg' that has _another_ 'svg' element child. - // This allows different tests to succeed -- some need a top level 'svg' and some need a 'svg' element to be the firstChild - // Real implementation returns an HTML Element - public node = vi.fn().mockImplementation(() => { - //create a top level svg element - const topElem = this._containingHTMLdoc.createElement('svg'); - //@ts-ignore - this is a mock SVG element - topElem.getBBox = this.getBBox; - const elem_svgChild = this._containingHTMLdoc.createElement('svg'); // another svg element - topElem.appendChild(elem_svgChild); - return topElem; - }); - - // TODO Is this correct? shouldn't it return a list of HTML Elements? - nodes = vi.fn().mockImplementation(function (this: MockedD3): MockedD3[] { - return this._children; - }); - - // This will try to use attrs that have been set. - getBBox = () => { - const x = this.attribs.has('x') ? this.attribs.get('x') : 20; - const y = this.attribs.has('y') ? this.attribs.get('y') : 30; - const width = this.attribs.has('width') ? this.attribs.get('width') : 140; - const height = this.attribs.has('height') ? this.attribs.get('height') : 250; - return { - x: x, - y: y, - width: width, - height: height, - }; - }; - - // -------------------------------------------------------------------------------- - // The following functions are here for completeness. They simply return a vi.fn() - - insertBefore = vi.fn(); - curveBasis = vi.fn(); - curveBasisClosed = vi.fn(); - curveBasisOpen = vi.fn(); - curveLinear = vi.fn(); - curveLinearClosed = vi.fn(); - curveMonotoneX = vi.fn(); - curveMonotoneY = vi.fn(); - curveNatural = vi.fn(); - curveStep = vi.fn(); - curveStepAfter = vi.fn(); - curveStepBefore = vi.fn(); -} diff --git a/packages/mermaid/src/tests/setup.ts b/packages/mermaid/src/tests/setup.ts deleted file mode 100644 index b3330787c..000000000 --- a/packages/mermaid/src/tests/setup.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { vi } from 'vitest'; -vi.mock('d3'); -vi.mock('dagre-d3-es'); diff --git a/packages/mermaid/src/tests/util.ts b/packages/mermaid/src/tests/util.ts index 922078876..8b3de4e9d 100644 --- a/packages/mermaid/src/tests/util.ts +++ b/packages/mermaid/src/tests/util.ts @@ -26,6 +26,9 @@ ${'2w'} | ${dayjs.duration(2, 'w')} ``` */ +import { JSDOM } from 'jsdom'; +import { expect, it } from 'vitest'; + export const convert = (template: TemplateStringsArray, ...params: unknown[]) => { const header = template[0] .trim() @@ -42,3 +45,74 @@ export const convert = (template: TemplateStringsArray, ...params: unknown[]) => } return out; }; + +/** + * Getting rid of linter issues to make {@link jsdomIt} work. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOnProtectedConstant(object: any, key: string, value: unknown): void { + object[key] = value; +} + +export const MOCKED_BBOX = { + x: 0, + y: 0, + width: 666, + height: 666, +}; + +/** + * Test method borrowed from d3 : https://github.com/d3/d3-selection/blob/v3.0.0/test/jsdom.js + * + * Fools d3 into thinking it's working in a browser with a real DOM. + * + * The DOM is actually an instance of JSDom with monkey-patches for DOM methods that require a + * rendering engine. + * + * The resulting environment is capable of rendering SVGs with the caveat that layouts are + * completely screwed. + * + * This makes it possible to make structural tests instead of mocking everything. + */ +export function jsdomIt(message: string, run: () => void | Promise) { + return it(message, async (): Promise => { + const oldWindow = global.window; + const oldDocument = global.document; + + try { + const baseHtml = ` + + + + + + `; + const dom = new JSDOM(baseHtml, { + resources: 'usable', + beforeParse(_window) { + // Mocks DOM functions that require rendering, JSDOM doesn't + setOnProtectedConstant(_window.Element.prototype, 'getBBox', () => MOCKED_BBOX); + setOnProtectedConstant(_window.Element.prototype, 'getComputedTextLength', () => 200); + }, + }); + setOnProtectedConstant(global, 'window', dom.window); // Fool D3 into thinking it's in a browser + setOnProtectedConstant(global, 'document', dom.window.document); // Fool D3 into thinking it's in a browser + setOnProtectedConstant(global, 'MutationObserver', undefined); // JSDOM doesn't like cytoscape elements + + await run(); + } finally { + setOnProtectedConstant(global, 'window', oldWindow); + setOnProtectedConstant(global, 'document', oldDocument); + } + }); +} + +/** + * Retrieves the node from its parent with ParentNode#querySelector, + * then checks that it exists before returning it. + */ +export function ensureNodeFromSelector(selector: string, parent: ParentNode = document): Element { + const node = parent.querySelector(selector); + expect(node).not.toBeNull(); + return node!; +} diff --git a/packages/mermaid/src/utils.spec.ts b/packages/mermaid/src/utils.spec.ts index df9e6cf9a..f683fe146 100644 --- a/packages/mermaid/src/utils.spec.ts +++ b/packages/mermaid/src/utils.spec.ts @@ -1,11 +1,12 @@ -import { vi } from 'vitest'; +import { expect, vi } from 'vitest'; import utils, { calculatePoint, cleanAndMerge, detectDirective } from './utils.js'; import assignWithDepth from './assignWithDepth.js'; import { detectType } from './diagram-api/detectType.js'; import { addDiagrams } from './diagram-api/diagram-orchestration.js'; import memoize from 'lodash-es/memoize.js'; -import { MockedD3 } from './tests/MockedD3.js'; import { preprocessDiagram } from './preprocess.js'; +import { MOCKED_BBOX, ensureNodeFromSelector, jsdomIt } from './tests/util.js'; +import { select } from 'd3'; addDiagrams(); @@ -369,53 +370,39 @@ describe('when initializing the id generator', function () { }); describe('when inserting titles', function () { - const svg = new MockedD3('svg'); - const mockedElement = { - getBBox: vi.fn().mockReturnValue({ x: 10, y: 11, width: 100, height: 200 }), - }; - const fauxTitle = new MockedD3('title'); - - beforeEach(() => { - svg.node = vi.fn().mockReturnValue(mockedElement); - }); - - it('does nothing if the title is empty', function () { - const svgAppendSpy = vi.spyOn(svg, 'append'); + jsdomIt('does nothing if the title is empty', function () { + const svg = select('svg'); utils.insertTitle(svg, 'testClass', 0, ''); - expect(svgAppendSpy).not.toHaveBeenCalled(); + const titleNode = document.querySelector('svg > text'); + expect(titleNode).toBeNull(); }); - it('appends the title as a text item with the given title text', function () { - const svgAppendSpy = vi.spyOn(svg, 'append').mockReturnValue(fauxTitle); - const titleTextSpy = vi.spyOn(fauxTitle, 'text'); - + jsdomIt('appends the title as a text item with the given title text', function () { + const svg = select('svg'); utils.insertTitle(svg, 'testClass', 5, 'test title'); - expect(svgAppendSpy).toHaveBeenCalled(); - expect(titleTextSpy).toHaveBeenCalledWith('test title'); + const titleNode = ensureNodeFromSelector('svg > text'); + expect(titleNode.innerHTML).toBe('test title'); }); - it('x value is the bounds x position + half of the bounds width', () => { - vi.spyOn(svg, 'append').mockReturnValue(fauxTitle); - const titleAttrSpy = vi.spyOn(fauxTitle, 'attr'); - + jsdomIt('x value is the bounds x position + half of the bounds width', () => { + const svg = select('svg'); utils.insertTitle(svg, 'testClass', 5, 'test title'); - expect(titleAttrSpy).toHaveBeenCalledWith('x', 10 + 100 / 2); + const titleNode = ensureNodeFromSelector('svg > text'); + expect(titleNode.getAttribute('x')).toBe(`${MOCKED_BBOX.x + MOCKED_BBOX.width / 2}`); }); - it('y value is the negative of given title top margin', () => { - vi.spyOn(svg, 'append').mockReturnValue(fauxTitle); - const titleAttrSpy = vi.spyOn(fauxTitle, 'attr'); - + jsdomIt('y value is the negative of given title top margin', () => { + const svg = select('svg'); utils.insertTitle(svg, 'testClass', 5, 'test title'); - expect(titleAttrSpy).toHaveBeenCalledWith('y', -5); + const titleNode = ensureNodeFromSelector('svg > text'); + expect(titleNode.getAttribute('y')).toBe(`${MOCKED_BBOX.y - 5}`); }); - it('class is the given css class', () => { - vi.spyOn(svg, 'append').mockReturnValue(fauxTitle); - const titleAttrSpy = vi.spyOn(fauxTitle, 'attr'); - + jsdomIt('class is the given css class', () => { + const svg = select('svg'); utils.insertTitle(svg, 'testClass', 5, 'test title'); - expect(titleAttrSpy).toHaveBeenCalledWith('class', 'testClass'); + const titleNode = ensureNodeFromSelector('svg > text'); + expect(titleNode.getAttribute('class')).toBe('testClass'); }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94b99d7c8..f079027a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,7 +30,7 @@ importers: version: 8.19.3(eslint@9.26.0(jiti@2.4.2)) '@cypress/code-coverage': specifier: ^3.12.49 - version: 3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.0.3)(webpack@5.95.0(esbuild@0.25.0)) + version: 3.13.4(@babel/core@7.26.9)(@babel/preset-env@7.27.2(@babel/core@7.26.9))(babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.0.3)(webpack@5.95.0(esbuild@0.25.0)) '@eslint/js': specifier: ^9.26.0 version: 9.26.0 @@ -90,7 +90,7 @@ importers: version: 7.0.3 cspell: specifier: ^9.1.3 - version: 9.1.3 + version: 9.1.5 cypress: specifier: ^14.0.3 version: 14.0.3 @@ -99,7 +99,7 @@ importers: version: 4.0.1(cypress@14.0.3)(jest@30.0.4(@types/node@22.13.5)) cypress-split: specifier: ^1.24.14 - version: 1.24.14(@babel/core@7.27.1) + version: 1.24.14(@babel/core@7.26.9) esbuild: specifier: ^0.25.0 version: 0.25.0 @@ -162,7 +162,7 @@ importers: version: 4.1.0 jsdom: specifier: ^26.0.0 - version: 26.0.0 + version: 26.0.0(canvas@3.1.0) langium-cli: specifier: 3.3.0 version: 3.3.0 @@ -207,13 +207,13 @@ importers: version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3) vite: specifier: ^7.0.3 - version: 7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + version: 7.0.4(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) vite-plugin-istanbul: specifier: ^7.0.0 - version: 7.0.0(vite@7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)) + version: 7.0.0(vite@7.0.4(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)) vitest: specifier: ^3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0(canvas@3.1.0))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) packages/examples: devDependencies: @@ -332,6 +332,9 @@ importers: ajv: specifier: ^8.17.1 version: 8.17.1 + canvas: + specifier: ^3.1.0 + version: 3.1.0 chokidar: specifier: 4.0.3 version: 4.0.3 @@ -351,8 +354,8 @@ importers: specifier: ^3.7.7 version: 3.7.7 jsdom: - specifier: ^26.0.0 - version: 26.0.0 + specifier: ^26.1.0 + version: 26.1.0(canvas@3.1.0) json-schema-to-typescript: specifier: ^15.0.4 version: 15.0.4 @@ -801,14 +804,26 @@ packages: '@asamuzakjp/css-color@2.8.3': resolution: {integrity: sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.27.2': resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.26.9': + resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} + engines: {node: '>=6.9.0'} + '@babel/core@7.27.1': resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} engines: {node: '>=6.9.0'} @@ -817,6 +832,10 @@ packages: resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.26.9': + resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.27.1': resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} @@ -829,6 +848,10 @@ packages: resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} @@ -858,10 +881,20 @@ packages: resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.27.1': resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} engines: {node: '>=6.9.0'} @@ -902,6 +935,10 @@ packages: resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -914,6 +951,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -922,6 +963,10 @@ packages: resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.26.9': + resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.27.1': resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} engines: {node: '>=6.9.0'} @@ -1409,10 +1454,18 @@ packages: resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.9': + resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.1': resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} @@ -1429,8 +1482,8 @@ packages: resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.0': - resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + '@babel/types@7.28.1': + resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -1527,52 +1580,58 @@ packages: resolution: {integrity: sha512-HRxcvD+fqgq6Ag6K7TMnlsO1Uq2nc3V/ug4huZSKK/+tErB1i/m4N4gkOzO0pFtQsJDhGdlio3Wud2ce6kVpdw==} engines: {node: '>=18'} - '@cspell/cspell-bundled-dicts@9.1.3': - resolution: {integrity: sha512-WbOkD32fjxz0hHMP6oTvAgi2VBlzYcqKPNwCo+4b9HefLWV5aiLaxp04d8CeifaAdlYjkjuqRTJXh/HfUeLCVg==} + '@cspell/cspell-bundled-dicts@9.1.5': + resolution: {integrity: sha512-CdaWYdxnXBFRWAga2qhB/WVO4oCxgSeV1hosvnFCBxrFUyG5KuqYRJdYgCQcITs6dpA3IdNNa7+zWX8JvxnH+A==} engines: {node: '>=20'} - '@cspell/cspell-json-reporter@9.1.3': - resolution: {integrity: sha512-FvzlSQuU+bNeo77v0KrA/lkoe324cHvZNhkx7Dtp1aj01FeBr5Y36gozR3DNY6tewBi6hC7uLeeNg/iSBf6CWg==} + '@cspell/cspell-json-reporter@9.1.5': + resolution: {integrity: sha512-tnapaKwxlHa7e5kuy0quJjW0oZlqetTbbsmYlayavm4PEVhuuNEp+skj4t957aRMGSq76t8Kgl7vS5Qp41ToMw==} engines: {node: '>=20'} '@cspell/cspell-pipe@8.19.3': resolution: {integrity: sha512-Z90x+Kbq1P3A7iOsRe6FnsF2nisMKCY6bln03mTvHW0MmT8F69BEZTSZaL4z+kQ0L8qbjthJ+FqbQKYNNbPZpg==} engines: {node: '>=18'} - '@cspell/cspell-pipe@9.1.3': - resolution: {integrity: sha512-Cns37ml7IaXMWBci9XOqdTkP9nFtOO8+sJ4VvtbVO68Zo8v0vq74ApDbPgGI2HzYtn7Jj2hxQqGIBdLnmrMPyA==} + '@cspell/cspell-pipe@9.1.5': + resolution: {integrity: sha512-6zmRfbqTHpYcI/n5uoerQVMqY31lnhA34BHU97uZn6kaW5rXTmQLze/WKmlrs+LAFfDL6MHIOLBJAusZw5Bb5g==} engines: {node: '>=20'} '@cspell/cspell-resolver@8.19.3': resolution: {integrity: sha512-hsEx/7q0tDCOFtMmlkpynlApgAWo4/7q846Y1deyDChtIElmS0dfuzdKzv3jvFi3KdTVgJyhJb+o7/OHH2D/4A==} engines: {node: '>=18'} - '@cspell/cspell-resolver@9.1.3': - resolution: {integrity: sha512-3h9AkbY+YutBG91fQxeSpfIRT50sfrNQ7IAS0N6fCvJ6z0sXed7UPYwf90NauQp/1lN/bVlHFFAgxDEyG720Yg==} + '@cspell/cspell-resolver@9.1.5': + resolution: {integrity: sha512-xZdTdcOcRoShrmA7S3tX5s8UmxFNaef5xdv8TABDjnTr6oPLBsZ5S3kPBZ8T+xlkj3MUB593SIkhD/0G74vLpw==} engines: {node: '>=20'} '@cspell/cspell-service-bus@8.19.3': resolution: {integrity: sha512-K66Vj8O+SWjPUTFq1wfpq5uoDLmZcB7tY3m154WQa94RNpW+/z9kLXVPxW1FctRXfjxfc7bqfLq4LF6Yiu72fg==} engines: {node: '>=18'} - '@cspell/cspell-service-bus@9.1.3': - resolution: {integrity: sha512-Ss4cCnkJI3IHDSOQKxhtAfypvZZDzuJeXbZFVimLvO22/8GdVH+vQxAFm3kBY+ACVUAe13MQIYzZxuFHaM9y8g==} + '@cspell/cspell-service-bus@9.1.5': + resolution: {integrity: sha512-mAXtwYw5Xobn8uicZjblI+8SPscKHK3eDGm7hnYeThb/kzS83uQog0+8LbSh+YiXDrAqzXn73kXMHg1D+EvMpQ==} engines: {node: '>=20'} '@cspell/cspell-types@8.19.3': resolution: {integrity: sha512-q6aUHJSvUe0Bt57djQN7qQ/AVV9O6nVNO7Nj0rZxFsv/73CtUvJseSrpjlZgkHTRCjOL0iRsVG+B8IPaxjczgw==} engines: {node: '>=18'} - '@cspell/cspell-types@9.1.3': - resolution: {integrity: sha512-JPLFMp6qKj4fjsEDvMjVXFZg+j3HaRQ7raFtR2RPidYyKcUHPCVhX0wfJ0vuYxkC0Yst+99tgVxR8Wi57xs2Ew==} + '@cspell/cspell-types@9.1.5': + resolution: {integrity: sha512-SPX9vHhqCtPE0wayvwmczax8X0oAXA3sBFIW31CoSyiu4lJ5sfKM4ZaoL25Wu4bW6GlYhaW4+diemmTdLHquag==} engines: {node: '>=20'} '@cspell/dict-ada@4.1.0': resolution: {integrity: sha512-7SvmhmX170gyPd+uHXrfmqJBY5qLcCX8kTGURPVeGxmt8XNXT75uu9rnZO+jwrfuU2EimNoArdVy5GZRGljGNg==} + '@cspell/dict-ada@4.1.1': + resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} + '@cspell/dict-al@1.1.0': resolution: {integrity: sha512-PtNI1KLmYkELYltbzuoztBxfi11jcE9HXBHCpID2lou/J4VMYKJPNqe4ZjVzSI9NYbMnMnyG3gkbhIdx66VSXg==} + '@cspell/dict-al@1.1.1': + resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} + '@cspell/dict-aws@4.0.10': resolution: {integrity: sha512-0qW4sI0GX8haELdhfakQNuw7a2pnWXz3VYQA2MpydH2xT2e6EN9DWFpKAi8DfcChm8MgDAogKkoHtIo075iYng==} @@ -1582,6 +1641,9 @@ packages: '@cspell/dict-bash@4.2.0': resolution: {integrity: sha512-HOyOS+4AbCArZHs/wMxX/apRkjxg6NDWdt0jF9i9XkvJQUltMwEhyA2TWYjQ0kssBsnof+9amax2lhiZnh3kCg==} + '@cspell/dict-bash@4.2.1': + resolution: {integrity: sha512-SBnzfAyEAZLI9KFS7DUG6Xc1vDFuLllY3jz0WHvmxe8/4xV3ufFE3fGxalTikc1VVeZgZmxYiABw4iGxVldYEg==} + '@cspell/dict-companies@3.1.15': resolution: {integrity: sha512-vnGYTJFrqM9HdtgpZFOThFTjlPyJWqPi0eidMKyZxMKTHhP7yg6mD5X9WPEPvfiysmJYMnA6KKYQEBqoKFPU9g==} @@ -1591,18 +1653,33 @@ packages: '@cspell/dict-cpp@6.0.8': resolution: {integrity: sha512-BzurRZilWqaJt32Gif6/yCCPi+FtrchjmnehVEIFzbWyeBd/VOUw77IwrEzehZsu5cRU91yPWuWp5fUsKfDAXA==} + '@cspell/dict-cpp@6.0.9': + resolution: {integrity: sha512-Xdq9MwGh0D5rsnbOqFW24NIClXXRhN11KJdySMibpcqYGeomxB2ODFBuhj1H7azO7kVGkGH0Okm4yQ2TRzBx0g==} + '@cspell/dict-cryptocurrencies@5.0.4': resolution: {integrity: sha512-6iFu7Abu+4Mgqq08YhTKHfH59mpMpGTwdzDB2Y8bbgiwnGFCeoiSkVkgLn1Kel2++hYcZ8vsAW/MJS9oXxuMag==} + '@cspell/dict-cryptocurrencies@5.0.5': + resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} + '@cspell/dict-csharp@4.0.6': resolution: {integrity: sha512-w/+YsqOknjQXmIlWDRmkW+BHBPJZ/XDrfJhZRQnp0wzpPOGml7W0q1iae65P2AFRtTdPKYmvSz7AL5ZRkCnSIw==} + '@cspell/dict-csharp@4.0.7': + resolution: {integrity: sha512-H16Hpu8O/1/lgijFt2lOk4/nnldFtQ4t8QHbyqphqZZVE5aS4J/zD/WvduqnLY21aKhZS6jo/xF5PX9jyqPKUA==} + '@cspell/dict-css@4.0.17': resolution: {integrity: sha512-2EisRLHk6X/PdicybwlajLGKF5aJf4xnX2uuG5lexuYKt05xV/J/OiBADmi8q9obhxf1nesrMQbqAt+6CsHo/w==} + '@cspell/dict-css@4.0.18': + resolution: {integrity: sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==} + '@cspell/dict-dart@2.3.0': resolution: {integrity: sha512-1aY90lAicek8vYczGPDKr70pQSTQHwMFLbmWKTAI6iavmb1fisJBS1oTmMOKE4ximDf86MvVN6Ucwx3u/8HqLg==} + '@cspell/dict-dart@2.3.1': + resolution: {integrity: sha512-xoiGnULEcWdodXI6EwVyqpZmpOoh8RA2Xk9BNdR7DLamV/QMvEYn8KJ7NlRiTSauJKPNkHHQ5EVHRM6sTS7jdg==} + '@cspell/dict-data-science@2.0.8': resolution: {integrity: sha512-uyAtT+32PfM29wRBeAkUSbkytqI8bNszNfAz2sGPtZBRmsZTYugKMEO9eDjAIE/pnT9CmbjNuoiXhk+Ss4fCOg==} @@ -1612,32 +1689,41 @@ packages: '@cspell/dict-django@4.1.4': resolution: {integrity: sha512-fX38eUoPvytZ/2GA+g4bbdUtCMGNFSLbdJJPKX2vbewIQGfgSFJKY56vvcHJKAvw7FopjvgyS/98Ta9WN1gckg==} + '@cspell/dict-django@4.1.5': + resolution: {integrity: sha512-AvTWu99doU3T8ifoMYOMLW2CXKvyKLukPh1auOPwFGHzueWYvBBN+OxF8wF7XwjTBMMeRleVdLh3aWCDEX/ZWg==} + '@cspell/dict-docker@1.1.13': resolution: {integrity: sha512-85X+ZC/CPT3ie26DcfeMFkZSNuhS8DlAqPXzAjilHtGE/Nj+QnS3jyBz0spDJOJrjh8wx1+ro2oCK98sbVcztw==} '@cspell/dict-docker@1.1.15': resolution: {integrity: sha512-wYthMAbEbqDBr9P90VC9aT3zjErrJbUtIr91pDmse7Y5WUvQtAwFhiJHgmNrtx2fZ2idII0eYvpMqoEO+FYFxw==} + '@cspell/dict-dotnet@5.0.10': + resolution: {integrity: sha512-ooar8BP/RBNP1gzYfJPStKEmpWy4uv/7JCq6FOnJLeD1yyfG3d/LFMVMwiJo+XWz025cxtkM3wuaikBWzCqkmg==} + '@cspell/dict-dotnet@5.0.9': resolution: {integrity: sha512-JGD6RJW5sHtO5lfiJl11a5DpPN6eKSz5M1YBa1I76j4dDOIqgZB6rQexlDlK1DH9B06X4GdDQwdBfnpAB0r2uQ==} '@cspell/dict-elixir@4.0.7': resolution: {integrity: sha512-MAUqlMw73mgtSdxvbAvyRlvc3bYnrDqXQrx5K9SwW8F7fRYf9V4vWYFULh+UWwwkqkhX9w03ZqFYRTdkFku6uA==} + '@cspell/dict-elixir@4.0.8': + resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} + '@cspell/dict-en-common-misspellings@2.0.10': resolution: {integrity: sha512-80mXJLtr0tVEtzowrI7ycVae/ULAYImZUlr0kUTpa8i57AUk7Zy3pYBs44EYIKW7ZC9AHu4Qjjfq4vriAtyTDQ==} '@cspell/dict-en-common-misspellings@2.1.3': resolution: {integrity: sha512-v1I97Hr1OrK+mwHsVzbY4vsPxx6mA5quhxzanF6XuRofz00wH4HPz8Q3llzRHxka5Wl/59gyan04UkUrvP4gdA==} - '@cspell/dict-en-gb-mit@3.1.4': - resolution: {integrity: sha512-uFMrMEyT/cq3JwDjkarqlX2CPpYQjaHJtmZmKAcrltkXIQdnQF1o6McAXXdUO1xsNJKs7+LsykNsn28rvIxc5Q==} + '@cspell/dict-en-gb-mit@3.1.5': + resolution: {integrity: sha512-ovJScYOzSeik0cmr2L379VDWXaFD/FMlC6yXz1X3soGPheGkjVSgI3HICAv7Lk+knf906ifhAcEIrbTPKq9EnQ==} '@cspell/dict-en-gb@1.1.33': resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - '@cspell/dict-en_us@4.4.14': - resolution: {integrity: sha512-3JYC4XTc1I88ZC1SlZE9MssWljgJ1SmEVSfA8JiQDY5Mv7X9zo7Jvwjjq795oIJTkmdIW9yNX8ikKRt+cV7CIQ==} + '@cspell/dict-en_us@4.4.15': + resolution: {integrity: sha512-mhWaLui5aq0pgM4oIqAJNbOW/wQG3epe4nu22eqYTLQN+ztdzyn7aFpE+9yTtZTNvldK0xtN7jgk2mtHZ9w+1A==} '@cspell/dict-en_us@4.4.3': resolution: {integrity: sha512-KnsS19kL5lYEk2P9xGNwvZF5ZbDYv1Tkv4BKIx4n4jKlgUj9iHv7L0Q+2cCvllKDGjuP715G/3Rg0McKdHR1Xg==} @@ -1651,18 +1737,33 @@ packages: '@cspell/dict-flutter@1.1.0': resolution: {integrity: sha512-3zDeS7zc2p8tr9YH9tfbOEYfopKY/srNsAa+kE3rfBTtQERAZeOhe5yxrnTPoufctXLyuUtcGMUTpxr3dO0iaA==} + '@cspell/dict-flutter@1.1.1': + resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} + '@cspell/dict-fonts@4.0.4': resolution: {integrity: sha512-cHFho4hjojBcHl6qxidl9CvUb492IuSk7xIf2G2wJzcHwGaCFa2o3gRcxmIg1j62guetAeDDFELizDaJlVRIOg==} + '@cspell/dict-fonts@4.0.5': + resolution: {integrity: sha512-BbpkX10DUX/xzHs6lb7yzDf/LPjwYIBJHJlUXSBXDtK/1HaeS+Wqol4Mlm2+NAgZ7ikIE5DQMViTgBUY3ezNoQ==} + '@cspell/dict-fsharp@1.1.0': resolution: {integrity: sha512-oguWmHhGzgbgbEIBKtgKPrFSVAFtvGHaQS0oj+vacZqMObwkapcTGu7iwf4V3Bc2T3caf0QE6f6rQfIJFIAVsw==} + '@cspell/dict-fsharp@1.1.1': + resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} + '@cspell/dict-fullstack@3.2.6': resolution: {integrity: sha512-cSaq9rz5RIU9j+0jcF2vnKPTQjxGXclntmoNp4XB7yFX2621PxJcekGjwf/lN5heJwVxGLL9toR0CBlGKwQBgA==} + '@cspell/dict-fullstack@3.2.7': + resolution: {integrity: sha512-IxEk2YAwAJKYCUEgEeOg3QvTL4XLlyArJElFuMQevU1dPgHgzWElFevN5lsTFnvMFA1riYsVinqJJX0BanCFEg==} + '@cspell/dict-gaming-terms@1.1.1': resolution: {integrity: sha512-tb8GFxjTLDQstkJcJ90lDqF4rKKlMUKs5/ewePN9P+PYRSehqDpLI5S5meOfPit8LGszeOrjUdBQ4zXo7NpMyQ==} + '@cspell/dict-gaming-terms@1.1.2': + resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} + '@cspell/dict-git@3.0.4': resolution: {integrity: sha512-C44M+m56rYn6QCsLbiKiedyPTMZxlDdEYAsPwwlL5bhMDDzXZ3Ic8OCQIhMbiunhCOJJT+er4URmOmM+sllnjg==} @@ -1678,21 +1779,39 @@ packages: '@cspell/dict-google@1.0.8': resolution: {integrity: sha512-BnMHgcEeaLyloPmBs8phCqprI+4r2Jb8rni011A8hE+7FNk7FmLE3kiwxLFrcZnnb7eqM0agW4zUaNoB0P+z8A==} + '@cspell/dict-google@1.0.9': + resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} + '@cspell/dict-haskell@4.0.5': resolution: {integrity: sha512-s4BG/4tlj2pPM9Ha7IZYMhUujXDnI0Eq1+38UTTCpatYLbQqDwRFf2KNPLRqkroU+a44yTUAe0rkkKbwy4yRtQ==} + '@cspell/dict-haskell@4.0.6': + resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} + '@cspell/dict-html-symbol-entities@4.0.3': resolution: {integrity: sha512-aABXX7dMLNFdSE8aY844X4+hvfK7977sOWgZXo4MTGAmOzR8524fjbJPswIBK7GaD3+SgFZ2yP2o0CFvXDGF+A==} + '@cspell/dict-html-symbol-entities@4.0.4': + resolution: {integrity: sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==} + '@cspell/dict-html@4.0.11': resolution: {integrity: sha512-QR3b/PB972SRQ2xICR1Nw/M44IJ6rjypwzA4jn+GH8ydjAX9acFNfc+hLZVyNe0FqsE90Gw3evLCOIF0vy1vQw==} + '@cspell/dict-html@4.0.12': + resolution: {integrity: sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==} + '@cspell/dict-java@5.0.11': resolution: {integrity: sha512-T4t/1JqeH33Raa/QK/eQe26FE17eUCtWu+JsYcTLkQTci2dk1DfcIKo8YVHvZXBnuM43ATns9Xs0s+AlqDeH7w==} + '@cspell/dict-java@5.0.12': + resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} + '@cspell/dict-julia@1.1.0': resolution: {integrity: sha512-CPUiesiXwy3HRoBR3joUseTZ9giFPCydSKu2rkh6I2nVjXnl5vFHzOMLXpbF4HQ1tH2CNfnDbUndxD+I+7eL9w==} + '@cspell/dict-julia@1.1.1': + resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} + '@cspell/dict-k8s@1.0.10': resolution: {integrity: sha512-313haTrX9prep1yWO7N6Xw4D6tvUJ0Xsx+YhCP+5YrrcIKoEw5Rtlg8R4PPzLqe6zibw6aJ+Eqq+y76Vx5BZkw==} @@ -1702,18 +1821,33 @@ packages: '@cspell/dict-kotlin@1.1.0': resolution: {integrity: sha512-vySaVw6atY7LdwvstQowSbdxjXG6jDhjkWVWSjg1XsUckyzH1JRHXe9VahZz1i7dpoFEUOWQrhIe5B9482UyJQ==} + '@cspell/dict-kotlin@1.1.1': + resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} + '@cspell/dict-latex@4.0.3': resolution: {integrity: sha512-2KXBt9fSpymYHxHfvhUpjUFyzrmN4c4P8mwIzweLyvqntBT3k0YGZJSriOdjfUjwSygrfEwiuPI1EMrvgrOMJw==} + '@cspell/dict-latex@4.0.4': + resolution: {integrity: sha512-YdTQhnTINEEm/LZgTzr9Voz4mzdOXH7YX+bSFs3hnkUHCUUtX/mhKgf1CFvZ0YNM2afjhQcmLaR9bDQVyYBvpA==} + '@cspell/dict-lorem-ipsum@4.0.4': resolution: {integrity: sha512-+4f7vtY4dp2b9N5fn0za/UR0kwFq2zDtA62JCbWHbpjvO9wukkbl4rZg4YudHbBgkl73HRnXFgCiwNhdIA1JPw==} + '@cspell/dict-lorem-ipsum@4.0.5': + resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} + '@cspell/dict-lua@4.0.7': resolution: {integrity: sha512-Wbr7YSQw+cLHhTYTKV6cAljgMgcY+EUAxVIZW3ljKswEe4OLxnVJ7lPqZF5JKjlXdgCjbPSimsHqyAbC5pQN/Q==} + '@cspell/dict-lua@4.0.8': + resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} + '@cspell/dict-makefile@1.0.4': resolution: {integrity: sha512-E4hG/c0ekPqUBvlkrVvzSoAA+SsDA9bLi4xSV3AXHTVru7Y2bVVGMPtpfF+fI3zTkww/jwinprcU1LSohI3ylw==} + '@cspell/dict-makefile@1.0.5': + resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} + '@cspell/dict-markdown@2.0.10': resolution: {integrity: sha512-vtVa6L/84F9sTjclTYDkWJF/Vx2c5xzxBKkQp+CEFlxOF2SYgm+RSoEvAvg5vj4N5kuqR4350ZlY3zl2eA3MXw==} peerDependencies: @@ -1733,24 +1867,39 @@ packages: '@cspell/dict-monkeyc@1.0.10': resolution: {integrity: sha512-7RTGyKsTIIVqzbvOtAu6Z/lwwxjGRtY5RkKPlXKHEoEAgIXwfDxb5EkVwzGQwQr8hF/D3HrdYbRT8MFBfsueZw==} + '@cspell/dict-monkeyc@1.0.11': + resolution: {integrity: sha512-7Q1Ncu0urALI6dPTrEbSTd//UK0qjRBeaxhnm8uY5fgYNFYAG+u4gtnTIo59S6Bw5P++4H3DiIDYoQdY/lha8w==} + '@cspell/dict-node@5.0.7': resolution: {integrity: sha512-ZaPpBsHGQCqUyFPKLyCNUH2qzolDRm1/901IO8e7btk7bEDF56DN82VD43gPvD4HWz3yLs/WkcLa01KYAJpnOw==} + '@cspell/dict-node@5.0.8': + resolution: {integrity: sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==} + '@cspell/dict-npm@5.2.1': resolution: {integrity: sha512-aqcit8e/Hsnsmd2QoDDAaai+l80bQItwLggmlio/e5NTAfUu7qIVmx+/VFtUlXQH6sMKp+aAvxPC3K8tH86+qg==} - '@cspell/dict-npm@5.2.11': - resolution: {integrity: sha512-ImgO82P2rQlE7gjOZSmBT/ZHuR1qGklkt7WINwT73qaKepgz14k/xq1qYzQScl15Vuc3cUXi5OZNqYlTiquIHQ==} + '@cspell/dict-npm@5.2.12': + resolution: {integrity: sha512-f5xcEl6+JZCFvDCOKJJuKv1ZMOzq9sBg/7y/iuqkBOgjeGDdB+PSrOJWk2jqu3PzXjjX39KJkt7mRUzv8Mrh1g==} '@cspell/dict-php@4.0.14': resolution: {integrity: sha512-7zur8pyncYZglxNmqsRycOZ6inpDoVd4yFfz1pQRe5xaRWMiK3Km4n0/X/1YMWhh3e3Sl/fQg5Axb2hlN68t1g==} + '@cspell/dict-php@4.0.15': + resolution: {integrity: sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==} + '@cspell/dict-powershell@5.0.14': resolution: {integrity: sha512-ktjjvtkIUIYmj/SoGBYbr3/+CsRGNXGpvVANrY0wlm/IoGlGywhoTUDYN0IsGwI2b8Vktx3DZmQkfb3Wo38jBA==} + '@cspell/dict-powershell@5.0.15': + resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} + '@cspell/dict-public-licenses@2.0.13': resolution: {integrity: sha512-1Wdp/XH1ieim7CadXYE7YLnUlW0pULEjVl9WEeziZw3EKCAw8ZI8Ih44m4bEa5VNBLnuP5TfqC4iDautAleQzQ==} + '@cspell/dict-public-licenses@2.0.14': + resolution: {integrity: sha512-8NhNzQWALF6+NlLeKZKilSHbeW9MWeiD+NcrjehMAcovKFbsn8smmQG/bVxw+Ymtd6WEgNpLgswAqNsbSQQ4og==} + '@cspell/dict-python@4.2.17': resolution: {integrity: sha512-xqMKfVc8d7yDaOChFdL2uWAN3Mw9qObB/Zr6t5w1OHbi23gWs7V1lI9d0mXAoqSK6N3mosbum4OIq/FleQDnlw==} @@ -1760,18 +1909,33 @@ packages: '@cspell/dict-r@2.1.0': resolution: {integrity: sha512-k2512wgGG0lTpTYH9w5Wwco+lAMf3Vz7mhqV8+OnalIE7muA0RSuD9tWBjiqLcX8zPvEJr4LdgxVju8Gk3OKyA==} + '@cspell/dict-r@2.1.1': + resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} + '@cspell/dict-ruby@5.0.8': resolution: {integrity: sha512-ixuTneU0aH1cPQRbWJvtvOntMFfeQR2KxT8LuAv5jBKqQWIHSxzGlp+zX3SVyoeR0kOWiu64/O5Yn836A5yMcQ==} + '@cspell/dict-ruby@5.0.9': + resolution: {integrity: sha512-H2vMcERMcANvQshAdrVx0XoWaNX8zmmiQN11dZZTQAZaNJ0xatdJoSqY8C8uhEMW89bfgpN+NQgGuDXW2vmXEw==} + '@cspell/dict-rust@4.0.11': resolution: {integrity: sha512-OGWDEEzm8HlkSmtD8fV3pEcO2XBpzG2XYjgMCJCRwb2gRKvR+XIm6Dlhs04N/K2kU+iH8bvrqNpM8fS/BFl0uw==} + '@cspell/dict-rust@4.0.12': + resolution: {integrity: sha512-z2QiH+q9UlNhobBJArvILRxV8Jz0pKIK7gqu4TgmEYyjiu1TvnGZ1tbYHeu9w3I/wOP6UMDoCBTty5AlYfW0mw==} + '@cspell/dict-scala@5.0.7': resolution: {integrity: sha512-yatpSDW/GwulzO3t7hB5peoWwzo+Y3qTc0pO24Jf6f88jsEeKmDeKkfgPbYuCgbE4jisGR4vs4+jfQZDIYmXPA==} + '@cspell/dict-scala@5.0.8': + resolution: {integrity: sha512-YdftVmumv8IZq9zu1gn2U7A4bfM2yj9Vaupydotyjuc+EEZZSqAafTpvW/jKLWji2TgybM1L2IhmV0s/Iv9BTw==} + '@cspell/dict-shell@1.1.0': resolution: {integrity: sha512-D/xHXX7T37BJxNRf5JJHsvziFDvh23IF/KvkZXNSh8VqcRdod3BAz9VGHZf6VDqcZXr1VRqIYR3mQ8DSvs3AVQ==} + '@cspell/dict-shell@1.1.1': + resolution: {integrity: sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==} + '@cspell/dict-software-terms@5.0.5': resolution: {integrity: sha512-ZjAOa8FI8/JrxaRqKT3eS7AQXFjU174xxQoKYMkmdwSyNIj7WUCAg10UeLqeMjFVv36zIO0Hm0dD2+Bvn18SLA==} @@ -1781,12 +1945,21 @@ packages: '@cspell/dict-sql@2.2.0': resolution: {integrity: sha512-MUop+d1AHSzXpBvQgQkCiok8Ejzb+nrzyG16E8TvKL2MQeDwnIvMe3bv90eukP6E1HWb+V/MA/4pnq0pcJWKqQ==} + '@cspell/dict-sql@2.2.1': + resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} + '@cspell/dict-svelte@1.0.6': resolution: {integrity: sha512-8LAJHSBdwHCoKCSy72PXXzz7ulGROD0rP1CQ0StOqXOOlTUeSFaJJlxNYjlONgd2c62XBQiN2wgLhtPN+1Zv7Q==} + '@cspell/dict-svelte@1.0.7': + resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} + '@cspell/dict-swift@2.0.5': resolution: {integrity: sha512-3lGzDCwUmnrfckv3Q4eVSW3sK3cHqqHlPprFJZD4nAqt23ot7fic5ALR7J4joHpvDz36nHX34TgcbZNNZOC/JA==} + '@cspell/dict-swift@2.0.6': + resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} + '@cspell/dict-terraform@1.1.1': resolution: {integrity: sha512-07KFDwCU7EnKl4hOZLsLKlj6Zceq/IsQ3LRWUyIjvGFfZHdoGtFdCp3ZPVgnFaAcd/DKv+WVkrOzUBSYqHopQQ==} @@ -1802,12 +1975,15 @@ packages: '@cspell/dict-vue@3.0.4': resolution: {integrity: sha512-0dPtI0lwHcAgSiQFx8CzvqjdoXROcH+1LyqgROCpBgppommWpVhbQ0eubnKotFEXgpUCONVkeZJ6Ql8NbTEu+w==} + '@cspell/dict-vue@3.0.5': + resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} + '@cspell/dynamic-import@8.19.3': resolution: {integrity: sha512-haAl+/HOLAPc6Cs7YkbpyIK1Htomp3/D42scl2FCe4PU860uFyjyOWeq99u2wetDI/SQn1Ry3sSOKRCjIGlHWA==} engines: {node: '>=18.0'} - '@cspell/dynamic-import@9.1.3': - resolution: {integrity: sha512-+8PxTslsh+oTxmhYdnfQZ/brYGFAnfqLR9xotWE4Ks3HoaLOhZsp6FF9kvlEp/gNOjpyhHn1UhT/Gr5fT4+QhQ==} + '@cspell/dynamic-import@9.1.5': + resolution: {integrity: sha512-vf6mSD9XW3fvl/uXShiZJ58f+FV6uoOPoFV0+xyg78h80bpXOagJeAd/vy0YcGcP/kcAcgRK0q22wCeKkGbeOA==} engines: {node: '>=20'} '@cspell/eslint-plugin@8.19.3': @@ -1820,24 +1996,24 @@ packages: resolution: {integrity: sha512-j6WEjuvh3t2zsBUvZm6leGhcpQtuCMroSjyGLSE7xNM5SRYOdd+KkO81erwyA/yAweTGlI6wYyXofUd+mRVFMw==} engines: {node: '>=18'} - '@cspell/filetypes@9.1.3': - resolution: {integrity: sha512-HRJEggDo6OJJmCc/gq7oriMqkqVDema+oLpGBh1a/M7ulw+CzoHkOa//1ohpAJh5KsWj9Tej9Va4BUZ/SaCwUA==} + '@cspell/filetypes@9.1.5': + resolution: {integrity: sha512-Rhy+jBQwLKP6QnW2hIUYZiJ7TfJpTTW/gMfXJYf38BMIKkDlSx1bJV0j6VTcQF3EdqY6f5HmY48uDzNB87ygQQ==} engines: {node: '>=20'} '@cspell/strong-weak-map@8.19.3': resolution: {integrity: sha512-IKzzbVDEjAprH0vH16heKbqCMqNtdU4tZXbp7mjJ3P3Xodl4csERrFRNqSwlyQMqfpjVU5n+wO7BSq/2S/uzRg==} engines: {node: '>=18'} - '@cspell/strong-weak-map@9.1.3': - resolution: {integrity: sha512-+96SI9R6TOY+xGBOK5LiOgX/W/9gAKus1Cvngh2LdtDVZwgVqpqvm5LoXxLhUT+Vs5UsndRBzblSdNpziSwZtA==} + '@cspell/strong-weak-map@9.1.5': + resolution: {integrity: sha512-/IvDGDZAGk41Gm6i/YDpu7Cn47Ap6c+ZXHRb5/BdzK7oomSfeDA77YBTMJrbwSQQEt/NDY+5LXxmB161xIQxSw==} engines: {node: '>=20'} '@cspell/url@8.19.3': resolution: {integrity: sha512-EATITl9WlmOuhdlUluHlYXCV7LFPuSw9CZ4gejPpjyDwQJUQg4ktHVNfy3hJ5I3h4SEiW0GWd68Gd61McmTO2A==} engines: {node: '>=18.0'} - '@cspell/url@9.1.3': - resolution: {integrity: sha512-LQQKY0O4QYUNKyDod8VfEBvqeJNGHJlx1v0gDq00eMvaClnkIz+y2ObGdtDlF7ZbG7TgI6PQ3ahJdlqfRPe3ZQ==} + '@cspell/url@9.1.5': + resolution: {integrity: sha512-2AxwDCf4fwXF558Qf4fHUAreVUvEaRhWagkX3uO6PES+54/uNmLDmjL3Xl6R+GpGGrIeRrBGtc/nqAeamK9g+g==} engines: {node: '>=20'} '@csstools/color-helpers@5.0.1': @@ -2759,8 +2935,8 @@ packages: resolution: {integrity: sha512-k/1pb70eD638anoi0e8wUGAlbMJXyvdV4p62Ko+EZ7eBe1xMx8Uhak1R5DgfoofsK5IBBnRwsYGTaLZl+6/+RQ==} engines: {node: '>=18'} - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -3124,8 +3300,8 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} '@types/assert@1.5.11': resolution: {integrity: sha512-FjS1mxq2dlGr9N4z72/DO+XmyRS3ZZIoVn998MEopAN/OmyN28F4yumRL5pOw2z+hbFLuWGYuF2rrw5p11xM5A==} @@ -4063,6 +4239,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.14.1: resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} engines: {node: '>=0.4.0'} @@ -4072,10 +4253,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -4384,6 +4561,9 @@ packages: birpc@0.2.19: resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + blob-util@2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} @@ -4490,6 +4670,10 @@ packages: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -4513,6 +4697,10 @@ packages: caniuse-lite@1.0.30001700: resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} + canvas@3.1.0: + resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==} + engines: {node: ^18.12.0 || >= 20.9.0} + caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4603,6 +4791,9 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -4910,20 +5101,20 @@ packages: resolution: {integrity: sha512-GjSrLU1KFLVzFa5qQA8DMF04BXW6r3xnfhwHFqU/8tEqtQXxKemGWnc9mt42Ey5hoe366lvhbIoh+vUhGf/IKA==} engines: {node: '>=18'} - cspell-config-lib@9.1.3: - resolution: {integrity: sha512-B3DdOTZNIOQahSkOYqaq2fOc8fq/jFkrOFd36kge/GAyEpY2Um/Kp/GQ6caOcev+ju0h3iGaO24OLCx6QJ3YoQ==} + cspell-config-lib@9.1.5: + resolution: {integrity: sha512-VE3tsr2y+FwTENoAPFqzx8xE/+xTkllW3/i0HDRai5Kv8o35+ilTozY476bOI7fj445wNqPR8JstEdV314fdGA==} engines: {node: '>=20'} cspell-dictionary@8.19.3: resolution: {integrity: sha512-tycnHhLHvqKl4a2hVg/tIIai0wmcHHSAlgBAXAnSl+0g2DRrQ5GDT+9tHJ8B373o62jD8f5jHwbfJrLgHiNXWg==} engines: {node: '>=18'} - cspell-dictionary@9.1.3: - resolution: {integrity: sha512-BXWwYQ64LaSOd7+8TLZax3AeUnTJUuIl+Tl32/dqcVpgDF4P0eAUVE5xap+QZ2rzKRVFjD8r5M6IR2QrA23o0g==} + cspell-dictionary@9.1.5: + resolution: {integrity: sha512-UpMFtKs9O028yIxea/svTyUPPgNzlVdZXsht5O47nDuK+pVfZu+ngJOGSwmyoafQqd25jY00WRFXhQ5h503u1g==} engines: {node: '>=20'} - cspell-gitignore@9.1.3: - resolution: {integrity: sha512-yc7Td6L7ZHejm1OzwY/hyfBgyz3gpToMPDyztwbwOdrxXNLRIgDZVPvjVS67XvNf3dv55J19A/8r5Xd7yaV60w==} + cspell-gitignore@9.1.5: + resolution: {integrity: sha512-zTLVv0xhuMKxCTdy1M68MuOYvDD/6IKLg8aL+06kO2TM3tQR91mJVSrazT9c+AmmpstOhzcVGmXf6vBNNDUa0Q==} engines: {node: '>=20'} hasBin: true @@ -4931,8 +5122,8 @@ packages: resolution: {integrity: sha512-Fv4coZmCmqaNq2UfXhVqQbHschhAcm3rwoxPyBqQcDYpvCQ4Q2+qnHQkK1nAxmDjus4KFM/QKrBoxSlD90bD9g==} engines: {node: '>=18'} - cspell-glob@9.1.3: - resolution: {integrity: sha512-If7gSgbWlUhLcmNA9zPflWzdUZs4wyRKB/Ze584wrht7zJR4yJm2Rptk2+M8kXEhx3zYS6UGhSL0alPbVAbjgQ==} + cspell-glob@9.1.5: + resolution: {integrity: sha512-aMlUCSLcxVL7BdFAlxHHCvA/R35Jr457t4XJiJOoUCupybr5cBPvn8PNpEllBKhG60n6F/QN2uIt+r1tCJbAaQ==} engines: {node: '>=20'} cspell-grammar@8.19.3: @@ -4940,8 +5131,8 @@ packages: engines: {node: '>=18'} hasBin: true - cspell-grammar@9.1.3: - resolution: {integrity: sha512-L1OVY9RyZXPT+qesw0c7aRKTxQIC7nrLKDQ97hRrQhK23hv5Q8o7GVs1S7pXRNZ/oA8V+VNG2CgjLiKnVM2jnw==} + cspell-grammar@9.1.5: + resolution: {integrity: sha512-TSqlFZk2thBghPSEKb1DeLoLVxlko/KBrg7siCaJV8aBi0Juve48f4+rIfSW9L7Nd5Y7VpuYxI0iriP4LTE+Dw==} engines: {node: '>=20'} hasBin: true @@ -4949,28 +5140,28 @@ packages: resolution: {integrity: sha512-kJa4ZQdr6QwFEo3TxcyXBLAs2DiogrdtYa4tK87Wzyg3+Am1l7Z9AN8gZWQ+tZIi3BC0FYj4PsBdZ4qdmcY98g==} engines: {node: '>=18'} - cspell-io@9.1.3: - resolution: {integrity: sha512-fdgAVrthOY1pPsBZHWVjEVn6uHMAshj2n75eu2rvUd6EcmMuLR13EcIXHoMcQo/1Az05x2UgG7HuK+0MuRcikQ==} + cspell-io@9.1.5: + resolution: {integrity: sha512-i4bw5QDZp1yoxii+bmD/V6eFGIX5IzGwROko/6X84JHjtJGItiiA3kLfO69fZuXhzuzn9GjWRhSVX6wHafRAtQ==} engines: {node: '>=20'} cspell-lib@8.19.3: resolution: {integrity: sha512-tVxrZYG7VCjjzARoTBQ7F/3FCjIGbzN0YbFcB3g4KLvbEuH83uLXm2MNdN9yDMaiD1XZ0CzP14eKiwpSMT7tjQ==} engines: {node: '>=18'} - cspell-lib@9.1.3: - resolution: {integrity: sha512-egESsnErAPtC/wuqbHWW28eRKChkg5h+vFQQuZ0iThuOSZ65jeSM0ESOt8W3TH2JD7EGo2pvPED/7rZjjnMIcQ==} + cspell-lib@9.1.5: + resolution: {integrity: sha512-vxHPePzJRVFMN6NfKlCeekH11OZrxG7yW06BJ312tzsK/xovQ6Y+Rv2w2WC9h5TKHhPN2vP0aDPls/5ASH9PDA==} engines: {node: '>=20'} cspell-trie-lib@8.19.3: resolution: {integrity: sha512-Z33vT0M/Vi10L9XaxKPTQu0AA0nmq91QWY5CzBymZY7LhOf6yGYcCgoTHluQms8YLCWaiX9pgTOF2/W1wlNiVg==} engines: {node: '>=18'} - cspell-trie-lib@9.1.3: - resolution: {integrity: sha512-fvI0ede/rPr+SB0zX8le426c5lroNdmMTkl4fFk2e0w5/JZRHIfkuenhWe0MZeb18d1NPRIiLgxoD87zswLynw==} + cspell-trie-lib@9.1.5: + resolution: {integrity: sha512-wDP7wUH54vVrdDCkpd6W0H3DkWbYhYzm6yDGqi/aN/Z0q/ZR2tBByEY4IjYeJ6VNxhzJZq4+2xYZQaQkZWJgwQ==} engines: {node: '>=20'} - cspell@9.1.3: - resolution: {integrity: sha512-QxpQn9rGIZN/neMU4hx9T4s9AL5nyRhumNCdYHjjU8Pi4ztZOzuVWbOQD1Oq5ygb92Aci76/DwbJQ1dmb4631Q==} + cspell@9.1.5: + resolution: {integrity: sha512-AlFoGplH1YyRoCFHg2K0auS8vDna4yJjUiuP2mVZn82MaEKJQ4tMgnvUMdP+HtPP1lFlQ0iCvFr6+VVqCJVEDg==} engines: {node: '>=20'} hasBin: true @@ -5270,6 +5461,9 @@ packages: decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -5293,6 +5487,10 @@ packages: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -5838,6 +6036,10 @@ packages: resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + expect-type@1.1.0: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} @@ -6135,6 +6337,9 @@ packages: fromentries@1.3.2: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -6244,6 +6449,9 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -6559,6 +6767,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} @@ -7087,6 +7298,15 @@ packages: canvas: optional: true + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -7606,6 +7826,10 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-db@1.54.0: resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} @@ -7674,6 +7898,9 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -7724,6 +7951,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.0: resolution: {integrity: sha512-M7NqKyhODKV1gRLdkwE7pDsZP2/SC2a2vHkOYh9MCpKMbWVfyVfUw5MaH83Fv6XMjxr5jryUp3IDDL9rlxsTeA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -7749,6 +7979,13 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + node-abi@3.75.0: + resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + engines: {node: '>=10'} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-cleanup@2.1.2: resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} @@ -8279,6 +8516,11 @@ packages: preact@10.26.2: resolution: {integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + precinct@12.1.2: resolution: {integrity: sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==} engines: {node: '>=18'} @@ -8414,6 +8656,10 @@ packages: resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} engines: {node: '>= 0.8'} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -8866,6 +9112,12 @@ packages: resolution: {integrity: sha512-0LxHn+P1lF5r2WwVB/za3hLRIsYoLaNq1CXqjbrs3ZvLuvlWnRKrUjEWzV7umZL7hpQ7xULiQMV+0iXdRa5iFg==} engines: {node: '>=14.16'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -9121,6 +9373,10 @@ packages: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -9189,6 +9445,13 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + teen_process@1.16.0: resolution: {integrity: sha512-RnW7HHZD1XuhSTzD3djYOdIl1adE3oNEprE3HOFFxWs5m4FZsqYRhKJ4mDU2udtNGMLUS7jV7l8vVRLWAvmPDw==} engines: {'0': node} @@ -9808,8 +10071,8 @@ packages: yaml: optional: true - vite@7.0.3: - resolution: {integrity: sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==} + vite@7.0.4: + resolution: {integrity: sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -10070,10 +10333,6 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} - whatwg-url@14.1.1: resolution: {integrity: sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==} engines: {node: '>=18'} @@ -10782,14 +11041,42 @@ snapshots: '@csstools/css-tokenizer': 3.0.3 lru-cache: 10.4.3 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.27.2': {} + '@babel/core@7.26.9': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helpers': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + convert-source-map: 2.0.0 + debug: 4.4.0(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/core@7.27.1': dependencies: '@ampproject/remapping': 2.3.0 @@ -10821,7 +11108,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 convert-source-map: 2.0.0 debug: 4.4.0(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -10830,6 +11117,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/generator@7.26.9': + dependencies: + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + '@babel/generator@7.27.1': dependencies: '@babel/parser': 7.27.2 @@ -10841,7 +11136,7 @@ snapshots: '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 @@ -10850,6 +11145,14 @@ snapshots: dependencies: '@babel/types': 7.27.1 + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-compilation-targets@7.27.2': dependencies: '@babel/compat-data': 7.27.2 @@ -10858,6 +11161,19 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.27.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -10871,6 +11187,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.27.1 + regexpu-core: 6.2.0 + semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -10878,6 +11201,17 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.0(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -10898,10 +11232,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.27.1': dependencies: + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -10931,6 +11290,15 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-wrap-function': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -10940,6 +11308,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -10956,12 +11333,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.25.9': {} '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.27.1': @@ -10972,6 +11353,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helpers@7.26.9': + dependencies: + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 + '@babel/helpers@7.27.1': dependencies: '@babel/template': 7.27.2 @@ -10980,11 +11366,11 @@ snapshots: '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@babel/parser@7.26.9': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.26.9 '@babel/parser@7.27.2': dependencies: @@ -10992,7 +11378,15 @@ snapshots: '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.1)': dependencies: @@ -11002,16 +11396,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11021,6 +11434,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11029,6 +11450,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11053,11 +11478,21 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11078,9 +11513,9 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.27.1)': + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.26.9)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': @@ -11133,17 +11568,37 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.26.9) + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11153,6 +11608,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11162,16 +11626,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11180,6 +11662,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11188,6 +11678,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.9) + '@babel/traverse': 7.27.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11200,49 +11702,100 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11251,6 +11804,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11260,26 +11822,54 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11288,6 +11878,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11296,6 +11894,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11306,6 +11914,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11314,27 +11930,56 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11343,6 +11988,14 @@ snapshots: '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11351,11 +12004,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11364,11 +12030,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11377,6 +12056,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11386,32 +12074,66 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11420,44 +12142,157 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/preset-env@7.27.2(@babel/core@7.26.9)': + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.9) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-object-rest-spread': 7.27.2(@babel/core@7.26.9) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.26.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.9) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.9) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.9) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.9) + core-js-compat: 3.42.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/preset-env@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/compat-data': 7.27.2 @@ -11533,6 +12368,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.27.1 + esutils: 2.0.3 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11546,11 +12388,29 @@ snapshots: '@babel/runtime@7.27.1': {} + '@babel/template@7.26.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.1 + + '@babel/traverse@7.26.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 + debug: 4.4.0(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/traverse@7.27.1': dependencies: @@ -11571,22 +12431,22 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color '@babel/types@7.26.9': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 '@babel/types@7.27.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.0': + '@babel/types@7.28.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -11835,95 +12695,99 @@ snapshots: '@cspell/dict-typescript': 3.2.1 '@cspell/dict-vue': 3.0.4 - '@cspell/cspell-bundled-dicts@9.1.3': + '@cspell/cspell-bundled-dicts@9.1.5': dependencies: - '@cspell/dict-ada': 4.1.0 - '@cspell/dict-al': 1.1.0 + '@cspell/dict-ada': 4.1.1 + '@cspell/dict-al': 1.1.1 '@cspell/dict-aws': 4.0.12 - '@cspell/dict-bash': 4.2.0 + '@cspell/dict-bash': 4.2.1 '@cspell/dict-companies': 3.2.2 - '@cspell/dict-cpp': 6.0.8 - '@cspell/dict-cryptocurrencies': 5.0.4 - '@cspell/dict-csharp': 4.0.6 - '@cspell/dict-css': 4.0.17 - '@cspell/dict-dart': 2.3.0 - '@cspell/dict-data-science': 2.0.8 - '@cspell/dict-django': 4.1.4 + '@cspell/dict-cpp': 6.0.9 + '@cspell/dict-cryptocurrencies': 5.0.5 + '@cspell/dict-csharp': 4.0.7 + '@cspell/dict-css': 4.0.18 + '@cspell/dict-dart': 2.3.1 + '@cspell/dict-data-science': 2.0.9 + '@cspell/dict-django': 4.1.5 '@cspell/dict-docker': 1.1.15 - '@cspell/dict-dotnet': 5.0.9 - '@cspell/dict-elixir': 4.0.7 + '@cspell/dict-dotnet': 5.0.10 + '@cspell/dict-elixir': 4.0.8 '@cspell/dict-en-common-misspellings': 2.1.3 - '@cspell/dict-en-gb-mit': 3.1.4 - '@cspell/dict-en_us': 4.4.14 + '@cspell/dict-en-gb-mit': 3.1.5 + '@cspell/dict-en_us': 4.4.15 '@cspell/dict-filetypes': 3.0.13 - '@cspell/dict-flutter': 1.1.0 - '@cspell/dict-fonts': 4.0.4 - '@cspell/dict-fsharp': 1.1.0 - '@cspell/dict-fullstack': 3.2.6 - '@cspell/dict-gaming-terms': 1.1.1 + '@cspell/dict-flutter': 1.1.1 + '@cspell/dict-fonts': 4.0.5 + '@cspell/dict-fsharp': 1.1.1 + '@cspell/dict-fullstack': 3.2.7 + '@cspell/dict-gaming-terms': 1.1.2 '@cspell/dict-git': 3.0.7 '@cspell/dict-golang': 6.0.23 - '@cspell/dict-google': 1.0.8 - '@cspell/dict-haskell': 4.0.5 - '@cspell/dict-html': 4.0.11 - '@cspell/dict-html-symbol-entities': 4.0.3 - '@cspell/dict-java': 5.0.11 - '@cspell/dict-julia': 1.1.0 + '@cspell/dict-google': 1.0.9 + '@cspell/dict-haskell': 4.0.6 + '@cspell/dict-html': 4.0.12 + '@cspell/dict-html-symbol-entities': 4.0.4 + '@cspell/dict-java': 5.0.12 + '@cspell/dict-julia': 1.1.1 '@cspell/dict-k8s': 1.0.12 - '@cspell/dict-kotlin': 1.1.0 - '@cspell/dict-latex': 4.0.3 - '@cspell/dict-lorem-ipsum': 4.0.4 - '@cspell/dict-lua': 4.0.7 - '@cspell/dict-makefile': 1.0.4 - '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.3) - '@cspell/dict-monkeyc': 1.0.10 - '@cspell/dict-node': 5.0.7 - '@cspell/dict-npm': 5.2.11 - '@cspell/dict-php': 4.0.14 - '@cspell/dict-powershell': 5.0.14 - '@cspell/dict-public-licenses': 2.0.13 + '@cspell/dict-kotlin': 1.1.1 + '@cspell/dict-latex': 4.0.4 + '@cspell/dict-lorem-ipsum': 4.0.5 + '@cspell/dict-lua': 4.0.8 + '@cspell/dict-makefile': 1.0.5 + '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-monkeyc': 1.0.11 + '@cspell/dict-node': 5.0.8 + '@cspell/dict-npm': 5.2.12 + '@cspell/dict-php': 4.0.15 + '@cspell/dict-powershell': 5.0.15 + '@cspell/dict-public-licenses': 2.0.14 '@cspell/dict-python': 4.2.19 - '@cspell/dict-r': 2.1.0 - '@cspell/dict-ruby': 5.0.8 - '@cspell/dict-rust': 4.0.11 - '@cspell/dict-scala': 5.0.7 - '@cspell/dict-shell': 1.1.0 + '@cspell/dict-r': 2.1.1 + '@cspell/dict-ruby': 5.0.9 + '@cspell/dict-rust': 4.0.12 + '@cspell/dict-scala': 5.0.8 + '@cspell/dict-shell': 1.1.1 '@cspell/dict-software-terms': 5.1.4 - '@cspell/dict-sql': 2.2.0 - '@cspell/dict-svelte': 1.0.6 - '@cspell/dict-swift': 2.0.5 + '@cspell/dict-sql': 2.2.1 + '@cspell/dict-svelte': 1.0.7 + '@cspell/dict-swift': 2.0.6 '@cspell/dict-terraform': 1.1.3 '@cspell/dict-typescript': 3.2.3 - '@cspell/dict-vue': 3.0.4 + '@cspell/dict-vue': 3.0.5 - '@cspell/cspell-json-reporter@9.1.3': + '@cspell/cspell-json-reporter@9.1.5': dependencies: - '@cspell/cspell-types': 9.1.3 + '@cspell/cspell-types': 9.1.5 '@cspell/cspell-pipe@8.19.3': {} - '@cspell/cspell-pipe@9.1.3': {} + '@cspell/cspell-pipe@9.1.5': {} '@cspell/cspell-resolver@8.19.3': dependencies: global-directory: 4.0.1 - '@cspell/cspell-resolver@9.1.3': + '@cspell/cspell-resolver@9.1.5': dependencies: global-directory: 4.0.1 '@cspell/cspell-service-bus@8.19.3': {} - '@cspell/cspell-service-bus@9.1.3': {} + '@cspell/cspell-service-bus@9.1.5': {} '@cspell/cspell-types@8.19.3': {} - '@cspell/cspell-types@9.1.3': {} + '@cspell/cspell-types@9.1.5': {} '@cspell/dict-ada@4.1.0': {} + '@cspell/dict-ada@4.1.1': {} + '@cspell/dict-al@1.1.0': {} + '@cspell/dict-al@1.1.1': {} + '@cspell/dict-aws@4.0.10': {} '@cspell/dict-aws@4.0.12': {} @@ -11932,43 +12796,63 @@ snapshots: dependencies: '@cspell/dict-shell': 1.1.0 + '@cspell/dict-bash@4.2.1': + dependencies: + '@cspell/dict-shell': 1.1.1 + '@cspell/dict-companies@3.1.15': {} '@cspell/dict-companies@3.2.2': {} '@cspell/dict-cpp@6.0.8': {} + '@cspell/dict-cpp@6.0.9': {} + '@cspell/dict-cryptocurrencies@5.0.4': {} + '@cspell/dict-cryptocurrencies@5.0.5': {} + '@cspell/dict-csharp@4.0.6': {} + '@cspell/dict-csharp@4.0.7': {} + '@cspell/dict-css@4.0.17': {} + '@cspell/dict-css@4.0.18': {} + '@cspell/dict-dart@2.3.0': {} + '@cspell/dict-dart@2.3.1': {} + '@cspell/dict-data-science@2.0.8': {} '@cspell/dict-data-science@2.0.9': {} '@cspell/dict-django@4.1.4': {} + '@cspell/dict-django@4.1.5': {} + '@cspell/dict-docker@1.1.13': {} '@cspell/dict-docker@1.1.15': {} + '@cspell/dict-dotnet@5.0.10': {} + '@cspell/dict-dotnet@5.0.9': {} '@cspell/dict-elixir@4.0.7': {} + '@cspell/dict-elixir@4.0.8': {} + '@cspell/dict-en-common-misspellings@2.0.10': {} '@cspell/dict-en-common-misspellings@2.1.3': {} - '@cspell/dict-en-gb-mit@3.1.4': {} + '@cspell/dict-en-gb-mit@3.1.5': {} '@cspell/dict-en-gb@1.1.33': {} - '@cspell/dict-en_us@4.4.14': {} + '@cspell/dict-en_us@4.4.15': {} '@cspell/dict-en_us@4.4.3': {} @@ -11978,14 +12862,24 @@ snapshots: '@cspell/dict-flutter@1.1.0': {} + '@cspell/dict-flutter@1.1.1': {} + '@cspell/dict-fonts@4.0.4': {} + '@cspell/dict-fonts@4.0.5': {} + '@cspell/dict-fsharp@1.1.0': {} + '@cspell/dict-fsharp@1.1.1': {} + '@cspell/dict-fullstack@3.2.6': {} + '@cspell/dict-fullstack@3.2.7': {} + '@cspell/dict-gaming-terms@1.1.1': {} + '@cspell/dict-gaming-terms@1.1.2': {} + '@cspell/dict-git@3.0.4': {} '@cspell/dict-git@3.0.7': {} @@ -11996,30 +12890,52 @@ snapshots: '@cspell/dict-google@1.0.8': {} + '@cspell/dict-google@1.0.9': {} + '@cspell/dict-haskell@4.0.5': {} + '@cspell/dict-haskell@4.0.6': {} + '@cspell/dict-html-symbol-entities@4.0.3': {} + '@cspell/dict-html-symbol-entities@4.0.4': {} + '@cspell/dict-html@4.0.11': {} + '@cspell/dict-html@4.0.12': {} + '@cspell/dict-java@5.0.11': {} + '@cspell/dict-java@5.0.12': {} + '@cspell/dict-julia@1.1.0': {} + '@cspell/dict-julia@1.1.1': {} + '@cspell/dict-k8s@1.0.10': {} '@cspell/dict-k8s@1.0.12': {} '@cspell/dict-kotlin@1.1.0': {} + '@cspell/dict-kotlin@1.1.1': {} + '@cspell/dict-latex@4.0.3': {} + '@cspell/dict-latex@4.0.4': {} + '@cspell/dict-lorem-ipsum@4.0.4': {} + '@cspell/dict-lorem-ipsum@4.0.5': {} + '@cspell/dict-lua@4.0.7': {} + '@cspell/dict-lua@4.0.8': {} + '@cspell/dict-makefile@1.0.4': {} + '@cspell/dict-makefile@1.0.5': {} + '@cspell/dict-markdown@2.0.10(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.1)': dependencies: '@cspell/dict-css': 4.0.17 @@ -12027,27 +12943,37 @@ snapshots: '@cspell/dict-html-symbol-entities': 4.0.3 '@cspell/dict-typescript': 3.2.1 - '@cspell/dict-markdown@2.0.12(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.3)': + '@cspell/dict-markdown@2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3)': dependencies: - '@cspell/dict-css': 4.0.17 - '@cspell/dict-html': 4.0.11 - '@cspell/dict-html-symbol-entities': 4.0.3 + '@cspell/dict-css': 4.0.18 + '@cspell/dict-html': 4.0.12 + '@cspell/dict-html-symbol-entities': 4.0.4 '@cspell/dict-typescript': 3.2.3 '@cspell/dict-monkeyc@1.0.10': {} + '@cspell/dict-monkeyc@1.0.11': {} + '@cspell/dict-node@5.0.7': {} + '@cspell/dict-node@5.0.8': {} + '@cspell/dict-npm@5.2.1': {} - '@cspell/dict-npm@5.2.11': {} + '@cspell/dict-npm@5.2.12': {} '@cspell/dict-php@4.0.14': {} + '@cspell/dict-php@4.0.15': {} + '@cspell/dict-powershell@5.0.14': {} + '@cspell/dict-powershell@5.0.15': {} + '@cspell/dict-public-licenses@2.0.13': {} + '@cspell/dict-public-licenses@2.0.14': {} + '@cspell/dict-python@4.2.17': dependencies: '@cspell/dict-data-science': 2.0.8 @@ -12058,24 +12984,40 @@ snapshots: '@cspell/dict-r@2.1.0': {} + '@cspell/dict-r@2.1.1': {} + '@cspell/dict-ruby@5.0.8': {} + '@cspell/dict-ruby@5.0.9': {} + '@cspell/dict-rust@4.0.11': {} + '@cspell/dict-rust@4.0.12': {} + '@cspell/dict-scala@5.0.7': {} + '@cspell/dict-scala@5.0.8': {} + '@cspell/dict-shell@1.1.0': {} + '@cspell/dict-shell@1.1.1': {} + '@cspell/dict-software-terms@5.0.5': {} '@cspell/dict-software-terms@5.1.4': {} '@cspell/dict-sql@2.2.0': {} + '@cspell/dict-sql@2.2.1': {} + '@cspell/dict-svelte@1.0.6': {} + '@cspell/dict-svelte@1.0.7': {} + '@cspell/dict-swift@2.0.5': {} + '@cspell/dict-swift@2.0.6': {} + '@cspell/dict-terraform@1.1.1': {} '@cspell/dict-terraform@1.1.3': {} @@ -12086,14 +13028,16 @@ snapshots: '@cspell/dict-vue@3.0.4': {} + '@cspell/dict-vue@3.0.5': {} + '@cspell/dynamic-import@8.19.3': dependencies: '@cspell/url': 8.19.3 import-meta-resolve: 4.1.0 - '@cspell/dynamic-import@9.1.3': + '@cspell/dynamic-import@9.1.5': dependencies: - '@cspell/url': 9.1.3 + '@cspell/url': 9.1.5 import-meta-resolve: 4.1.0 '@cspell/eslint-plugin@8.19.3(eslint@9.26.0(jiti@2.4.2))': @@ -12106,15 +13050,15 @@ snapshots: '@cspell/filetypes@8.19.3': {} - '@cspell/filetypes@9.1.3': {} + '@cspell/filetypes@9.1.5': {} '@cspell/strong-weak-map@8.19.3': {} - '@cspell/strong-weak-map@9.1.3': {} + '@cspell/strong-weak-map@9.1.5': {} '@cspell/url@8.19.3': {} - '@cspell/url@9.1.3': {} + '@cspell/url@9.1.5': {} '@csstools/color-helpers@5.0.1': {} @@ -12136,12 +13080,12 @@ snapshots: '@csstools/css-tokenizer@3.0.3': {} - '@cypress/code-coverage@3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.0.3)(webpack@5.95.0(esbuild@0.25.0))': + '@cypress/code-coverage@3.13.4(@babel/core@7.26.9)(@babel/preset-env@7.27.2(@babel/core@7.26.9))(babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.0.3)(webpack@5.95.0(esbuild@0.25.0))': dependencies: - '@babel/core': 7.27.1 - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) - '@cypress/webpack-preprocessor': 6.0.2(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(webpack@5.95.0(esbuild@0.25.0)) - babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)) + '@babel/core': 7.26.9 + '@babel/preset-env': 7.27.2(@babel/core@7.26.9) + '@cypress/webpack-preprocessor': 6.0.2(@babel/core@7.26.9)(@babel/preset-env@7.27.2(@babel/core@7.26.9))(babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)))(webpack@5.95.0(esbuild@0.25.0)) + babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)) chalk: 4.1.2 cypress: 14.0.3 dayjs: 1.11.13 @@ -12176,11 +13120,11 @@ snapshots: tunnel-agent: 0.6.0 uuid: 8.3.2 - '@cypress/webpack-preprocessor@6.0.2(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(webpack@5.95.0(esbuild@0.25.0))': + '@cypress/webpack-preprocessor@6.0.2(@babel/core@7.26.9)(@babel/preset-env@7.27.2(@babel/core@7.26.9))(babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)))(webpack@5.95.0(esbuild@0.25.0))': dependencies: - '@babel/core': 7.27.1 - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) - babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)) + '@babel/core': 7.26.9 + '@babel/preset-env': 7.27.2(@babel/core@7.26.9) + babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)) bluebird: 3.7.1 debug: 4.4.0(supports-color@8.1.1) lodash: 4.17.21 @@ -12977,11 +13921,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@napi-rs/wasm-runtime@0.2.11': + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.4.4 '@emnapi/runtime': 1.4.4 - '@tybys/wasm-util': 0.9.0 + '@tybys/wasm-util': 0.10.0 optional: true '@nodelib/fs.scandir@2.1.5': @@ -13283,7 +14227,7 @@ snapshots: '@tootallnate/once@2.0.0': {} - '@tybys/wasm-util@0.9.0': + '@tybys/wasm-util@0.10.0': dependencies: tslib: 2.8.1 optional: true @@ -14027,7 +14971,7 @@ snapshots: '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 + '@napi-rs/wasm-runtime': 0.2.12 optional: true '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': @@ -14068,7 +15012,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0(canvas@3.1.0))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -14115,7 +15059,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.12 tinyrainbow: 2.0.0 - vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0(canvas@3.1.0))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) '@vitest/utils@3.0.6': dependencies: @@ -14132,7 +15076,7 @@ snapshots: '@vue/compiler-core@3.5.13': dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.26.9 '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 @@ -14145,7 +15089,7 @@ snapshots: '@vue/compiler-sfc@3.5.13': dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.26.9 '@vue/compiler-core': 3.5.13 '@vue/compiler-dom': 3.5.13 '@vue/compiler-ssr': 3.5.13 @@ -14440,6 +15384,8 @@ snapshots: acorn@8.12.1: {} + acorn@8.14.0: {} + acorn@8.14.1: {} agent-base@6.0.2: @@ -14448,12 +15394,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.1: - dependencies: - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - agent-base@7.1.3: {} aggregate-error@3.1.0: @@ -14596,7 +15536,7 @@ snapshots: array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 is-array-buffer: 3.0.5 array-flatten@1.1.1: {} @@ -14681,9 +15621,9 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)): + babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.95.0(esbuild@0.25.0)): dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.26.9 find-cache-dir: 4.0.0 schema-utils: 4.3.2 webpack: 5.95.0(esbuild@0.25.0) @@ -14701,9 +15641,18 @@ snapshots: babel-plugin-jest-hoist@30.0.1: dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/babel__core': 7.20.5 + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.9): + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.26.9 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.9) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.1): dependencies: '@babel/compat-data': 7.27.2 @@ -14713,6 +15662,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.9): + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.9) + core-js-compat: 3.42.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -14721,6 +15678,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.26.9): + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -14780,6 +15744,12 @@ snapshots: birpc@0.2.19: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + blob-util@2.0.2: {} bluebird@3.7.1: {} @@ -14920,9 +15890,14 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.2.7 + call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -14938,6 +15913,11 @@ snapshots: caniuse-lite@1.0.30001700: {} + canvas@3.1.0: + dependencies: + node-addon-api: 7.1.1 + prebuild-install: 7.1.3 + caseless@0.12.0: {} ccount@2.0.1: {} @@ -15036,6 +16016,8 @@ snapshots: dependencies: readdirp: 4.1.2 + chownr@1.1.4: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -15190,7 +16172,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.54.0 + mime-db: 1.53.0 compression@1.7.4: dependencies: @@ -15336,9 +16318,9 @@ snapshots: comment-json: 4.2.5 yaml: 2.7.1 - cspell-config-lib@9.1.3: + cspell-config-lib@9.1.5: dependencies: - '@cspell/cspell-types': 9.1.3 + '@cspell/cspell-types': 9.1.5 comment-json: 4.2.5 smol-toml: 1.4.1 yaml: 2.8.0 @@ -15350,27 +16332,27 @@ snapshots: cspell-trie-lib: 8.19.3 fast-equals: 5.2.2 - cspell-dictionary@9.1.3: + cspell-dictionary@9.1.5: dependencies: - '@cspell/cspell-pipe': 9.1.3 - '@cspell/cspell-types': 9.1.3 - cspell-trie-lib: 9.1.3 + '@cspell/cspell-pipe': 9.1.5 + '@cspell/cspell-types': 9.1.5 + cspell-trie-lib: 9.1.5 fast-equals: 5.2.2 - cspell-gitignore@9.1.3: + cspell-gitignore@9.1.5: dependencies: - '@cspell/url': 9.1.3 - cspell-glob: 9.1.3 - cspell-io: 9.1.3 + '@cspell/url': 9.1.5 + cspell-glob: 9.1.5 + cspell-io: 9.1.5 cspell-glob@8.19.3: dependencies: '@cspell/url': 8.19.3 picomatch: 4.0.2 - cspell-glob@9.1.3: + cspell-glob@9.1.5: dependencies: - '@cspell/url': 9.1.3 + '@cspell/url': 9.1.5 picomatch: 4.0.2 cspell-grammar@8.19.3: @@ -15378,20 +16360,20 @@ snapshots: '@cspell/cspell-pipe': 8.19.3 '@cspell/cspell-types': 8.19.3 - cspell-grammar@9.1.3: + cspell-grammar@9.1.5: dependencies: - '@cspell/cspell-pipe': 9.1.3 - '@cspell/cspell-types': 9.1.3 + '@cspell/cspell-pipe': 9.1.5 + '@cspell/cspell-types': 9.1.5 cspell-io@8.19.3: dependencies: '@cspell/cspell-service-bus': 8.19.3 '@cspell/url': 8.19.3 - cspell-io@9.1.3: + cspell-io@9.1.5: dependencies: - '@cspell/cspell-service-bus': 9.1.3 - '@cspell/url': 9.1.3 + '@cspell/cspell-service-bus': 9.1.5 + '@cspell/url': 9.1.5 cspell-lib@8.19.3: dependencies: @@ -15420,24 +16402,24 @@ snapshots: vscode-uri: 3.1.0 xdg-basedir: 5.1.0 - cspell-lib@9.1.3: + cspell-lib@9.1.5: dependencies: - '@cspell/cspell-bundled-dicts': 9.1.3 - '@cspell/cspell-pipe': 9.1.3 - '@cspell/cspell-resolver': 9.1.3 - '@cspell/cspell-types': 9.1.3 - '@cspell/dynamic-import': 9.1.3 - '@cspell/filetypes': 9.1.3 - '@cspell/strong-weak-map': 9.1.3 - '@cspell/url': 9.1.3 + '@cspell/cspell-bundled-dicts': 9.1.5 + '@cspell/cspell-pipe': 9.1.5 + '@cspell/cspell-resolver': 9.1.5 + '@cspell/cspell-types': 9.1.5 + '@cspell/dynamic-import': 9.1.5 + '@cspell/filetypes': 9.1.5 + '@cspell/strong-weak-map': 9.1.5 + '@cspell/url': 9.1.5 clear-module: 4.1.2 comment-json: 4.2.5 - cspell-config-lib: 9.1.3 - cspell-dictionary: 9.1.3 - cspell-glob: 9.1.3 - cspell-grammar: 9.1.3 - cspell-io: 9.1.3 - cspell-trie-lib: 9.1.3 + cspell-config-lib: 9.1.5 + cspell-dictionary: 9.1.5 + cspell-glob: 9.1.5 + cspell-grammar: 9.1.5 + cspell-io: 9.1.5 + cspell-trie-lib: 9.1.5 env-paths: 3.0.0 fast-equals: 5.2.2 gensequence: 7.0.0 @@ -15453,28 +16435,28 @@ snapshots: '@cspell/cspell-types': 8.19.3 gensequence: 7.0.0 - cspell-trie-lib@9.1.3: + cspell-trie-lib@9.1.5: dependencies: - '@cspell/cspell-pipe': 9.1.3 - '@cspell/cspell-types': 9.1.3 + '@cspell/cspell-pipe': 9.1.5 + '@cspell/cspell-types': 9.1.5 gensequence: 7.0.0 - cspell@9.1.3: + cspell@9.1.5: dependencies: - '@cspell/cspell-json-reporter': 9.1.3 - '@cspell/cspell-pipe': 9.1.3 - '@cspell/cspell-types': 9.1.3 - '@cspell/dynamic-import': 9.1.3 - '@cspell/url': 9.1.3 + '@cspell/cspell-json-reporter': 9.1.5 + '@cspell/cspell-pipe': 9.1.5 + '@cspell/cspell-types': 9.1.5 + '@cspell/dynamic-import': 9.1.5 + '@cspell/url': 9.1.5 chalk: 5.4.1 chalk-template: 1.1.0 commander: 14.0.0 - cspell-config-lib: 9.1.3 - cspell-dictionary: 9.1.3 - cspell-gitignore: 9.1.3 - cspell-glob: 9.1.3 - cspell-io: 9.1.3 - cspell-lib: 9.1.3 + cspell-config-lib: 9.1.5 + cspell-dictionary: 9.1.5 + cspell-gitignore: 9.1.5 + cspell-glob: 9.1.5 + cspell-io: 9.1.5 + cspell-lib: 9.1.5 fast-json-stable-stringify: 2.1.0 file-entry-cache: 9.1.0 semver: 7.7.2 @@ -15514,14 +16496,14 @@ snapshots: transitivePeerDependencies: - jest - cypress-split@1.24.14(@babel/core@7.27.1): + cypress-split@1.24.14(@babel/core@7.26.9): dependencies: '@actions/core': 1.11.1 arg: 5.0.2 console.table: 0.10.0 debug: 4.4.0(supports-color@8.1.1) fast-shuffle: 6.1.0 - find-cypress-specs: 1.47.9(@babel/core@7.27.1) + find-cypress-specs: 1.47.9(@babel/core@7.26.9) globby: 11.1.0 humanize-duration: 3.32.1 transitivePeerDependencies: @@ -15769,7 +16751,7 @@ snapshots: data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.1 data-view-buffer@1.0.2: dependencies: @@ -15829,6 +16811,8 @@ snapshots: decimal.js@10.4.3: {} + decimal.js@10.5.0: {} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -15846,7 +16830,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 es-get-iterator: 1.1.3 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-arguments: 1.1.1 is-array-buffer: 3.0.5 is-date-object: 1.1.0 @@ -15862,6 +16846,8 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.18 + deep-extend@0.6.0: {} + deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -16167,7 +17153,7 @@ snapshots: es-get-iterator@1.1.3: dependencies: call-bind: 1.0.8 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 has-symbols: 1.1.0 is-arguments: 1.1.1 is-map: 2.0.3 @@ -16559,6 +17545,8 @@ snapshots: exit-x@0.2.2: {} + expand-template@2.0.3: {} + expect-type@1.1.0: {} expect@30.0.4: @@ -16844,13 +17832,13 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - find-cypress-specs@1.47.9(@babel/core@7.27.1): + find-cypress-specs@1.47.9(@babel/core@7.26.9): dependencies: '@actions/core': 1.11.1 arg: 5.0.2 console.table: 0.10.0 debug: 4.4.0(supports-color@8.1.1) - find-test-names: 1.29.5(@babel/core@7.27.1) + find-test-names: 1.29.5(@babel/core@7.26.9) globby: 11.1.0 minimatch: 3.1.2 pluralize: 8.0.0 @@ -16874,10 +17862,10 @@ snapshots: commander: 12.1.0 loglevel: 1.9.2 - find-test-names@1.29.5(@babel/core@7.27.1): + find-test-names@1.29.5(@babel/core@7.26.9): dependencies: - '@babel/parser': 7.27.2 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.27.1) + '@babel/parser': 7.26.9 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.26.9) acorn-walk: 8.3.4 debug: 4.4.0(supports-color@8.1.1) globby: 11.1.0 @@ -16972,6 +17960,8 @@ snapshots: fromentries@1.3.2: {} + fs-constants@1.0.0: {} + fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 @@ -17101,6 +18091,8 @@ snapshots: dependencies: assert-plus: 1.0.0 + github-from-package@0.0.0: {} + github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -17343,7 +18335,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 + agent-base: 7.1.3 debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17457,6 +18449,8 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + ini@2.0.0: {} ini@3.0.1: {} @@ -17496,8 +18490,8 @@ snapshots: is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 is-arrayish@0.2.1: {} @@ -17521,7 +18515,7 @@ snapshots: is-boolean-object@1.2.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-builtin-module@5.0.0: @@ -17542,7 +18536,7 @@ snapshots: is-date-object@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-decimal@1.0.4: {} @@ -17591,7 +18585,7 @@ snapshots: is-number-object@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -17614,7 +18608,7 @@ snapshots: is-regex@1.2.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -17625,7 +18619,7 @@ snapshots: is-shared-array-buffer@1.0.4: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 is-stream@1.1.0: {} @@ -17633,7 +18627,7 @@ snapshots: is-string@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-subdir@1.2.0: @@ -17642,7 +18636,7 @@ snapshots: is-symbol@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-symbols: 1.1.0 safe-regex-test: 1.1.0 @@ -17667,7 +18661,7 @@ snapshots: is-weakset@2.0.3: dependencies: call-bind: 1.0.8 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-what@4.1.16: {} @@ -17695,7 +18689,7 @@ snapshots: istanbul-lib-instrument@4.0.3: dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.26.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -17704,8 +18698,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.27.1 - '@babel/parser': 7.27.2 + '@babel/core': 7.26.9 + '@babel/parser': 7.26.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.1 @@ -18024,7 +19018,7 @@ snapshots: '@babel/generator': 7.28.0 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@jest/expect-utils': 30.0.4 '@jest/get-type': 30.0.1 '@jest/snapshot-utils': 30.0.4 @@ -18149,7 +19143,7 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} - jsdom@26.0.0: + jsdom@26.0.0(canvas@3.1.0): dependencies: cssstyle: 4.2.1 data-urls: 5.0.0 @@ -18172,6 +19166,37 @@ snapshots: whatwg-url: 14.1.1 ws: 8.18.0 xml-name-validator: 5.0.0 + optionalDependencies: + canvas: 3.1.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsdom@26.1.0(canvas@3.1.0): + dependencies: + cssstyle: 4.2.1 + data-urls: 5.0.0 + decimal.js: 10.5.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.16 + parse5: 7.2.1 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.1 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.1.1 + ws: 8.18.0 + xml-name-validator: 5.0.0 + optionalDependencies: + canvas: 3.1.0 transitivePeerDependencies: - bufferutil - supports-color @@ -18889,6 +19914,8 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-db@1.54.0: {} mime-types@2.1.35: @@ -18937,13 +19964,15 @@ snapshots: mitt@3.0.1: {} + mkdirp-classic@0.5.3: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 mlly@1.7.4: dependencies: - acorn: 8.14.1 + acorn: 8.14.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.5.4 @@ -18985,6 +20014,8 @@ snapshots: nanoid@3.3.11: {} + napi-build-utils@2.0.0: {} + napi-postinstall@0.3.0: {} natural-compare@1.4.0: {} @@ -18999,6 +20030,12 @@ snapshots: nice-try@1.0.5: {} + node-abi@3.75.0: + dependencies: + semver: 7.7.1 + + node-addon-api@7.1.1: {} + node-cleanup@2.1.2: {} node-domexception@1.0.0: {} @@ -19035,7 +20072,7 @@ snapshots: node-source-walk@7.0.0: dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.26.9 nomnom@1.5.2: dependencies: @@ -19136,7 +20173,7 @@ snapshots: object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 @@ -19541,6 +20578,21 @@ snapshots: preact@10.26.2: {} + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.75.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + precinct@12.1.2: dependencies: '@dependents/detective-less': 5.0.0 @@ -19670,6 +20722,13 @@ snapshots: iconv-lite: 0.6.3 unpipe: 1.0.0 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + react-is@18.3.1: {} read-cache@1.0.0: @@ -20022,7 +21081,7 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 is-regex: 1.2.1 @@ -20160,7 +21219,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -20249,16 +21308,16 @@ snapshots: side-channel-map@1.0.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-inspect: 1.13.4 side-channel-map: 1.0.1 @@ -20278,6 +21337,14 @@ snapshots: simple-bin-help@1.8.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -20588,6 +21655,8 @@ snapshots: dependencies: min-indent: 1.0.1 + strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} stylis@4.3.6: {} @@ -20673,6 +21742,21 @@ snapshots: tapable@2.2.1: {} + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + teen_process@1.16.0: dependencies: '@babel/runtime': 7.26.9 @@ -20723,7 +21807,7 @@ snapshots: terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -21123,7 +22207,7 @@ snapshots: unplugin@2.2.0: dependencies: - acorn: 8.14.1 + acorn: 8.14.0 webpack-virtual-modules: 0.6.2 unrs-resolver@1.11.1: @@ -21225,7 +22309,7 @@ snapshots: - tsx - yaml - vite-plugin-istanbul@7.0.0(vite@7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)): + vite-plugin-istanbul@7.0.0(vite@7.0.4(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)): dependencies: '@istanbuljs/load-nyc-config': 1.1.0 espree: 10.3.0 @@ -21233,7 +22317,7 @@ snapshots: picocolors: 1.1.1 source-map: 0.7.4 test-exclude: 7.0.1 - vite: 7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vite: 7.0.4(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -21284,7 +22368,7 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vite@7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): + vite@7.0.4(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): dependencies: esbuild: 0.25.0 fdir: 6.4.6(picomatch@4.0.2) @@ -21359,7 +22443,7 @@ snapshots: - typescript - universal-cookie - vitest@3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): + vitest@3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0(canvas@3.1.0))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): dependencies: '@vitest/expect': 3.0.6 '@vitest/mocker': 3.0.6(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)) @@ -21385,7 +22469,7 @@ snapshots: '@types/debug': 4.1.12 '@types/node': 22.13.5 '@vitest/ui': 3.0.6(vitest@3.0.6) - jsdom: 26.0.0 + jsdom: 26.0.0(canvas@3.1.0) transitivePeerDependencies: - jiti - less @@ -21660,11 +22744,6 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: - dependencies: - tr46: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-url@14.1.1: dependencies: tr46: 5.0.0 @@ -21718,7 +22797,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 for-each: 0.3.5 gopd: 1.2.0 has-tostringtag: 1.0.2 diff --git a/vite.config.ts b/vite.config.ts index 0930de5b6..c4738458e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -16,7 +16,6 @@ export default defineConfig({ environment: 'jsdom', globals: true, // TODO: should we move this to a mermaid-core package? - setupFiles: ['packages/mermaid/src/tests/setup.ts'], coverage: { provider: 'v8', reporter: ['text', 'json', 'html', 'lcov'], From 28840ebd8464896b21db359791fa19f8cf92a998 Mon Sep 17 00:00:00 2001 From: quilicicf Date: Sun, 22 Jun 2025 13:45:24 +0200 Subject: [PATCH 12/32] test(refactor): Provide SVG selection in `jsdomIt` function --- packages/mermaid/src/accessibility.spec.ts | 114 +++++++++------------ packages/mermaid/src/tests/util.ts | 11 +- 2 files changed, 59 insertions(+), 66 deletions(-) diff --git a/packages/mermaid/src/accessibility.spec.ts b/packages/mermaid/src/accessibility.spec.ts index 7dbdf6c7f..8e4a268df 100644 --- a/packages/mermaid/src/accessibility.spec.ts +++ b/packages/mermaid/src/accessibility.spec.ts @@ -1,27 +1,23 @@ import { addSVGa11yTitleDescription, setA11yDiagramInfo } from './accessibility.js'; import { ensureNodeFromSelector, jsdomIt } from './tests/util.js'; -import { select } from 'd3'; import { expect } from 'vitest'; describe('accessibility', () => { describe('setA11yDiagramInfo', () => { - jsdomIt('should set svg element role to "graphics-document document"', () => { - const svgSelection = select('svg'); - setA11yDiagramInfo(svgSelection, 'flowchart'); + jsdomIt('should set svg element role to "graphics-document document"', ({ svg }) => { + setA11yDiagramInfo(svg, 'flowchart'); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('role')).toBe('graphics-document document'); }); - jsdomIt('should set aria-roledescription to the diagram type', () => { - const svgSelection = select('svg'); - setA11yDiagramInfo(svgSelection, 'flowchart'); + jsdomIt('should set aria-roledescription to the diagram type', ({ svg }) => { + setA11yDiagramInfo(svg, 'flowchart'); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-roledescription')).toBe('flowchart'); }); - jsdomIt('should not set aria-roledescription if the diagram type is empty', () => { - const svgSelection = select('svg'); - setA11yDiagramInfo(svgSelection, ''); + jsdomIt('should not set aria-roledescription if the diagram type is empty', ({ svg }) => { + setA11yDiagramInfo(svg, ''); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-roledescription')).toBeNull(); }); @@ -46,25 +42,25 @@ describe('accessibility', () => { describe('with a11y description', () => { const a11yDesc = 'a11y description'; - jsdomIt('should set aria-labelledby to the title id inserted as a child', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should set aria-labelledby to the title id inserted as a child', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-labelledby')).toBe(`chart-title-${givenId}`); }); - jsdomIt('should set aria-describedby to the description id inserted as a child', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); - const svgNode = ensureNodeFromSelector('svg'); - expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${givenId}`); - }); + jsdomIt( + 'should set aria-describedby to the description id inserted as a child', + ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${givenId}`); + } + ); jsdomIt( 'should insert title tag as the first child with the text set to the accTitle given', - () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const titleNode = ensureNodeFromSelector('title', svgNode); expect(titleNode?.innerHTML).toBe(a11yTitle); @@ -73,9 +69,8 @@ describe('accessibility', () => { jsdomIt( 'should insert desc tag as the 2nd child with the text set to accDescription given', - () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const descNode = ensureNodeFromSelector('desc', svgNode); expect(descNode?.innerHTML).toBe(a11yDesc); @@ -86,34 +81,30 @@ describe('accessibility', () => { describe(`without a11y description`, {}, () => { const a11yDesc = undefined; - jsdomIt('should set aria-labelledby to the title id inserted as a child', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should set aria-labelledby to the title id inserted as a child', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-labelledby')).toBe(`chart-title-${givenId}`); }); - jsdomIt('should not set aria-describedby', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not set aria-describedby', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-describedby')).toBeNull(); }); jsdomIt( 'should insert title tag as the first child with the text set to the accTitle given', - () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const titleNode = ensureNodeFromSelector('title', svgNode); expect(titleNode?.innerHTML).toBe(a11yTitle); } ); - jsdomIt('should not insert description tag', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not insert description tag', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const descNode = svgNode.querySelector('desc'); expect(descNode).toBeNull(); @@ -127,33 +118,32 @@ describe('accessibility', () => { describe('with a11y description', () => { const a11yDesc = 'a11y description'; - jsdomIt('should not set aria-labelledby', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not set aria-labelledby', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-labelledby')).toBeNull(); }); - jsdomIt('should not insert title tag', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not insert title tag', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const titleNode = svgNode.querySelector('title'); expect(titleNode).toBeNull(); }); - jsdomIt('should set aria-describedby to the description id inserted as a child', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); - const svgNode = ensureNodeFromSelector('svg'); - expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${givenId}`); - }); + jsdomIt( + 'should set aria-describedby to the description id inserted as a child', + ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); + const svgNode = ensureNodeFromSelector('svg'); + expect(svgNode.getAttribute('aria-describedby')).toBe(`chart-desc-${givenId}`); + } + ); jsdomIt( 'should insert desc tag as the 2nd child with the text set to accDescription given', - () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const descNode = ensureNodeFromSelector('desc', svgNode); expect(descNode?.innerHTML).toBe(a11yDesc); @@ -164,31 +154,27 @@ describe('accessibility', () => { describe('without a11y description', () => { const a11yDesc = undefined; - jsdomIt('should not set aria-labelledby', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not set aria-labelledby', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-labelledby')).toBeNull(); }); - jsdomIt('should not set aria-describedby', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not set aria-describedby', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); expect(svgNode.getAttribute('aria-describedby')).toBeNull(); }); - jsdomIt('should not insert title tag', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not insert title tag', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const titleNode = svgNode.querySelector('title'); expect(titleNode).toBeNull(); }); - jsdomIt('should not insert description tag', () => { - const svgSelection = select('svg'); - addSVGa11yTitleDescription(svgSelection, a11yTitle, a11yDesc, givenId); + jsdomIt('should not insert description tag', ({ svg }) => { + addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, givenId); const svgNode = ensureNodeFromSelector('svg'); const descNode = svgNode.querySelector('desc'); expect(descNode).toBeNull(); diff --git a/packages/mermaid/src/tests/util.ts b/packages/mermaid/src/tests/util.ts index 8b3de4e9d..09f7da2d4 100644 --- a/packages/mermaid/src/tests/util.ts +++ b/packages/mermaid/src/tests/util.ts @@ -28,6 +28,7 @@ ${'2w'} | ${dayjs.duration(2, 'w')} import { JSDOM } from 'jsdom'; import { expect, it } from 'vitest'; +import { select, type Selection } from 'd3'; export const convert = (template: TemplateStringsArray, ...params: unknown[]) => { const header = template[0] @@ -61,6 +62,11 @@ export const MOCKED_BBOX = { height: 666, }; +interface JsdomItInput { + // eslint-disable-next-line + svg: Selection; // The `any` here comes from D3'as API. +} + /** * Test method borrowed from d3 : https://github.com/d3/d3-selection/blob/v3.0.0/test/jsdom.js * @@ -74,7 +80,7 @@ export const MOCKED_BBOX = { * * This makes it possible to make structural tests instead of mocking everything. */ -export function jsdomIt(message: string, run: () => void | Promise) { +export function jsdomIt(message: string, run: (input: JsdomItInput) => void | Promise) { return it(message, async (): Promise => { const oldWindow = global.window; const oldDocument = global.document; @@ -99,7 +105,8 @@ export function jsdomIt(message: string, run: () => void | Promise) { setOnProtectedConstant(global, 'document', dom.window.document); // Fool D3 into thinking it's in a browser setOnProtectedConstant(global, 'MutationObserver', undefined); // JSDOM doesn't like cytoscape elements - await run(); + const svgSelection = select('svg'); + await run({ svg: svgSelection }); } finally { setOnProtectedConstant(global, 'window', oldWindow); setOnProtectedConstant(global, 'document', oldDocument); From 627ee1f34dfec40c3deba3c766b6aae1c0629a32 Mon Sep 17 00:00:00 2001 From: quilicicf Date: Sun, 22 Jun 2025 14:49:15 +0200 Subject: [PATCH 13/32] docs(tests): Documentation for `jsdomIt` tests --- docs/community/contributing.md | 26 ++++++++++++++++++- .../src/docs/community/contributing.md | 26 ++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/docs/community/contributing.md b/docs/community/contributing.md index 596b26430..ce010b316 100644 --- a/docs/community/contributing.md +++ b/docs/community/contributing.md @@ -301,7 +301,7 @@ If you are adding a feature, you will definitely need to add tests. Depending on Unit tests are tests that test a single function or module. They are the easiest to write and the fastest to run. -Unit tests are mandatory for all code except the renderers. (The renderers are tested with integration tests.) +Unit tests are mandatory for all code except the layout tests. (The layouts are tested with integration tests.) We use [Vitest](https://vitest.dev) to run unit tests. @@ -327,6 +327,30 @@ When using Docker prepend your command with `./run`: ./run pnpm test ``` +##### Testing the DOM + +One can use `jsdomIt` to test any part of Mermaid that interacts with the DOM, as long as it is not related to the layout. + +The function `jsdomIt` ([developed in utils.ts](../../tests/util.ts)) overrides `it` from `vitest`, and creates a pseudo-browser environment that works almost like the real deal for the duration of the test. It uses JSDOM to create a DOM, and adds objects `window` and `document` to `global` to mock the browser environment. + +> \[!NOTE] +> The layout cannot work in `jsdomIt` tests because JSDOM has no rendering engine, hence the pseudo-browser environment. + +Example : + +```typescript +import { ensureNodeFromSelector, jsdomIt } from './tests/util.js'; + +jsdomIt('should add element "thing" in the SVG', ({ svg }) => { + // Code in this block runs in a pseudo-browser environment + addThing(svg); // The svg item is the D3 selection of the SVG node + const svgNode = ensureNodeFromSelector('svg'); // Retrieve the DOM node using the DOM API + expect(svgNode.querySelector('thing')).not.toBeNull(); // Test the structure of the SVG +}); +``` + +They can be used to test any method that interacts with the DOM, including for testing renderers. For renderers, additional integration testing is necessary to test the layout though. + #### Integration / End-to-End (E2E) Tests These test the rendering and visual appearance of the diagrams. diff --git a/packages/mermaid/src/docs/community/contributing.md b/packages/mermaid/src/docs/community/contributing.md index 62d06f72f..c35803c23 100644 --- a/packages/mermaid/src/docs/community/contributing.md +++ b/packages/mermaid/src/docs/community/contributing.md @@ -302,7 +302,7 @@ If you are adding a feature, you will definitely need to add tests. Depending on Unit tests are tests that test a single function or module. They are the easiest to write and the fastest to run. -Unit tests are mandatory for all code except the renderers. (The renderers are tested with integration tests.) +Unit tests are mandatory for all code except the layout tests. (The layouts are tested with integration tests.) We use [Vitest](https://vitest.dev) to run unit tests. @@ -328,6 +328,30 @@ When using Docker prepend your command with `./run`: ./run pnpm test ``` +##### Testing the DOM + +One can use `jsdomIt` to test any part of Mermaid that interacts with the DOM, as long as it is not related to the layout. + +The function `jsdomIt` ([developed in utils.ts](../../tests/util.ts)) overrides `it` from `vitest`, and creates a pseudo-browser environment that works almost like the real deal for the duration of the test. It uses JSDOM to create a DOM, and adds objects `window` and `document` to `global` to mock the browser environment. + +> [!NOTE] +> The layout cannot work in `jsdomIt` tests because JSDOM has no rendering engine, hence the pseudo-browser environment. + +Example : + +```typescript +import { ensureNodeFromSelector, jsdomIt } from './tests/util.js'; + +jsdomIt('should add element "thing" in the SVG', ({ svg }) => { + // Code in this block runs in a pseudo-browser environment + addThing(svg); // The svg item is the D3 selection of the SVG node + const svgNode = ensureNodeFromSelector('svg'); // Retrieve the DOM node using the DOM API + expect(svgNode.querySelector('thing')).not.toBeNull(); // Test the structure of the SVG +}); +``` + +They can be used to test any method that interacts with the DOM, including for testing renderers. For renderers, additional integration testing is necessary to test the layout though. + #### Integration / End-to-End (E2E) Tests These test the rendering and visual appearance of the diagrams. From 34e91f8b65613fc450569d3a577b57c401b24dee Mon Sep 17 00:00:00 2001 From: quilicicf Date: Tue, 24 Jun 2025 14:49:45 +0200 Subject: [PATCH 14/32] chore(test): Finish refactoring of jsdomit tests --- packages/mermaid/src/mermaidAPI.spec.ts | 24 ++++++++---------------- packages/mermaid/src/tests/util.ts | 9 ++++++--- packages/mermaid/src/utils.spec.ts | 16 +++++----------- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 249e268f2..a61edaaba 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -196,53 +196,45 @@ describe('mermaidAPI', () => { describe('appendDivSvgG', () => { // cspell:ignore dthe - jsdomIt('appends a div node', () => { - const body = select('body'); + jsdomIt('appends a div node', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId'); const divNode = ensureNodeFromSelector('div'); const svgNode = ensureNodeFromSelector('svg', divNode); ensureNodeFromSelector('g', svgNode); }); - jsdomIt('the id for the div is "d" with the id appended', () => { - const body = select('body'); + jsdomIt('the id for the div is "d" with the id appended', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId'); const divNode = ensureNodeFromSelector('div'); expect(divNode?.getAttribute('id')).toBe('dtheId'); }); - jsdomIt('sets the style for the div if one is given', () => { - const body = select('body'); + jsdomIt('sets the style for the div if one is given', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId', 'given div style', 'given x link'); const divNode = ensureNodeFromSelector('div'); expect(divNode?.getAttribute('style')).toBe('given div style'); }); - jsdomIt('sets the svg width to 100%', () => { - const body = select('body'); + jsdomIt('sets the svg width to 100%', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId'); const svgNode = ensureNodeFromSelector('div > svg'); expect(svgNode.getAttribute('width')).toBe('100%'); }); - jsdomIt('the svg id is the id', () => { - const body = select('body'); + jsdomIt('the svg id is the id', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId'); const svgNode = ensureNodeFromSelector('div > svg'); expect(svgNode.getAttribute('id')).toBe('theId'); }); - jsdomIt('the svg xml namespace is the 2000 standard', () => { - const body = select('body'); + jsdomIt('the svg xml namespace is the 2000 standard', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId'); const svgNode = ensureNodeFromSelector('div > svg'); expect(svgNode.getAttribute('xmlns')).toBe('http://www.w3.org/2000/svg'); }); - jsdomIt('sets the svg xlink if one is given', () => { - const body = select('body'); + jsdomIt('sets the svg xlink if one is given', ({ body }) => { appendDivSvgG(body, 'theId', 'dtheId', 'div style', 'given x link'); const svgNode = ensureNodeFromSelector('div > svg'); expect(svgNode.getAttribute('xmlns:xlink')).toBe('given x link'); }); - jsdomIt('returns the given parentRoot d3 nodes', () => { - const body = select('body'); + jsdomIt('returns the given parentRoot d3 nodes', ({ body }) => { expect(appendDivSvgG(body, 'theId', 'dtheId')).toEqual(body); }); }); diff --git a/packages/mermaid/src/tests/util.ts b/packages/mermaid/src/tests/util.ts index 09f7da2d4..c5ac9c149 100644 --- a/packages/mermaid/src/tests/util.ts +++ b/packages/mermaid/src/tests/util.ts @@ -63,7 +63,9 @@ export const MOCKED_BBOX = { }; interface JsdomItInput { - // eslint-disable-next-line + // eslint-disable-next-line @typescript-eslint/no-explicit-any + body: Selection; // The `any` here comes from D3'as API. + // eslint-disable-next-line @typescript-eslint/no-explicit-any svg: Selection; // The `any` here comes from D3'as API. } @@ -105,8 +107,9 @@ export function jsdomIt(message: string, run: (input: JsdomItInput) => void | Pr setOnProtectedConstant(global, 'document', dom.window.document); // Fool D3 into thinking it's in a browser setOnProtectedConstant(global, 'MutationObserver', undefined); // JSDOM doesn't like cytoscape elements - const svgSelection = select('svg'); - await run({ svg: svgSelection }); + const body = select('body'); + const svg = select('svg'); + await run({ body, svg }); } finally { setOnProtectedConstant(global, 'window', oldWindow); setOnProtectedConstant(global, 'document', oldDocument); diff --git a/packages/mermaid/src/utils.spec.ts b/packages/mermaid/src/utils.spec.ts index f683fe146..35a2dfdd3 100644 --- a/packages/mermaid/src/utils.spec.ts +++ b/packages/mermaid/src/utils.spec.ts @@ -6,7 +6,6 @@ import { addDiagrams } from './diagram-api/diagram-orchestration.js'; import memoize from 'lodash-es/memoize.js'; import { preprocessDiagram } from './preprocess.js'; import { MOCKED_BBOX, ensureNodeFromSelector, jsdomIt } from './tests/util.js'; -import { select } from 'd3'; addDiagrams(); @@ -370,36 +369,31 @@ describe('when initializing the id generator', function () { }); describe('when inserting titles', function () { - jsdomIt('does nothing if the title is empty', function () { - const svg = select('svg'); + jsdomIt('does nothing if the title is empty', function ({ svg }) { utils.insertTitle(svg, 'testClass', 0, ''); const titleNode = document.querySelector('svg > text'); expect(titleNode).toBeNull(); }); - jsdomIt('appends the title as a text item with the given title text', function () { - const svg = select('svg'); + jsdomIt('appends the title as a text item with the given title text', function ({ svg }) { utils.insertTitle(svg, 'testClass', 5, 'test title'); const titleNode = ensureNodeFromSelector('svg > text'); expect(titleNode.innerHTML).toBe('test title'); }); - jsdomIt('x value is the bounds x position + half of the bounds width', () => { - const svg = select('svg'); + jsdomIt('x value is the bounds x position + half of the bounds width', ({ svg }) => { utils.insertTitle(svg, 'testClass', 5, 'test title'); const titleNode = ensureNodeFromSelector('svg > text'); expect(titleNode.getAttribute('x')).toBe(`${MOCKED_BBOX.x + MOCKED_BBOX.width / 2}`); }); - jsdomIt('y value is the negative of given title top margin', () => { - const svg = select('svg'); + jsdomIt('y value is the negative of given title top margin', ({ svg }) => { utils.insertTitle(svg, 'testClass', 5, 'test title'); const titleNode = ensureNodeFromSelector('svg > text'); expect(titleNode.getAttribute('y')).toBe(`${MOCKED_BBOX.y - 5}`); }); - jsdomIt('class is the given css class', () => { - const svg = select('svg'); + jsdomIt('class is the given css class', ({ svg }) => { utils.insertTitle(svg, 'testClass', 5, 'test title'); const titleNode = ensureNodeFromSelector('svg > text'); expect(titleNode.getAttribute('class')).toBe('testClass'); From 5449d6a4479d6abe539fb3ea66ac101b91a07897 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Jul 2025 18:15:18 +0530 Subject: [PATCH 15/32] chore: Update @argos-ci/cypress to v5 This fixes the random test renaming issue --- package.json | 2 +- pnpm-lock.yaml | 655 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 593 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index 9947c697f..6dfc37c32 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "@applitools/eyes-cypress": "^3.44.9", - "@argos-ci/cypress": "^4.0.3", + "@argos-ci/cypress": "^5.0.0", "@changesets/changelog-github": "^0.5.1", "@changesets/cli": "^2.27.12", "@cspell/eslint-plugin": "^8.19.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94b99d7c8..8989bacf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,8 +17,8 @@ importers: specifier: ^3.44.9 version: 3.50.2(encoding@0.1.13)(typescript@5.7.3) '@argos-ci/cypress': - specifier: ^4.0.3 - version: 4.0.3(cypress@14.0.3) + specifier: ^5.0.0 + version: 5.0.0(cypress@14.0.3) '@changesets/changelog-github': specifier: ^0.5.1 version: 0.5.1(encoding@0.1.13) @@ -780,22 +780,22 @@ packages: resolution: {integrity: sha512-3IHv7ANSPNO6OwWgwULlHbP9/tFV9kQDu6+nL9jysfPkGj0GgtrOsyBb+iU931c7wSMo1OD+XNujCnRzDD968w==} engines: {node: '>=18.0.0'} - '@argos-ci/browser@4.1.1': - resolution: {integrity: sha512-UyKdnprGftUjWQkb0jqJ0zGHJmcWBzdko8zRy4y+4efukVX4jjC/Px2HvWW8aqwjoR4aplouMZuzhmOkq2SCsA==} + '@argos-ci/browser@4.1.2': + resolution: {integrity: sha512-OljPFzxSNndWSwMBxKGtN3p8lSbt73z+/0CIXbBVTQOPjPMErXWjgtrFL23xqtTq5wdds3uxGv7tjVDWJbgBYg==} engines: {node: '>=18.0.0'} - '@argos-ci/core@3.1.1': - resolution: {integrity: sha512-7iE3o1XGxlfHC5AF05pzT0OxuO387sryrZt3gKGj/e+6R20DXz7J49yI8++nQ2cuT+wLhcJp8+X0ox+SGMYHmw==} + '@argos-ci/core@3.2.1': + resolution: {integrity: sha512-P+tGofNLAtH0+e87M8sZc+juAtbOcnV6z2nA2MwB2OzUVVXGINJHAF2cK0ZUyXC9d8a7RL0+rQWkP4vXDA/gBw==} engines: {node: '>=18.0.0'} - '@argos-ci/cypress@4.0.3': - resolution: {integrity: sha512-JGP48zPwbUGU5ziLP4Okv6mTuLPiEPvQ954BoH78ySlNpDGxyw68yeY4jxz8QpYe+P7vvKmuZiUFPAXTFu8XiQ==} + '@argos-ci/cypress@5.0.0': + resolution: {integrity: sha512-EZm7nqKauLlZzumqu4T/vtMoUKdlngkI5FLYATmxZ6E+6s7wjJ5wcWl8Vxm9kl7r3l4cVdY2PM9hqde8D9zmXA==} engines: {node: '>=18.0.0'} peerDependencies: cypress: ^12.0.0 || ^13.0.0 || ^14.0.0 - '@argos-ci/util@2.3.1': - resolution: {integrity: sha512-kE61HU2480fbAnimmA4x9HK45ZJvkoqLdW5GxT5uvwhkclQykVd2S6WfGFUr3JokTXfZ5LZEEfoWgtGA316KSQ==} + '@argos-ci/util@2.3.2': + resolution: {integrity: sha512-xtNHJxpWYNst/sMNn4Jv/vkODuFsJ+APr4FBeoFUdIa+Izjl4ZFHsYA2PUyu+ygIpQCkof8yZLL9U1/VpiyyIw==} engines: {node: '>=18.0.0'} '@asamuzakjp/css-color@2.8.3': @@ -1926,9 +1926,6 @@ packages: '@emnapi/core@1.4.4': resolution: {integrity: sha512-A9CnAbC6ARNMKcIcrQwq6HeHCjpcBZ5wSx4U01WXCqEKlrzB9F9315WDNHkrs2xbx7YjjSxbUYxuN6EQzpcY2g==} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} - '@emnapi/runtime@1.4.4': resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} @@ -10742,37 +10739,37 @@ snapshots: '@argos-ci/api-client@0.8.1': dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 openapi-fetch: 0.13.5 transitivePeerDependencies: - supports-color - '@argos-ci/browser@4.1.1': {} + '@argos-ci/browser@4.1.2': {} - '@argos-ci/core@3.1.1': + '@argos-ci/core@3.2.1': dependencies: '@argos-ci/api-client': 0.8.1 - '@argos-ci/util': 2.3.1 - axios: 1.8.4(debug@4.4.0) + '@argos-ci/util': 2.3.2 + axios: 1.8.4(debug@4.4.1) convict: 6.2.4 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 fast-glob: 3.3.3 sharp: 0.33.5 tmp: 0.2.3 transitivePeerDependencies: - supports-color - '@argos-ci/cypress@4.0.3(cypress@14.0.3)': + '@argos-ci/cypress@5.0.0(cypress@14.0.3)': dependencies: - '@argos-ci/browser': 4.1.1 - '@argos-ci/core': 3.1.1 - '@argos-ci/util': 2.3.1 + '@argos-ci/browser': 4.1.2 + '@argos-ci/core': 3.2.1 + '@argos-ci/util': 2.3.2 cypress: 14.0.3 cypress-wait-until: 3.0.2 transitivePeerDependencies: - supports-color - '@argos-ci/util@2.3.1': {} + '@argos-ci/util@2.3.2': {} '@asamuzakjp/css-color@2.8.3': dependencies: @@ -10848,7 +10845,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.1': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -10866,7 +10863,20 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -10878,12 +10888,30 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + regexpu-core: 6.2.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -10893,8 +10921,8 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -10914,6 +10942,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -10925,7 +10962,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 '@babel/helper-plugin-utils@7.26.5': {} @@ -10936,7 +10973,16 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-wrap-function': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -10945,14 +10991,23 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -10967,8 +11022,8 @@ snapshots: '@babel/helper-wrap-function@7.27.1': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -10998,7 +11053,15 @@ snapshots: dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11007,11 +11070,21 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11021,11 +11094,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11033,6 +11123,10 @@ snapshots: dependencies: '@babel/core': 7.27.1 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -11058,6 +11152,11 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11139,17 +11238,37 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.1) - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11162,16 +11281,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11180,6 +11318,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11188,6 +11334,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11195,7 +11349,19 @@ snapshots: '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11206,43 +11372,86 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11251,12 +11460,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11265,25 +11491,53 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -11291,7 +11545,15 @@ snapshots: '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -11299,17 +11561,35 @@ snapshots: '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -11320,21 +11600,42 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11343,6 +11644,14 @@ snapshots: '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11351,11 +11660,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11364,11 +11686,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11377,6 +11712,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11386,32 +11729,67 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11420,44 +11798,90 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/preset-env@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/compat-data': 7.27.2 @@ -11533,11 +11957,93 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.27.2(@babel/core@7.28.0)': + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-object-rest-spread': 7.27.2(@babel/core@7.28.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) + core-js-compat: 3.42.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 + esutils: 2.0.3 + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.0 esutils: 2.0.3 '@babel/runtime@7.26.9': @@ -12232,11 +12738,6 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.3.1': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.4.4': dependencies: tslib: 2.8.1 @@ -12692,7 +13193,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.3.1 + '@emnapi/runtime': 1.4.4 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -13007,9 +13508,9 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.19': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.27.1)(@types/babel__core@7.20.5)(rollup@2.79.2)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 @@ -14226,7 +14727,7 @@ snapshots: '@vueuse/shared': 12.7.0(typescript@5.7.3) vue: 3.5.13(typescript@5.7.3) optionalDependencies: - axios: 1.8.4(debug@4.4.0) + axios: 1.8.4(debug@4.4.1) focus-trap: 7.6.4 transitivePeerDependencies: - typescript @@ -14660,9 +15161,9 @@ snapshots: transitivePeerDependencies: - debug - axios@1.8.4(debug@4.4.0): + axios@1.8.4(debug@4.4.1): dependencies: - follow-redirects: 1.15.9(debug@4.4.0) + follow-redirects: 1.15.9(debug@4.4.1) form-data: 4.0.2 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -14713,6 +15214,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.28.0): + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -14721,6 +15231,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) + core-js-compat: 3.42.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -14728,6 +15246,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 @@ -16931,6 +17456,10 @@ snapshots: optionalDependencies: debug: 4.4.0(supports-color@8.1.1) + follow-redirects@1.15.9(debug@4.4.1): + optionalDependencies: + debug: 4.4.1 + font-awesome@4.7.0: {} for-each@0.3.5: @@ -17363,7 +17892,7 @@ snapshots: http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.9(debug@4.4.0) + follow-redirects: 1.15.9(debug@4.4.1) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -20189,7 +20718,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.7.1 + semver: 7.7.2 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -21766,10 +22295,10 @@ snapshots: workbox-build@7.1.1(@types/babel__core@7.20.5): dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) - '@babel/core': 7.27.1 - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/preset-env': 7.27.2(@babel/core@7.28.0) '@babel/runtime': 7.27.1 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.27.1)(@types/babel__core@7.20.5)(rollup@2.79.2) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2) '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@rollup/plugin-terser': 0.4.4(rollup@2.79.2) From 355eeeb9cc8119b5ca48454c575eef3c3f8719a2 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Jul 2025 18:33:09 +0530 Subject: [PATCH 16/32] chore: Upgrade cypress --- cypress.config.ts | 5 +- package.json | 2 +- pnpm-lock.yaml | 193 +++++++++++++++++++++------------------------- 3 files changed, 95 insertions(+), 105 deletions(-) diff --git a/cypress.config.ts b/cypress.config.ts index 50ea940e9..cc176b330 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -26,7 +26,10 @@ export default eyesPlugin( config.env.useArgos = process.env.RUN_VISUAL_TEST === 'true'; if (config.env.useArgos) { - registerArgosTask(on, config); + registerArgosTask(on, config, { + // Enable upload to Argos only when it runs on CI. + uploadToArgos: !!process.env.CI, + }); } else { addMatchImageSnapshotPlugin(on, config); } diff --git a/package.json b/package.json index 6dfc37c32..567642695 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", "cspell": "^9.1.3", - "cypress": "^14.0.3", + "cypress": "^14.5.1", "cypress-image-snapshot": "^4.0.1", "cypress-split": "^1.24.14", "esbuild": "^0.25.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8989bacf3..4d5ad4ee5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: version: 3.50.2(encoding@0.1.13)(typescript@5.7.3) '@argos-ci/cypress': specifier: ^5.0.0 - version: 5.0.0(cypress@14.0.3) + version: 5.0.0(cypress@14.5.1) '@changesets/changelog-github': specifier: ^0.5.1 version: 0.5.1(encoding@0.1.13) @@ -30,7 +30,7 @@ importers: version: 8.19.3(eslint@9.26.0(jiti@2.4.2)) '@cypress/code-coverage': specifier: ^3.12.49 - version: 3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.0.3)(webpack@5.95.0(esbuild@0.25.0)) + version: 3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.5.1)(webpack@5.95.0(esbuild@0.25.0)) '@eslint/js': specifier: ^9.26.0 version: 9.26.0 @@ -92,11 +92,11 @@ importers: specifier: ^9.1.3 version: 9.1.3 cypress: - specifier: ^14.0.3 - version: 14.0.3 + specifier: ^14.5.1 + version: 14.5.1 cypress-image-snapshot: specifier: ^4.0.1 - version: 4.0.1(cypress@14.0.3)(jest@30.0.4(@types/node@22.13.5)) + version: 4.0.1(cypress@14.5.1)(jest@30.0.4(@types/node@22.13.5)) cypress-split: specifier: ^1.24.14 version: 1.24.14(@babel/core@7.27.1) @@ -1519,10 +1519,6 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - '@cspell/cspell-bundled-dicts@8.19.3': resolution: {integrity: sha512-HRxcvD+fqgq6Ag6K7TMnlsO1Uq2nc3V/ug4huZSKK/+tErB1i/m4N4gkOzO0pFtQsJDhGdlio3Wud2ce6kVpdw==} engines: {node: '>=18'} @@ -1877,8 +1873,8 @@ packages: cypress: '*' webpack: ^4 || ^5 - '@cypress/request@3.0.7': - resolution: {integrity: sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==} + '@cypress/request@3.0.8': + resolution: {integrity: sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==} engines: {node: '>= 6'} '@cypress/webpack-preprocessor@6.0.2': @@ -4608,10 +4604,6 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.1.0: - resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} - engines: {node: '>=8'} - ci-info@4.2.0: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} engines: {node: '>=8'} @@ -4655,8 +4647,8 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + cli-table3@0.6.1: + resolution: {integrity: sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==} engines: {node: 10.* || >= 12.*} cli-truncate@2.1.0: @@ -4719,6 +4711,10 @@ packages: resolution: {integrity: sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==} engines: {node: '>=0.1.90'} + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -5008,8 +5004,8 @@ packages: cypress-wait-until@3.0.2: resolution: {integrity: sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==} - cypress@14.0.3: - resolution: {integrity: sha512-yIdvobANw3kS+KF/t5vwjjPNufBA8ux7iQHaWxPTkUw2yCKI72m9mKM24eOwE84Wk4ALPsSvEcGbDrwgmhr4RA==} + cypress@14.5.1: + resolution: {integrity: sha512-vYBeZKW3UAtxwv5mFuSlOBCYhyO0H86TeDKRJ7TgARyHiREIaiDjeHtqjzrXRFrdz9KnNavqlm+z+hklC7v8XQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -8366,10 +8362,6 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.13.1: - resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} - engines: {node: '>=0.6'} - qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -10739,7 +10731,7 @@ snapshots: '@argos-ci/api-client@0.8.1': dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) openapi-fetch: 0.13.5 transitivePeerDependencies: - supports-color @@ -10752,19 +10744,19 @@ snapshots: '@argos-ci/util': 2.3.2 axios: 1.8.4(debug@4.4.1) convict: 6.2.4 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) fast-glob: 3.3.3 sharp: 0.33.5 tmp: 0.2.3 transitivePeerDependencies: - supports-color - '@argos-ci/cypress@5.0.0(cypress@14.0.3)': + '@argos-ci/cypress@5.0.0(cypress@14.5.1)': dependencies: '@argos-ci/browser': 4.1.2 '@argos-ci/core': 3.2.1 '@argos-ci/util': 2.3.2 - cypress: 14.0.3 + cypress: 14.5.1 cypress-wait-until: 3.0.2 transitivePeerDependencies: - supports-color @@ -10800,7 +10792,7 @@ snapshots: '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -10820,7 +10812,7 @@ snapshots: '@babel/traverse': 7.28.0 '@babel/types': 7.28.0 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -10900,7 +10892,7 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -10911,7 +10903,7 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -12065,7 +12057,7 @@ snapshots: '@babel/parser': 7.27.2 '@babel/template': 7.27.2 '@babel/types': 7.27.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -12078,7 +12070,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/types': 7.28.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -12277,9 +12269,6 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@colors/colors@1.5.0': - optional: true - '@cspell/cspell-bundled-dicts@8.19.3': dependencies: '@cspell/dict-ada': 4.1.0 @@ -12642,14 +12631,14 @@ snapshots: '@csstools/css-tokenizer@3.0.3': {} - '@cypress/code-coverage@3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.0.3)(webpack@5.95.0(esbuild@0.25.0))': + '@cypress/code-coverage@3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.5.1)(webpack@5.95.0(esbuild@0.25.0))': dependencies: '@babel/core': 7.27.1 '@babel/preset-env': 7.27.2(@babel/core@7.27.1) '@cypress/webpack-preprocessor': 6.0.2(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(webpack@5.95.0(esbuild@0.25.0)) babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)) chalk: 4.1.2 - cypress: 14.0.3 + cypress: 14.5.1 dayjs: 1.11.13 debug: 4.3.7 execa: 4.1.0 @@ -12661,7 +12650,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@cypress/request@3.0.7': + '@cypress/request@3.0.8': dependencies: aws-sign2: 0.7.0 aws4: 1.13.2 @@ -12676,7 +12665,7 @@ snapshots: json-stringify-safe: 5.0.1 mime-types: 2.1.35 performance-now: 2.1.0 - qs: 6.13.1 + qs: 6.14.0 safe-buffer: 5.2.1 tough-cookie: 5.1.1 tunnel-agent: 0.6.0 @@ -12688,7 +12677,7 @@ snapshots: '@babel/preset-env': 7.27.2(@babel/core@7.27.1) babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)) bluebird: 3.7.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 lodash: 4.17.21 webpack: 5.95.0(esbuild@0.25.0) transitivePeerDependencies: @@ -12988,7 +12977,7 @@ snapshots: '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -13002,7 +12991,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -13119,7 +13108,7 @@ snapshots: '@antfu/install-pkg': 1.0.0 '@antfu/utils': 8.1.1 '@iconify/types': 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.0.0 @@ -14221,7 +14210,7 @@ snapshots: '@typescript-eslint/types': 8.32.0 '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.32.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 eslint: 9.26.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: @@ -14241,7 +14230,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.3) '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3) - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 eslint: 9.26.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.7.3) typescript: 5.7.3 @@ -14258,7 +14247,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -14273,7 +14262,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.24.1 '@typescript-eslint/visitor-keys': 8.24.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -14287,7 +14276,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.32.0 '@typescript-eslint/visitor-keys': 8.32.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -14559,7 +14548,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -14945,13 +14934,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -15334,7 +15323,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -15565,8 +15554,6 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.1.0: {} - ci-info@4.2.0: {} cjs-module-lexer@2.1.0: {} @@ -15604,11 +15591,11 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-table3@0.6.5: + cli-table3@0.6.1: dependencies: string-width: 4.2.3 optionalDependencies: - '@colors/colors': 1.5.0 + colors: 1.4.0 cli-truncate@2.1.0: dependencies: @@ -15675,6 +15662,9 @@ snapshots: colors@0.5.1: {} + colors@1.4.0: + optional: true + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -16027,10 +16017,10 @@ snapshots: cuint@0.2.2: {} - cypress-image-snapshot@4.0.1(cypress@14.0.3)(jest@30.0.4(@types/node@22.13.5)): + cypress-image-snapshot@4.0.1(cypress@14.5.1)(jest@30.0.4(@types/node@22.13.5)): dependencies: chalk: 2.4.2 - cypress: 14.0.3 + cypress: 14.5.1 fs-extra: 7.0.1 glob: 7.2.3 jest-image-snapshot: 4.2.0(jest@30.0.4(@types/node@22.13.5)) @@ -16044,7 +16034,7 @@ snapshots: '@actions/core': 1.11.1 arg: 5.0.2 console.table: 0.10.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 fast-shuffle: 6.1.0 find-cypress-specs: 1.47.9(@babel/core@7.27.1) globby: 11.1.0 @@ -16055,9 +16045,9 @@ snapshots: cypress-wait-until@3.0.2: {} - cypress@14.0.3: + cypress@14.5.1: dependencies: - '@cypress/request': 3.0.7 + '@cypress/request': 3.0.8 '@cypress/xvfb': 1.2.4(supports-color@8.1.1) '@types/sinonjs__fake-timers': 8.1.1 '@types/sizzle': 2.3.9 @@ -16068,13 +16058,13 @@ snapshots: cachedir: 2.4.0 chalk: 4.1.2 check-more-types: 2.24.0 - ci-info: 4.1.0 + ci-info: 4.2.0 cli-cursor: 3.1.0 - cli-table3: 0.6.5 + cli-table3: 0.6.1 commander: 6.2.1 common-tags: 1.8.2 dayjs: 1.11.13 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1(supports-color@8.1.1) enquirer: 2.4.1 eventemitter2: 6.4.7 execa: 4.1.0 @@ -16083,6 +16073,7 @@ snapshots: figures: 3.2.0 fs-extra: 9.1.0 getos: 3.2.1 + hasha: 5.2.2 is-installed-globally: 0.4.0 lazy-ass: 1.6.0 listr2: 3.14.0(enquirer@2.4.1) @@ -16094,7 +16085,7 @@ snapshots: process: 0.11.10 proxy-from-env: 1.0.0 request-progress: 3.0.0 - semver: 7.7.1 + semver: 7.7.2 supports-color: 8.1.1 tmp: 0.2.3 tree-kill: 1.2.2 @@ -16340,16 +16331,16 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@8.1.1): + debug@4.4.0: + dependencies: + ms: 2.1.3 + + debug@4.4.1(supports-color@8.1.1): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 - debug@4.4.1: - dependencies: - ms: 2.1.3 - decamelize@1.2.0: {} decimal.js@10.4.3: {} @@ -16865,7 +16856,7 @@ snapshots: '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 escape-string-regexp: 4.0.0 eslint: 9.26.0(jiti@2.4.2) espree: 10.3.0 @@ -16955,7 +16946,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -17143,7 +17134,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -17179,7 +17170,7 @@ snapshots: extract-zip@2.0.1(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -17349,7 +17340,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -17374,7 +17365,7 @@ snapshots: '@actions/core': 1.11.1 arg: 5.0.2 console.table: 0.10.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 find-test-names: 1.29.5(@babel/core@7.27.1) globby: 11.1.0 minimatch: 3.1.2 @@ -17404,7 +17395,7 @@ snapshots: '@babel/parser': 7.27.2 '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.27.1) acorn-walk: 8.3.4 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 globby: 11.1.0 simple-bin-help: 1.8.0 transitivePeerDependencies: @@ -17454,11 +17445,11 @@ snapshots: follow-redirects@1.15.9(debug@4.4.0): optionalDependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 follow-redirects@1.15.9(debug@4.4.1): optionalDependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) font-awesome@4.7.0: {} @@ -17866,14 +17857,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -17922,14 +17913,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -18258,7 +18249,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -18267,7 +18258,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -18855,7 +18846,7 @@ snapshots: dependencies: chalk: 5.4.1 commander: 14.0.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) lilconfig: 3.1.3 listr2: 8.3.3 micromatch: 4.0.8 @@ -19384,7 +19375,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -19392,7 +19383,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -20157,10 +20148,6 @@ snapshots: dependencies: side-channel: 1.1.0 - qs@6.13.1: - dependencies: - side-channel: 1.1.0 - qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -20512,7 +20499,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -20632,7 +20619,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -20921,7 +20908,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -20932,7 +20919,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -20945,7 +20932,7 @@ snapshots: spec-change@1.11.11: dependencies: arg: 5.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 deep-equal: 2.2.3 dependency-tree: 11.0.1 lazy-ass: 2.0.3 @@ -20986,7 +20973,7 @@ snapshots: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -21637,7 +21624,7 @@ snapshots: unplugin-vue-components@28.4.0(@babel/parser@7.28.0)(vue@3.5.13(typescript@5.7.3)): dependencies: chokidar: 3.6.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 local-pkg: 1.0.0 magic-string: 0.30.17 mlly: 1.7.4 @@ -21736,7 +21723,7 @@ snapshots: vite-node@3.0.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): dependencies: cac: 6.7.14 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) @@ -21768,7 +21755,7 @@ snapshots: vite-plugin-pwa@1.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 pretty-bytes: 6.1.1 tinyglobby: 0.2.12 vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) @@ -21898,7 +21885,7 @@ snapshots: '@vitest/spy': 3.0.6 '@vitest/utils': 3.0.6 chai: 5.2.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0 expect-type: 1.1.0 magic-string: 0.30.17 pathe: 2.0.3 From a28965064d479206c3e3cf524a695fd9e705815e Mon Sep 17 00:00:00 2001 From: omkarht Date: Mon, 14 Jul 2025 19:34:02 +0530 Subject: [PATCH 17/32] chore: downgrade chokidar to 3.6.0 --- package.json | 2 +- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 747 +++++++++++++++++++++++++++++++--- renovate.json | 4 + 4 files changed, 705 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index 9947c697f..71b532d4c 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "@vitest/spy": "^3.0.6", "@vitest/ui": "^3.0.6", "ajv": "^8.17.1", - "chokidar": "4.0.3", + "chokidar": "3.6.0", "concurrently": "^9.1.2", "cors": "^2.8.5", "cpy-cli": "^5.0.0", diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 31d0b3a7d..ed281f03e 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -105,7 +105,7 @@ "@types/stylis": "^4.2.7", "@types/uuid": "^10.0.0", "ajv": "^8.17.1", - "chokidar": "4.0.3", + "chokidar": "^3.6.0", "concurrently": "^9.1.2", "csstree-validator": "^4.0.1", "globby": "^14.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94b99d7c8..a3d64b6ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,8 +74,8 @@ importers: specifier: ^8.17.1 version: 8.17.1 chokidar: - specifier: 4.0.3 - version: 4.0.3 + specifier: 3.6.0 + version: 3.6.0 concurrently: specifier: ^9.1.2 version: 9.1.2 @@ -333,8 +333,8 @@ importers: specifier: ^8.17.1 version: 8.17.1 chokidar: - specifier: 4.0.3 - version: 4.0.3 + specifier: ^3.6.0 + version: 3.6.0 concurrently: specifier: ^9.1.2 version: 9.1.2 @@ -514,6 +514,67 @@ importers: specifier: ^7.3.0 version: 7.3.0 + packages/mermaid/src/vitepress: + dependencies: + '@mdi/font': + specifier: ^7.4.47 + version: 7.4.47 + '@vueuse/core': + specifier: ^13.1.0 + version: 13.1.0(vue@3.5.13(typescript@5.7.3)) + font-awesome: + specifier: ^4.7.0 + version: 4.7.0 + jiti: + specifier: ^2.4.2 + version: 2.4.2 + mermaid: + specifier: workspace:^ + version: link:../.. + vue: + specifier: ^3.4.38 + version: 3.5.13(typescript@5.7.3) + devDependencies: + '@iconify-json/carbon': + specifier: ^1.1.37 + version: 1.2.1 + '@unocss/reset': + specifier: ^66.0.0 + version: 66.0.0 + '@vite-pwa/vitepress': + specifier: ^1.0.0 + version: 1.0.0(vite-plugin-pwa@1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0)) + '@vitejs/plugin-vue': + specifier: ^5.0.5 + version: 5.2.1(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 + https-localhost: + specifier: ^4.7.1 + version: 4.7.1 + pathe: + specifier: ^2.0.3 + version: 2.0.3 + unocss: + specifier: ^66.0.0 + version: 66.0.0(postcss@8.5.6)(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) + unplugin-vue-components: + specifier: ^28.4.0 + version: 28.4.0(@babel/parser@7.28.0)(vue@3.5.13(typescript@5.7.3)) + vite: + specifier: ^6.1.1 + version: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vite-plugin-pwa: + specifier: ^1.0.0 + version: 1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0) + vitepress: + specifier: 1.6.3 + version: 1.6.3(@algolia/client-search@5.20.3)(@types/node@22.13.5)(axios@1.8.4)(postcss@8.5.6)(search-insights@2.17.2)(terser@5.39.0)(typescript@5.7.3) + workbox-window: + specifier: ^7.3.0 + version: 7.3.0 + packages/parser: dependencies: langium: @@ -4599,10 +4660,6 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -8439,10 +8496,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} @@ -10848,7 +10901,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.1': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -10866,7 +10919,20 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -10878,12 +10944,30 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + regexpu-core: 6.2.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1 + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -10893,8 +10977,8 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -10914,6 +10998,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -10925,7 +11018,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 '@babel/helper-plugin-utils@7.26.5': {} @@ -10936,7 +11029,16 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-wrap-function': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -10945,14 +11047,23 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -10967,8 +11078,8 @@ snapshots: '@babel/helper-wrap-function@7.27.1': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -10998,7 +11109,15 @@ snapshots: dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11007,11 +11126,21 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11021,11 +11150,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11033,6 +11179,10 @@ snapshots: dependencies: '@babel/core': 7.27.1 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -11058,6 +11208,11 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11139,17 +11294,37 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.1) - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11162,16 +11337,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11180,6 +11374,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11188,6 +11390,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11195,7 +11405,19 @@ snapshots: '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/traverse': 7.28.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11206,43 +11428,86 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11251,12 +11516,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -11265,25 +11547,53 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -11291,7 +11601,15 @@ snapshots: '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -11299,17 +11617,35 @@ snapshots: '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -11320,21 +11656,42 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11343,6 +11700,14 @@ snapshots: '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11351,11 +11716,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11364,11 +11742,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11377,6 +11768,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11386,32 +11785,67 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -11420,44 +11854,90 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/preset-env@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/compat-data': 7.27.2 @@ -11533,11 +12013,93 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.27.2(@babel/core@7.28.0)': + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-object-rest-spread': 7.27.2(@babel/core@7.28.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) + core-js-compat: 3.42.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.27.1 + '@babel/types': 7.28.0 + esutils: 2.0.3 + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.0 esutils: 2.0.3 '@babel/runtime@7.26.9': @@ -13007,9 +13569,9 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.19': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.27.1)(@types/babel__core@7.20.5)(rollup@2.79.2)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 @@ -13845,6 +14407,16 @@ snapshots: transitivePeerDependencies: - vue + '@unocss/astro@66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@unocss/core': 66.0.0 + '@unocss/reset': 66.0.0 + '@unocss/vite': 66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) + optionalDependencies: + vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - vue + '@unocss/cli@66.0.0': dependencies: '@ampproject/remapping': 2.3.0 @@ -13980,6 +14552,20 @@ snapshots: transitivePeerDependencies: - vue + '@unocss/vite@66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@unocss/config': 66.0.0 + '@unocss/core': 66.0.0 + '@unocss/inspector': 66.0.0(vue@3.5.13(typescript@5.7.3)) + chokidar: 3.6.0 + magic-string: 0.30.17 + tinyglobby: 0.2.12 + unplugin-utils: 0.2.4 + vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - vue + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -14043,11 +14629,20 @@ snapshots: dependencies: vite-plugin-pwa: 1.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0) + '@vite-pwa/vitepress@1.0.0(vite-plugin-pwa@1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0))': + dependencies: + vite-plugin-pwa: 1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0) + '@vitejs/plugin-vue@5.2.1(vite@5.4.19(@types/node@22.13.5)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': dependencies: vite: 5.4.19(@types/node@22.13.5)(terser@5.39.0) vue: 3.5.13(typescript@5.7.3) + '@vitejs/plugin-vue@5.2.1(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vue: 3.5.13(typescript@5.7.3) + '@vitejs/plugin-vue@6.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.19 @@ -14713,6 +15308,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.28.0): + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -14721,6 +15325,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) + core-js-compat: 3.42.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -14728,6 +15340,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) + transitivePeerDependencies: + - supports-color + babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 @@ -15032,10 +15651,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -19711,8 +20326,6 @@ snapshots: dependencies: picomatch: 2.3.1 - readdirp@4.1.2: {} - real-require@0.2.0: {} rechoir@0.6.2: @@ -21098,6 +21711,33 @@ snapshots: - supports-color - vue + unocss@66.0.0(postcss@8.5.6)(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)): + dependencies: + '@unocss/astro': 66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/cli': 66.0.0 + '@unocss/core': 66.0.0 + '@unocss/postcss': 66.0.0(postcss@8.5.6) + '@unocss/preset-attributify': 66.0.0 + '@unocss/preset-icons': 66.0.0 + '@unocss/preset-mini': 66.0.0 + '@unocss/preset-tagify': 66.0.0 + '@unocss/preset-typography': 66.0.0 + '@unocss/preset-uno': 66.0.0 + '@unocss/preset-web-fonts': 66.0.0 + '@unocss/preset-wind': 66.0.0 + '@unocss/preset-wind3': 66.0.0 + '@unocss/transformer-attributify-jsx': 66.0.0 + '@unocss/transformer-compile-class': 66.0.0 + '@unocss/transformer-directives': 66.0.0 + '@unocss/transformer-variant-group': 66.0.0 + '@unocss/vite': 66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) + optionalDependencies: + vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - postcss + - supports-color + - vue + unpipe@1.0.0: {} unplugin-utils@0.2.4: @@ -21248,10 +21888,21 @@ snapshots: transitivePeerDependencies: - supports-color + vite-plugin-pwa@1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0): + dependencies: + debug: 4.4.0(supports-color@8.1.1) + pretty-bytes: 6.1.1 + tinyglobby: 0.2.12 + vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + workbox-build: 7.1.1(@types/babel__core@7.20.5) + workbox-window: 7.3.0 + transitivePeerDependencies: + - supports-color + vite@5.4.19(@types/node@22.13.5)(terser@5.39.0): dependencies: esbuild: 0.21.5 - postcss: 8.5.3 + postcss: 8.5.6 rollup: 4.40.2 optionalDependencies: '@types/node': 22.13.5 @@ -21274,7 +21925,7 @@ snapshots: vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): dependencies: esbuild: 0.24.2 - postcss: 8.5.3 + postcss: 8.5.6 rollup: 4.40.2 optionalDependencies: '@types/node': 22.13.5 @@ -21766,10 +22417,10 @@ snapshots: workbox-build@7.1.1(@types/babel__core@7.20.5): dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) - '@babel/core': 7.27.1 - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/preset-env': 7.27.2(@babel/core@7.28.0) '@babel/runtime': 7.27.1 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.27.1)(@types/babel__core@7.20.5)(rollup@2.79.2) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2) '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@rollup/plugin-terser': 0.4.4(rollup@2.79.2) diff --git a/renovate.json b/renovate.json index 8a35d9d50..095f74c32 100644 --- a/renovate.json +++ b/renovate.json @@ -40,6 +40,10 @@ { "groupName": "dompurify", "matchPackagePatterns": ["dompurify"] + }, + { + "matchPackageNames": ["chokidar"], + "enabled": false } ], "dependencyDashboard": false, From 260a045da0124cef12da9a7e77b1199abe71680f Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Mon, 14 Jul 2025 20:00:13 +0530 Subject: [PATCH 18/32] migrate mindmap to class based approach --- .../diagrams/mindmap/mindmap-definition.ts | 6 +- .../src/diagrams/mindmap/mindmap.spec.ts | 4 +- .../mermaid/src/diagrams/mindmap/mindmapDb.ts | 285 +++++++++--------- .../src/diagrams/mindmap/mindmapRenderer.ts | 4 +- .../src/diagrams/mindmap/mindmapTypes.ts | 2 - .../mermaid/src/diagrams/mindmap/svgDraw.ts | 3 +- 6 files changed, 154 insertions(+), 150 deletions(-) diff --git a/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts b/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts index 66b44b4f9..c02898954 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts @@ -1,12 +1,14 @@ // @ts-ignore: JISON doesn't support types import parser from './parser/mindmap.jison'; -import db from './mindmapDb.js'; +import { MindmapDB } from './mindmapDb.js'; import renderer from './mindmapRenderer.js'; import styles from './styles.js'; import type { DiagramDefinition } from '../../diagram-api/types.js'; export const diagram: DiagramDefinition = { - db, + get db() { + return new MindmapDB(); + }, renderer, parser, styles, diff --git a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.ts b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.ts index d4f2d316e..b912e1b8c 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.ts @@ -1,12 +1,12 @@ // @ts-expect-error No types available for JISON import { parser as mindmap } from './parser/mindmap.jison'; -import mindmapDB from './mindmapDb.js'; +import { MindmapDB } from './mindmapDb.js'; // Todo fix utils functions for tests import { setLogLevel } from '../../diagram-api/diagramAPI.js'; describe('when parsing a mindmap ', function () { beforeEach(function () { - mindmap.yy = mindmapDB; + mindmap.yy = new MindmapDB(); mindmap.yy.clear(); setLogLevel('trace'); }); diff --git a/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts b/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts index e7041e9d6..7a151d9c0 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts @@ -5,70 +5,6 @@ import { log } from '../../logger.js'; import type { MindmapNode } from './mindmapTypes.js'; import defaultConfig from '../../defaultConfig.js'; -let nodes: MindmapNode[] = []; -let cnt = 0; -let elements: Record = {}; - -const clear = () => { - nodes = []; - cnt = 0; - elements = {}; -}; - -const getParent = function (level: number) { - for (let i = nodes.length - 1; i >= 0; i--) { - if (nodes[i].level < level) { - return nodes[i]; - } - } - // No parent found - return null; -}; - -const getMindmap = () => { - return nodes.length > 0 ? nodes[0] : null; -}; - -const addNode = (level: number, id: string, descr: string, type: number) => { - log.info('addNode', level, id, descr, type); - const conf = getConfig(); - let padding: number = conf.mindmap?.padding ?? defaultConfig.mindmap.padding; - switch (type) { - case nodeType.ROUNDED_RECT: - case nodeType.RECT: - case nodeType.HEXAGON: - padding *= 2; - } - - const node = { - id: cnt++, - nodeId: sanitizeText(id, conf), - level, - descr: sanitizeText(descr, conf), - type, - children: [], - width: conf.mindmap?.maxNodeWidth ?? defaultConfig.mindmap.maxNodeWidth, - padding, - } satisfies MindmapNode; - - const parent = getParent(level); - if (parent) { - parent.children.push(node); - // Keep all nodes in the list - nodes.push(node); - } else { - if (nodes.length === 0) { - // First node, the root - nodes.push(node); - } else { - // Syntax error ... there can only bee one root - throw new Error( - 'There can be only one root. No parent could be found for ("' + node.descr + '")' - ); - } - } -}; - const nodeType = { DEFAULT: 0, NO_BORDER: 0, @@ -78,82 +14,149 @@ const nodeType = { CLOUD: 4, BANG: 5, HEXAGON: 6, -}; - -const getType = (startStr: string, endStr: string): number => { - log.debug('In get type', startStr, endStr); - switch (startStr) { - case '[': - return nodeType.RECT; - case '(': - return endStr === ')' ? nodeType.ROUNDED_RECT : nodeType.CLOUD; - case '((': - return nodeType.CIRCLE; - case ')': - return nodeType.CLOUD; - case '))': - return nodeType.BANG; - case '{{': - return nodeType.HEXAGON; - default: - return nodeType.DEFAULT; - } -}; - -const setElementForId = (id: number, element: D3Element) => { - elements[id] = element; -}; - -const decorateNode = (decoration?: { class?: string; icon?: string }) => { - if (!decoration) { - return; - } - const config = getConfig(); - const node = nodes[nodes.length - 1]; - if (decoration.icon) { - node.icon = sanitizeText(decoration.icon, config); - } - if (decoration.class) { - node.class = sanitizeText(decoration.class, config); - } -}; - -const type2Str = (type: number) => { - switch (type) { - case nodeType.DEFAULT: - return 'no-border'; - case nodeType.RECT: - return 'rect'; - case nodeType.ROUNDED_RECT: - return 'rounded-rect'; - case nodeType.CIRCLE: - return 'circle'; - case nodeType.CLOUD: - return 'cloud'; - case nodeType.BANG: - return 'bang'; - case nodeType.HEXAGON: - return 'hexgon'; // cspell: disable-line - default: - return 'no-border'; - } -}; - -// Expose logger to grammar -const getLogger = () => log; -const getElementById = (id: number) => elements[id]; - -const db = { - clear, - addNode, - getMindmap, - nodeType, - getType, - setElementForId, - decorateNode, - type2Str, - getLogger, - getElementById, } as const; -export default db; +export class MindmapDB { + private nodes: MindmapNode[] = []; + private cnt = 0; + private elements: Record = {}; + public readonly nodeType: typeof nodeType; + + constructor() { + this.getLogger = this.getLogger.bind(this); + this.nodeType = nodeType; + this.clear(); + this.getType = this.getType.bind(this); + this.getMindmap = this.getMindmap.bind(this); + this.getElementById = this.getElementById.bind(this); + this.getParent = this.getParent.bind(this); + this.getMindmap = this.getMindmap.bind(this); + this.addNode = this.addNode.bind(this); + this.decorateNode = this.decorateNode.bind(this); + } + public clear() { + this.nodes = []; + this.cnt = 0; + this.elements = {}; + } + + public getParent(level: number): MindmapNode | null { + for (let i = this.nodes.length - 1; i >= 0; i--) { + if (this.nodes[i].level < level) { + return this.nodes[i]; + } + } + return null; + } + + public getMindmap(): MindmapNode | null { + return this.nodes.length > 0 ? this.nodes[0] : null; + } + + public addNode(level: number, id: string, descr: string, type: number): void { + log.info('addNode', level, id, descr, type); + + const conf = getConfig(); + let padding = conf.mindmap?.padding ?? defaultConfig.mindmap.padding; + + switch (type) { + case this.nodeType.ROUNDED_RECT: + case this.nodeType.RECT: + case this.nodeType.HEXAGON: + padding *= 2; + break; + } + + const node: MindmapNode = { + id: this.cnt++, + nodeId: sanitizeText(id, conf), + level, + descr: sanitizeText(descr, conf), + type, + children: [], + width: conf.mindmap?.maxNodeWidth ?? defaultConfig.mindmap.maxNodeWidth, + padding, + }; + + const parent = this.getParent(level); + if (parent) { + parent.children.push(node); + this.nodes.push(node); + } else { + if (this.nodes.length === 0) { + this.nodes.push(node); + } else { + throw new Error( + `There can be only one root. No parent could be found for ("${node.descr}")` + ); + } + } + } + + public getType(startStr: string, endStr: string) { + log.debug('In get type', startStr, endStr); + switch (startStr) { + case '[': + return this.nodeType.RECT; + case '(': + return endStr === ')' ? this.nodeType.ROUNDED_RECT : this.nodeType.CLOUD; + case '((': + return this.nodeType.CIRCLE; + case ')': + return this.nodeType.CLOUD; + case '))': + return this.nodeType.BANG; + case '{{': + return this.nodeType.HEXAGON; + default: + return this.nodeType.DEFAULT; + } + } + + public setElementForId(id: number, element: D3Element): void { + this.elements[id] = element; + } + public getElementById(id: number) { + return this.elements[id]; + } + + public decorateNode(decoration?: { class?: string; icon?: string }): void { + if (!decoration) { + return; + } + + const config = getConfig(); + const node = this.nodes[this.nodes.length - 1]; + if (decoration.icon) { + node.icon = sanitizeText(decoration.icon, config); + } + if (decoration.class) { + node.class = sanitizeText(decoration.class, config); + } + } + + type2Str(type: number): string { + switch (type) { + case this.nodeType.DEFAULT: + return 'no-border'; + case this.nodeType.RECT: + return 'rect'; + case this.nodeType.ROUNDED_RECT: + return 'rounded-rect'; + case this.nodeType.CIRCLE: + return 'circle'; + case this.nodeType.CLOUD: + return 'cloud'; + case this.nodeType.BANG: + return 'bang'; + case this.nodeType.HEXAGON: + return 'hexgon'; // cspell: disable-line + default: + return 'no-border'; + } + } + + public getLogger() { + return log; + } +} diff --git a/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.ts b/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.ts index 708b3cc28..ef9be0565 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.ts @@ -9,10 +9,10 @@ import { log } from '../../logger.js'; import type { D3Element } from '../../types.js'; import { selectSvgElement } from '../../rendering-util/selectSvgElement.js'; import { setupGraphViewbox } from '../../setupGraphViewbox.js'; -import type { FilledMindMapNode, MindmapDB, MindmapNode } from './mindmapTypes.js'; +import type { FilledMindMapNode, MindmapNode } from './mindmapTypes.js'; import { drawNode, positionNode } from './svgDraw.js'; import defaultConfig from '../../defaultConfig.js'; - +import type { MindmapDB } from './mindmapDb.js'; // Inject the layout algorithm into cytoscape cytoscape.use(coseBilkent); diff --git a/packages/mermaid/src/diagrams/mindmap/mindmapTypes.ts b/packages/mermaid/src/diagrams/mindmap/mindmapTypes.ts index e8350477a..be8effab1 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmapTypes.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmapTypes.ts @@ -1,5 +1,4 @@ import type { RequiredDeep } from 'type-fest'; -import type mindmapDb from './mindmapDb.js'; export interface MindmapNode { id: number; @@ -19,4 +18,3 @@ export interface MindmapNode { } export type FilledMindMapNode = RequiredDeep; -export type MindmapDB = typeof mindmapDb; diff --git a/packages/mermaid/src/diagrams/mindmap/svgDraw.ts b/packages/mermaid/src/diagrams/mindmap/svgDraw.ts index 209a6a0e1..8aee82e30 100644 --- a/packages/mermaid/src/diagrams/mindmap/svgDraw.ts +++ b/packages/mermaid/src/diagrams/mindmap/svgDraw.ts @@ -1,8 +1,9 @@ import { createText } from '../../rendering-util/createText.js'; -import type { FilledMindMapNode, MindmapDB } from './mindmapTypes.js'; +import type { FilledMindMapNode } from './mindmapTypes.js'; import type { Point, D3Element } from '../../types.js'; import { parseFontSize } from '../../utils.js'; import type { MermaidConfig } from '../../config.type.js'; +import type { MindmapDB } from './mindmapDb.js'; const MAX_SECTIONS = 12; From 852cb35f0a23713b872016a33454b32f80694305 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Jul 2025 20:05:57 +0530 Subject: [PATCH 19/32] Update @argos-ci/cypress to v5.0.1 --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 567642695..bb47b6712 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "@applitools/eyes-cypress": "^3.44.9", - "@argos-ci/cypress": "^5.0.0", + "@argos-ci/cypress": "^5.0.1", "@changesets/changelog-github": "^0.5.1", "@changesets/cli": "^2.27.12", "@cspell/eslint-plugin": "^8.19.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d5ad4ee5..96657482a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,8 +17,8 @@ importers: specifier: ^3.44.9 version: 3.50.2(encoding@0.1.13)(typescript@5.7.3) '@argos-ci/cypress': - specifier: ^5.0.0 - version: 5.0.0(cypress@14.5.1) + specifier: ^5.0.1 + version: 5.0.1(cypress@14.5.1) '@changesets/changelog-github': specifier: ^0.5.1 version: 0.5.1(encoding@0.1.13) @@ -788,8 +788,8 @@ packages: resolution: {integrity: sha512-P+tGofNLAtH0+e87M8sZc+juAtbOcnV6z2nA2MwB2OzUVVXGINJHAF2cK0ZUyXC9d8a7RL0+rQWkP4vXDA/gBw==} engines: {node: '>=18.0.0'} - '@argos-ci/cypress@5.0.0': - resolution: {integrity: sha512-EZm7nqKauLlZzumqu4T/vtMoUKdlngkI5FLYATmxZ6E+6s7wjJ5wcWl8Vxm9kl7r3l4cVdY2PM9hqde8D9zmXA==} + '@argos-ci/cypress@5.0.1': + resolution: {integrity: sha512-Noc46XIoiGmoWYiQOxYIQxbmENBCbbpJdw+AGbdH/R1c107x4ElTRObCiqEsdfV+k72UKge+B0DJgwH7mavDZw==} engines: {node: '>=18.0.0'} peerDependencies: cypress: ^12.0.0 || ^13.0.0 || ^14.0.0 @@ -10751,7 +10751,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@argos-ci/cypress@5.0.0(cypress@14.5.1)': + '@argos-ci/cypress@5.0.1(cypress@14.5.1)': dependencies: '@argos-ci/browser': 4.1.2 '@argos-ci/core': 3.2.1 From d3e2be35be066adeb7fd502b4a24c223c3b53947 Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Mon, 14 Jul 2025 20:12:31 +0530 Subject: [PATCH 20/32] added changeset --- .changeset/weak-files-stare.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/weak-files-stare.md diff --git a/.changeset/weak-files-stare.md b/.changeset/weak-files-stare.md new file mode 100644 index 000000000..cbce03b8e --- /dev/null +++ b/.changeset/weak-files-stare.md @@ -0,0 +1,5 @@ +--- +'mermaid': patch +--- + +patch: updated mindmapdb to use class based approach From 6e568695664a8039afed21a3d95d4eec16fa48a9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Jul 2025 23:22:40 +0530 Subject: [PATCH 21/32] Update @argos-ci/cypress to v5.0.2 --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bb47b6712..0997f5efc 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "@applitools/eyes-cypress": "^3.44.9", - "@argos-ci/cypress": "^5.0.1", + "@argos-ci/cypress": "^5.0.2", "@changesets/changelog-github": "^0.5.1", "@changesets/cli": "^2.27.12", "@cspell/eslint-plugin": "^8.19.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96657482a..f8313a7a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,8 +17,8 @@ importers: specifier: ^3.44.9 version: 3.50.2(encoding@0.1.13)(typescript@5.7.3) '@argos-ci/cypress': - specifier: ^5.0.1 - version: 5.0.1(cypress@14.5.1) + specifier: ^5.0.2 + version: 5.0.2(cypress@14.5.1) '@changesets/changelog-github': specifier: ^0.5.1 version: 0.5.1(encoding@0.1.13) @@ -788,8 +788,8 @@ packages: resolution: {integrity: sha512-P+tGofNLAtH0+e87M8sZc+juAtbOcnV6z2nA2MwB2OzUVVXGINJHAF2cK0ZUyXC9d8a7RL0+rQWkP4vXDA/gBw==} engines: {node: '>=18.0.0'} - '@argos-ci/cypress@5.0.1': - resolution: {integrity: sha512-Noc46XIoiGmoWYiQOxYIQxbmENBCbbpJdw+AGbdH/R1c107x4ElTRObCiqEsdfV+k72UKge+B0DJgwH7mavDZw==} + '@argos-ci/cypress@5.0.2': + resolution: {integrity: sha512-k3h4qZohLh5BM0oVH3S8RcV8xw4ssTpG6/svm/wjucoE4auqfDTrkkPjnuxmbY6qB74V/JWcZIEV0DU6haMhFg==} engines: {node: '>=18.0.0'} peerDependencies: cypress: ^12.0.0 || ^13.0.0 || ^14.0.0 @@ -10751,7 +10751,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@argos-ci/cypress@5.0.1(cypress@14.5.1)': + '@argos-ci/cypress@5.0.2(cypress@14.5.1)': dependencies: '@argos-ci/browser': 4.1.2 '@argos-ci/core': 3.2.1 From 2e2e8c41524a481e65f18196d154f18e64cebe0e Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Tue, 15 Jul 2025 12:06:22 +0530 Subject: [PATCH 22/32] Added clear function in constructor on-behalf-of: @Mermaid-Chart --- packages/mermaid/src/diagrams/treemap/db.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/mermaid/src/diagrams/treemap/db.ts b/packages/mermaid/src/diagrams/treemap/db.ts index 23326bc85..93793eb1d 100644 --- a/packages/mermaid/src/diagrams/treemap/db.ts +++ b/packages/mermaid/src/diagrams/treemap/db.ts @@ -21,6 +21,10 @@ export class TreeMapDB implements DiagramDB { private classes: Map = new Map(); private root?: TreemapNode; + constructor() { + this.clear(); + } + public getNodes() { return this.nodes; } From 688170558c355f71e37b794b8e99103d63dfc89f Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Tue, 15 Jul 2025 12:07:52 +0530 Subject: [PATCH 23/32] Updated changeset on-behalf-of: @Mermaid-Chart --- .changeset/pretty-falcons-say.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pretty-falcons-say.md b/.changeset/pretty-falcons-say.md index 05929efb0..8c490460d 100644 --- a/.changeset/pretty-falcons-say.md +++ b/.changeset/pretty-falcons-say.md @@ -2,4 +2,4 @@ 'mermaid': patch --- -patch: updated treemapdb to use class based approach +patch: Updated treemapdb to use class based approach From e95e4d155afdec89c2cd1b8d0a51b2bde50f4726 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Tue, 15 Jul 2025 12:09:17 +0530 Subject: [PATCH 24/32] Updated changeset on-behalf-of: @Mermaid-Chart --- .changeset/pretty-falcons-say.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pretty-falcons-say.md b/.changeset/pretty-falcons-say.md index 8c490460d..f9768a296 100644 --- a/.changeset/pretty-falcons-say.md +++ b/.changeset/pretty-falcons-say.md @@ -2,4 +2,4 @@ 'mermaid': patch --- -patch: Updated treemapdb to use class based approach +patch: Updated TreeMapDB to use class based approach From 96c21c7e54942ffc93c9b13d9f5f359f0f4c6664 Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Tue, 15 Jul 2025 12:19:02 +0530 Subject: [PATCH 25/32] resolve PR comments and update changeset --- .changeset/weak-files-stare.md | 2 +- packages/mermaid/src/diagrams/mindmap/mindmapDb.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.changeset/weak-files-stare.md b/.changeset/weak-files-stare.md index cbce03b8e..80440fe05 100644 --- a/.changeset/weak-files-stare.md +++ b/.changeset/weak-files-stare.md @@ -2,4 +2,4 @@ 'mermaid': patch --- -patch: updated mindmapdb to use class based approach +patch: Update MindmapDB to use class based approach diff --git a/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts b/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts index 7a151d9c0..703ba8434 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmapDb.ts @@ -18,7 +18,7 @@ const nodeType = { export class MindmapDB { private nodes: MindmapNode[] = []; - private cnt = 0; + private count = 0; private elements: Record = {}; public readonly nodeType: typeof nodeType; @@ -36,7 +36,7 @@ export class MindmapDB { } public clear() { this.nodes = []; - this.cnt = 0; + this.count = 0; this.elements = {}; } @@ -68,7 +68,7 @@ export class MindmapDB { } const node: MindmapNode = { - id: this.cnt++, + id: this.count++, nodeId: sanitizeText(id, conf), level, descr: sanitizeText(descr, conf), From 42a3c3487f4c670263f0fa4e9d189f607cd92164 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Tue, 15 Jul 2025 13:44:26 +0530 Subject: [PATCH 26/32] Remove constructor and clear method call from TreeMapDB class on-behalf-of: @Mermaid-Chart --- packages/mermaid/src/diagrams/treemap/db.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/mermaid/src/diagrams/treemap/db.ts b/packages/mermaid/src/diagrams/treemap/db.ts index 93793eb1d..23326bc85 100644 --- a/packages/mermaid/src/diagrams/treemap/db.ts +++ b/packages/mermaid/src/diagrams/treemap/db.ts @@ -21,10 +21,6 @@ export class TreeMapDB implements DiagramDB { private classes: Map = new Map(); private root?: TreemapNode; - constructor() { - this.clear(); - } - public getNodes() { return this.nodes; } From b0ec93f29c3a21a6c36595dcfbe26715ff982449 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 15 Jul 2025 13:54:45 +0530 Subject: [PATCH 27/32] chore: Update jsdom --- package.json | 2 +- pnpm-lock.yaml | 213 +++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 173 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 8b5b917ad..a8e799ef2 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,7 @@ "jest": "^30.0.4", "jison": "^0.4.18", "js-yaml": "^4.1.0", - "jsdom": "^26.0.0", + "jsdom": "^26.1.0", "langium-cli": "3.3.0", "lint-staged": "^16.1.2", "markdown-table": "^3.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f8313a7a6..c9bb1e5ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -161,8 +161,8 @@ importers: specifier: ^4.1.0 version: 4.1.0 jsdom: - specifier: ^26.0.0 - version: 26.0.0 + specifier: ^26.1.0 + version: 26.1.0(canvas@3.1.2) langium-cli: specifier: 3.3.0 version: 3.3.0 @@ -213,7 +213,7 @@ importers: version: 7.0.0(vite@7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)) vitest: specifier: ^3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.1.0(canvas@3.1.2))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) packages/examples: devDependencies: @@ -332,6 +332,9 @@ importers: ajv: specifier: ^8.17.1 version: 8.17.1 + canvas: + specifier: ^3.1.0 + version: 3.1.2 chokidar: specifier: 4.0.3 version: 4.0.3 @@ -351,8 +354,8 @@ importers: specifier: ^3.7.7 version: 3.7.7 jsdom: - specifier: ^26.0.0 - version: 26.0.0 + specifier: ^26.1.0 + version: 26.1.0(canvas@3.1.2) json-schema-to-typescript: specifier: ^15.0.4 version: 15.0.4 @@ -4065,10 +4068,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -4377,6 +4376,9 @@ packages: birpc@0.2.19: resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + blob-util@2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} @@ -4506,6 +4508,10 @@ packages: caniuse-lite@1.0.30001700: resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} + canvas@3.1.2: + resolution: {integrity: sha512-Z/tzFAcBzoCvJlOSlCnoekh1Gu8YMn0J51+UAuXJAbW1Z6I9l2mZgdD7738MepoeeIcUdDtbMnOg6cC7GJxy/g==} + engines: {node: ^18.12.0 || >= 20.9.0} + caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4596,6 +4602,9 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -5260,8 +5269,8 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -5286,6 +5295,10 @@ packages: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -5831,6 +5844,10 @@ packages: resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + expect-type@1.1.0: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} @@ -6128,6 +6145,9 @@ packages: fromentries@1.3.2: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -6237,6 +6257,9 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -6552,6 +6575,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} @@ -7071,8 +7097,8 @@ packages: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} - jsdom@26.0.0: - resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} peerDependencies: canvas: ^3.0.0 @@ -7667,6 +7693,9 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -7717,6 +7746,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.0: resolution: {integrity: sha512-M7NqKyhODKV1gRLdkwE7pDsZP2/SC2a2vHkOYh9MCpKMbWVfyVfUw5MaH83Fv6XMjxr5jryUp3IDDL9rlxsTeA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -7742,6 +7774,13 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + node-abi@3.75.0: + resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + engines: {node: '>=10'} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-cleanup@2.1.2: resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} @@ -8272,6 +8311,11 @@ packages: preact@10.26.2: resolution: {integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + precinct@12.1.2: resolution: {integrity: sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==} engines: {node: '>=18'} @@ -8403,6 +8447,10 @@ packages: resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} engines: {node: '>= 0.8'} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -8855,6 +8903,12 @@ packages: resolution: {integrity: sha512-0LxHn+P1lF5r2WwVB/za3hLRIsYoLaNq1CXqjbrs3ZvLuvlWnRKrUjEWzV7umZL7hpQ7xULiQMV+0iXdRa5iFg==} engines: {node: '>=14.16'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -9110,6 +9164,10 @@ packages: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -9178,6 +9236,13 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-fs@2.1.3: + resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + teen_process@1.16.0: resolution: {integrity: sha512-RnW7HHZD1XuhSTzD3djYOdIl1adE3oNEprE3HOFFxWs5m4FZsqYRhKJ4mDU2udtNGMLUS7jV7l8vVRLWAvmPDw==} engines: {'0': node} @@ -10059,10 +10124,6 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} - whatwg-url@14.1.1: resolution: {integrity: sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==} engines: {node: '>=18'} @@ -14247,7 +14308,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -14558,7 +14619,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.1.0(canvas@3.1.2))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -14605,7 +14666,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.12 tinyrainbow: 2.0.0 - vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) + vitest: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.1.0(canvas@3.1.2))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) '@vitest/utils@3.0.6': dependencies: @@ -14938,12 +14999,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.1: - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - agent-base@7.1.3: {} aggregate-error@3.1.0: @@ -15294,6 +15349,12 @@ snapshots: birpc@0.2.19: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + blob-util@2.0.2: {} bluebird@3.7.1: {} @@ -15452,6 +15513,11 @@ snapshots: caniuse-lite@1.0.30001700: {} + canvas@3.1.2: + dependencies: + node-addon-api: 7.1.1 + prebuild-install: 7.1.3 + caseless@0.12.0: {} ccount@2.0.1: {} @@ -15550,6 +15616,8 @@ snapshots: dependencies: readdirp: 4.1.2 + chownr@1.1.4: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -16285,7 +16353,7 @@ snapshots: data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.1 data-view-buffer@1.0.2: dependencies: @@ -16343,7 +16411,7 @@ snapshots: decamelize@1.2.0: {} - decimal.js@10.4.3: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.0.2: dependencies: @@ -16378,6 +16446,8 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.18 + deep-extend@0.6.0: {} + deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -17075,6 +17145,8 @@ snapshots: exit-x@0.2.2: {} + expand-template@2.0.3: {} + expect-type@1.1.0: {} expect@30.0.4: @@ -17492,6 +17564,8 @@ snapshots: fromentries@1.3.2: {} + fs-constants@1.0.0: {} + fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 @@ -17621,6 +17695,8 @@ snapshots: dependencies: assert-plus: 1.0.0 + github-from-package@0.0.0: {} + github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -17863,8 +17939,8 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.4.0 + agent-base: 7.1.3 + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17920,7 +17996,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17977,6 +18053,8 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + ini@2.0.0: {} ini@3.0.1: {} @@ -18669,12 +18747,11 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} - jsdom@26.0.0: + jsdom@26.1.0(canvas@3.1.2): dependencies: cssstyle: 4.2.1 data-urls: 5.0.0 - decimal.js: 10.4.3 - form-data: 4.0.2 + decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -18692,6 +18769,8 @@ snapshots: whatwg-url: 14.1.1 ws: 8.18.0 xml-name-validator: 5.0.0 + optionalDependencies: + canvas: 3.1.2 transitivePeerDependencies: - bufferutil - supports-color @@ -19457,6 +19536,8 @@ snapshots: mitt@3.0.1: {} + mkdirp-classic@0.5.3: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -19505,6 +19586,8 @@ snapshots: nanoid@3.3.11: {} + napi-build-utils@2.0.0: {} + napi-postinstall@0.3.0: {} natural-compare@1.4.0: {} @@ -19519,6 +19602,12 @@ snapshots: nice-try@1.0.5: {} + node-abi@3.75.0: + dependencies: + semver: 7.7.2 + + node-addon-api@7.1.1: {} + node-cleanup@2.1.2: {} node-domexception@1.0.0: {} @@ -20061,6 +20150,21 @@ snapshots: preact@10.26.2: {} + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.75.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.3 + tunnel-agent: 0.6.0 + precinct@12.1.2: dependencies: '@dependents/detective-less': 5.0.0 @@ -20186,6 +20290,13 @@ snapshots: iconv-lite: 0.6.3 unpipe: 1.0.0 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + react-is@18.3.1: {} read-cache@1.0.0: @@ -20794,6 +20905,14 @@ snapshots: simple-bin-help@1.8.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -21104,6 +21223,8 @@ snapshots: dependencies: min-indent: 1.0.1 + strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} stylis@4.3.6: {} @@ -21189,6 +21310,21 @@ snapshots: tapable@2.2.1: {} + tar-fs@2.1.3: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + teen_process@1.16.0: dependencies: '@babel/runtime': 7.26.9 @@ -21875,7 +22011,7 @@ snapshots: - typescript - universal-cookie - vitest@3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): + vitest@3.0.6(@types/debug@4.1.12)(@types/node@22.13.5)(@vitest/ui@3.0.6)(jiti@2.4.2)(jsdom@26.1.0(canvas@3.1.2))(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0): dependencies: '@vitest/expect': 3.0.6 '@vitest/mocker': 3.0.6(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)) @@ -21901,7 +22037,7 @@ snapshots: '@types/debug': 4.1.12 '@types/node': 22.13.5 '@vitest/ui': 3.0.6(vitest@3.0.6) - jsdom: 26.0.0 + jsdom: 26.1.0(canvas@3.1.2) transitivePeerDependencies: - jiti - less @@ -22176,11 +22312,6 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: - dependencies: - tr46: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-url@14.1.1: dependencies: tr46: 5.0.0 From 1fe045e638dfdcae83e4285e77ed4f626f070e63 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 15 Jul 2025 16:36:13 +0530 Subject: [PATCH 28/32] chore: pin chokidar version --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 134 +--------------------------------- 2 files changed, 2 insertions(+), 134 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index ed281f03e..f386258c4 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -105,7 +105,7 @@ "@types/stylis": "^4.2.7", "@types/uuid": "^10.0.0", "ajv": "^8.17.1", - "chokidar": "^3.6.0", + "chokidar": "3.6.0", "concurrently": "^9.1.2", "csstree-validator": "^4.0.1", "globby": "^14.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3d64b6ac..cfbc793c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -333,7 +333,7 @@ importers: specifier: ^8.17.1 version: 8.17.1 chokidar: - specifier: ^3.6.0 + specifier: 3.6.0 version: 3.6.0 concurrently: specifier: ^9.1.2 @@ -514,67 +514,6 @@ importers: specifier: ^7.3.0 version: 7.3.0 - packages/mermaid/src/vitepress: - dependencies: - '@mdi/font': - specifier: ^7.4.47 - version: 7.4.47 - '@vueuse/core': - specifier: ^13.1.0 - version: 13.1.0(vue@3.5.13(typescript@5.7.3)) - font-awesome: - specifier: ^4.7.0 - version: 4.7.0 - jiti: - specifier: ^2.4.2 - version: 2.4.2 - mermaid: - specifier: workspace:^ - version: link:../.. - vue: - specifier: ^3.4.38 - version: 3.5.13(typescript@5.7.3) - devDependencies: - '@iconify-json/carbon': - specifier: ^1.1.37 - version: 1.2.1 - '@unocss/reset': - specifier: ^66.0.0 - version: 66.0.0 - '@vite-pwa/vitepress': - specifier: ^1.0.0 - version: 1.0.0(vite-plugin-pwa@1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0)) - '@vitejs/plugin-vue': - specifier: ^5.0.5 - version: 5.2.1(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) - fast-glob: - specifier: ^3.3.3 - version: 3.3.3 - https-localhost: - specifier: ^4.7.1 - version: 4.7.1 - pathe: - specifier: ^2.0.3 - version: 2.0.3 - unocss: - specifier: ^66.0.0 - version: 66.0.0(postcss@8.5.6)(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) - unplugin-vue-components: - specifier: ^28.4.0 - version: 28.4.0(@babel/parser@7.28.0)(vue@3.5.13(typescript@5.7.3)) - vite: - specifier: ^6.1.1 - version: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) - vite-plugin-pwa: - specifier: ^1.0.0 - version: 1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0) - vitepress: - specifier: 1.6.3 - version: 1.6.3(@algolia/client-search@5.20.3)(@types/node@22.13.5)(axios@1.8.4)(postcss@8.5.6)(search-insights@2.17.2)(terser@5.39.0)(typescript@5.7.3) - workbox-window: - specifier: ^7.3.0 - version: 7.3.0 - packages/parser: dependencies: langium: @@ -14407,16 +14346,6 @@ snapshots: transitivePeerDependencies: - vue - '@unocss/astro@66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@unocss/core': 66.0.0 - '@unocss/reset': 66.0.0 - '@unocss/vite': 66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) - optionalDependencies: - vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) - transitivePeerDependencies: - - vue - '@unocss/cli@66.0.0': dependencies: '@ampproject/remapping': 2.3.0 @@ -14552,20 +14481,6 @@ snapshots: transitivePeerDependencies: - vue - '@unocss/vite@66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@unocss/config': 66.0.0 - '@unocss/core': 66.0.0 - '@unocss/inspector': 66.0.0(vue@3.5.13(typescript@5.7.3)) - chokidar: 3.6.0 - magic-string: 0.30.17 - tinyglobby: 0.2.12 - unplugin-utils: 0.2.4 - vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) - transitivePeerDependencies: - - vue - '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -14629,20 +14544,11 @@ snapshots: dependencies: vite-plugin-pwa: 1.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0) - '@vite-pwa/vitepress@1.0.0(vite-plugin-pwa@1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0))': - dependencies: - vite-plugin-pwa: 1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0) - '@vitejs/plugin-vue@5.2.1(vite@5.4.19(@types/node@22.13.5)(terser@5.39.0))(vue@3.5.13(typescript@5.7.3))': dependencies: vite: 5.4.19(@types/node@22.13.5)(terser@5.39.0) vue: 3.5.13(typescript@5.7.3) - '@vitejs/plugin-vue@5.2.1(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) - vue: 3.5.13(typescript@5.7.3) - '@vitejs/plugin-vue@6.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.19 @@ -21711,33 +21617,6 @@ snapshots: - supports-color - vue - unocss@66.0.0(postcss@8.5.6)(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)): - dependencies: - '@unocss/astro': 66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) - '@unocss/cli': 66.0.0 - '@unocss/core': 66.0.0 - '@unocss/postcss': 66.0.0(postcss@8.5.6) - '@unocss/preset-attributify': 66.0.0 - '@unocss/preset-icons': 66.0.0 - '@unocss/preset-mini': 66.0.0 - '@unocss/preset-tagify': 66.0.0 - '@unocss/preset-typography': 66.0.0 - '@unocss/preset-uno': 66.0.0 - '@unocss/preset-web-fonts': 66.0.0 - '@unocss/preset-wind': 66.0.0 - '@unocss/preset-wind3': 66.0.0 - '@unocss/transformer-attributify-jsx': 66.0.0 - '@unocss/transformer-compile-class': 66.0.0 - '@unocss/transformer-directives': 66.0.0 - '@unocss/transformer-variant-group': 66.0.0 - '@unocss/vite': 66.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)) - optionalDependencies: - vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) - transitivePeerDependencies: - - postcss - - supports-color - - vue - unpipe@1.0.0: {} unplugin-utils@0.2.4: @@ -21888,17 +21767,6 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-pwa@1.0.0(vite@6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.3.0): - dependencies: - debug: 4.4.0(supports-color@8.1.1) - pretty-bytes: 6.1.1 - tinyglobby: 0.2.12 - vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0) - workbox-build: 7.1.1(@types/babel__core@7.20.5) - workbox-window: 7.3.0 - transitivePeerDependencies: - - supports-color - vite@5.4.19(@types/node@22.13.5)(terser@5.39.0): dependencies: esbuild: 0.21.5 From 1e5e835c41e9c11c5eb8b7e00060fc8c5392b0a3 Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Tue, 15 Jul 2025 16:50:15 +0530 Subject: [PATCH 29/32] updated changeset on-behalf-of: @Mermaid-Chart hello@mermaidchart.com --- .changeset/weak-files-stare.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/weak-files-stare.md b/.changeset/weak-files-stare.md index 80440fe05..c1a8d8f3a 100644 --- a/.changeset/weak-files-stare.md +++ b/.changeset/weak-files-stare.md @@ -2,4 +2,4 @@ 'mermaid': patch --- -patch: Update MindmapDB to use class based approach +chore: Update MindmapDB to use class based approach From 771801b366f0bfba158db88a40180fba9eaf7667 Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Tue, 15 Jul 2025 17:40:59 +0530 Subject: [PATCH 30/32] Updated changeset on-behalf-of: @Mermaid-Chart --- .changeset/pretty-falcons-say.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pretty-falcons-say.md b/.changeset/pretty-falcons-say.md index f9768a296..f1a0a95c3 100644 --- a/.changeset/pretty-falcons-say.md +++ b/.changeset/pretty-falcons-say.md @@ -2,4 +2,4 @@ 'mermaid': patch --- -patch: Updated TreeMapDB to use class based approach +chore: Updated TreeMapDB to use class based approach From 70041c806fa890b6196b7f0ab0a4e1cc3d0fddaf Mon Sep 17 00:00:00 2001 From: Matteo Date: Tue, 15 Jul 2025 14:59:14 +0200 Subject: [PATCH 31/32] chore: update katex to latest version due to CVE vulnerability --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index d706aac9f..2dd3248e4 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -79,7 +79,7 @@ "dagre-d3-es": "7.0.11", "dayjs": "^1.11.13", "dompurify": "^3.2.5", - "katex": "^0.16.9", + "katex": "^0.16.22", "khroma": "^2.1.0", "lodash-es": "^4.17.21", "marked": "^16.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c731de155..ea7a7dd21 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -260,8 +260,8 @@ importers: specifier: ^3.2.5 version: 3.2.5 katex: - specifier: ^0.16.9 - version: 0.16.11 + specifier: ^0.16.22 + version: 0.16.22 khroma: specifier: ^2.1.0 version: 2.1.0 @@ -7175,8 +7175,8 @@ packages: resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} - katex@0.16.11: - resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} + katex@0.16.22: + resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} hasBin: true keyv@4.5.4: @@ -18830,7 +18830,7 @@ snapshots: junk@4.0.1: {} - katex@0.16.11: + katex@0.16.22: dependencies: commander: 8.3.0 From 7e5e47843b31fab6802ab5d713a601dbb050507c Mon Sep 17 00:00:00 2001 From: shubham-mermaid Date: Tue, 15 Jul 2025 21:36:22 +0530 Subject: [PATCH 32/32] add noteshub.app to exclusions for certificate errors on-behalf-of: @Mermaid-Chart --- .github/lychee.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/lychee.toml b/.github/lychee.toml index 03dc0c5e5..fbe7a71a2 100644 --- a/.github/lychee.toml +++ b/.github/lychee.toml @@ -52,6 +52,9 @@ exclude = [ # Swimm returns 404, even though the link is valid "https://docs.swimm.io", +# Certificate Error +"https://noteshub.app", + # Timeout "https://huehive.co", "https://foswiki.org",