This commit is contained in:
meinzzzz 2025-11-20 00:09:10 +01:00
parent fc8042aa25
commit c5d282d203
11 changed files with 610 additions and 178 deletions

View File

@ -71,6 +71,7 @@
]
},
"dependencies": {
"@ckeditor/ckeditor5-icons": "47.2.0"
"@ckeditor/ckeditor5-icons": "47.2.0",
"mathlive": "0.108.2"
}
}

View File

@ -1,6 +1,8 @@
import ckeditor from './../theme/icons/math.svg?raw';
import './augmentation.js';
import "../theme/mathform.css";
import 'mathlive/fonts.css';
import 'mathlive/static.css';
export { default as Math } from './math.js';
export { default as MathUI } from './mathui.js';

View File

@ -4,6 +4,7 @@ import mathIcon from '../theme/icons/math.svg?raw';
import { Plugin, ClickObserver, ButtonView, ContextualBalloon, clickOutsideHandler, CKEditorError, uid } from 'ckeditor5';
import { getBalloonPositionData } from './utils.js';
import MathCommand from './mathcommand.js';
import 'mathlive';
const mathKeystroke = 'Ctrl+M';
@ -56,7 +57,7 @@ export default class MathUI extends Plugin {
this._balloon.showStack( 'main' );
requestAnimationFrame(() => {
this.formView?.mathInputView.fieldView.element?.focus();
this.formView?.mathInputView.focus();
});
}
@ -89,7 +90,7 @@ export default class MathUI extends Plugin {
mathConfig.katexRenderOptions!
);
formView.mathInputView.bind( 'value' ).to( mathCommand, 'value' );
formView.mathInputView.bind( 'value' ).to( mathCommand, value => value ?? '' );
formView.displayButtonView.bind( 'isOn' ).to( mathCommand, 'display' );
// Form elements should be read-only when corresponding commands are disabled.
@ -122,18 +123,6 @@ export default class MathUI extends Plugin {
}
});
// Allow the textarea to be resizable
formView.mathInputView.fieldView.once('render', () => {
const textarea = formView.mathInputView.fieldView.element;
if (!textarea) return;
Object.assign(textarea.style, {
resize: 'both',
height: '100px',
width: '400px',
minWidth: '100%',
});
});
return formView;
}
@ -162,7 +151,7 @@ export default class MathUI extends Plugin {
} );
if ( this._balloon.visibleView === this.formView ) {
this.formView.mathInputView.fieldView.element?.select();
this.formView.mathInputView.focus();
}
// Show preview element

View File

@ -1,23 +1,18 @@
import { ButtonView, createLabeledTextarea, FocusCycler, LabelView, LabeledFieldView, submitHandler, SwitchButtonView, View, ViewCollection, type TextareaView, type FocusableView, Locale, FocusTracker, KeystrokeHandler } from 'ckeditor5';
import IconCheck from "@ckeditor/ckeditor5-icons/theme/icons/check.svg?raw";
import IconCancel from "@ckeditor/ckeditor5-icons/theme/icons/cancel.svg?raw";
import { ButtonView, FocusCycler, LabelView, submitHandler, SwitchButtonView, View, ViewCollection, type FocusableView, Locale, FocusTracker, KeystrokeHandler } from 'ckeditor5';
import IconCheck from '../../theme/icons/check.svg?raw';
import IconCancel from '../../theme/icons/cancel.svg?raw';
import { extractDelimiters, hasDelimiters } from '../utils.js';
import MathView from './mathview.js';
import MathLiveInputView from './mathliveinputview.js';
import RawLatexInputView from './rawlatexinputview.js';
import '../../theme/mathform.css';
import type { KatexOptions } from '../typings-external.js';
class MathInputView extends LabeledFieldView<TextareaView> {
public value: null | string = null;
public isReadOnly = false;
constructor( locale: Locale ) {
super( locale, createLabeledTextarea );
}
}
export default class MainFormView extends View {
public saveButtonView: ButtonView;
public mathInputView: MathInputView;
public mathInputView: MathLiveInputView;
public rawLatexInputView: RawLatexInputView;
public rawLatexLabel: LabelView;
public displayButtonView: SwitchButtonView;
public cancelButtonView: ButtonView;
public previewEnabled: boolean;
@ -54,6 +49,13 @@ export default class MainFormView extends View {
// Equation input
this.mathInputView = this._createMathInput();
// Raw LaTeX input
this.rawLatexInputView = this._createRawLatexInput();
// Raw LaTeX label
this.rawLatexLabel = new LabelView( locale );
this.rawLatexLabel.text = t( 'LaTeX' );
// Display button
this.displayButtonView = this._createDisplayButton();
@ -74,6 +76,8 @@ export default class MainFormView extends View {
children = [
this.mathInputView,
this.rawLatexLabel,
this.rawLatexInputView,
this.displayButtonView,
this.previewLabel,
this.mathView
@ -81,6 +85,8 @@ export default class MainFormView extends View {
} else {
children = [
this.mathInputView,
this.rawLatexLabel,
this.rawLatexInputView,
this.displayButtonView
];
}
@ -101,14 +107,28 @@ export default class MainFormView extends View {
{
tag: 'div',
attributes: {
class: [
'ck-math-view'
]
class: [ 'ck-math-scroll' ]
},
children
children: [
{
tag: 'div',
attributes: {
class: [ 'ck-math-view' ]
},
children
}
]
},
this.saveButtonView,
this.cancelButtonView
{
tag: 'div',
attributes: {
class: [ 'ck-math-button-row' ]
},
children: [
this.saveButtonView,
this.cancelButtonView
]
}
]
} );
}
@ -124,6 +144,7 @@ export default class MainFormView extends View {
// Register form elements to focusable elements
const childViews = [
this.mathInputView,
this.rawLatexInputView,
this.displayButtonView,
this.saveButtonView,
this.cancelButtonView
@ -147,13 +168,12 @@ export default class MainFormView extends View {
}
public get equation(): string {
return this.mathInputView.fieldView.element?.value ?? '';
return this.mathInputView.value ?? '';
}
public set equation( equation: string ) {
if ( this.mathInputView.fieldView.element ) {
this.mathInputView.fieldView.element.value = equation;
}
this.mathInputView.value = equation;
this.rawLatexInputView.value = equation;
if ( this.previewEnabled && this.mathView ) {
this.mathView.value = equation;
}
@ -172,46 +192,79 @@ export default class MainFormView extends View {
}
} );
/**
* Creates the MathLive visual equation editor.
*
* Handles bidirectional synchronization with the raw LaTeX input and preview.
*/
private _createMathInput() {
const t = this.locale.t;
// Create equation input
const mathInput = new MathInputView( this.locale );
const fieldView = mathInput.fieldView;
mathInput.infoText = t( 'Insert equation in TeX format.' );
const mathInput = new MathLiveInputView( this.locale );
const onInput = () => {
if ( fieldView.element != null ) {
let equationInput = fieldView.element.value.trim();
const rawValue = mathInput.value ?? '';
let equationInput = rawValue.trim();
// If input has delimiters
if ( hasDelimiters( equationInput ) ) {
// Get equation without delimiters
const params = extractDelimiters( equationInput );
// If input has delimiters
if ( hasDelimiters( equationInput ) ) {
// Get equation without delimiters
const params = extractDelimiters( equationInput );
// Remove delimiters from input field
fieldView.element.value = params.equation;
// Remove delimiters from input field
mathInput.value = params.equation;
equationInput = params.equation;
equationInput = params.equation;
// update display button and preview
this.displayButtonView.isOn = params.display;
}
if ( this.previewEnabled && this.mathView ) {
// Update preview view
this.mathView.value = equationInput;
}
this.saveButtonView.isEnabled = !!equationInput;
// update display button and preview
this.displayButtonView.isOn = params.display;
}
// Sync to raw LaTeX input
this.rawLatexInputView.value = equationInput;
if ( this.previewEnabled && this.mathView ) {
// Update preview view
this.mathView.value = equationInput;
}
this.saveButtonView.isEnabled = !!equationInput;
};
fieldView.on( 'render', onInput );
fieldView.on( 'input', onInput );
mathInput.on( 'change:value', onInput );
return mathInput;
}
/**
* Creates the raw LaTeX code textarea editor.
*
* Provides direct LaTeX editing and synchronizes changes with the MathLive visual editor.
*/
private _createRawLatexInput() {
const t = this.locale.t;
const rawLatexInput = new RawLatexInputView( this.locale );
rawLatexInput.label = t( 'LaTeX' );
// Sync raw LaTeX changes to MathLive visual editor
rawLatexInput.on( 'change:value', () => {
const rawValue = rawLatexInput.value ?? '';
const equationInput = rawValue.trim();
// Update MathLive field
if ( this.mathInputView.value !== equationInput ) {
this.mathInputView.value = equationInput;
}
// Update preview if enabled
if ( this.previewEnabled && this.mathView ) {
this.mathView.value = equationInput;
}
this.saveButtonView.isEnabled = !!equationInput;
} );
return rawLatexInput;
}
private _createButton(
label: string,
icon: string,

View File

@ -0,0 +1,105 @@
import { View, type Locale } from 'ckeditor5';
/**
* A view that wraps the MathLive `<math-field>` web component for interactive LaTeX equation editing.
*
* MathLive provides a rich math input experience with live rendering, virtual keyboard support,
* and various accessibility features.
*
* @see https://cortexjs.io/mathlive/
*/
export default class MathLiveInputView extends View {
/**
* The current LaTeX value of the math field.
*
* @observable
*/
public declare value: string;
/**
* Whether the input is in read-only mode.
*
* @observable
*/
public declare isReadOnly: boolean;
/**
* Reference to the `<math-field>` DOM element.
*/
public mathfield: HTMLElement | null = null;
constructor( locale: Locale ) {
super( locale );
this.set( 'value', '' );
this.set( 'isReadOnly', false );
this.setTemplate( {
tag: 'div',
attributes: {
class: [ 'ck', 'ck-mathlive-input' ]
}
} );
}git config --local credential.helper ""
/**
* @inheritDoc
*/
public override render(): void {
super.render();
// Create the MathLive math-field custom element
const mathfield = document.createElement( 'math-field' ) as any;
this.mathfield = mathfield;
// Configure the virtual keyboard to be manually controlled (shown by user interaction)
mathfield.setAttribute( 'virtual-keyboard-mode', 'manual' );
// Set initial value
if ( this.value ) {
( mathfield as any ).value = this.value;
}
// Bind readonly state
if ( this.isReadOnly ) {
( mathfield as any ).readOnly = true;
}
// Sync math-field changes to observable value
mathfield.addEventListener( 'input', () => {
this.value = ( mathfield as any ).value;
} );
// Sync observable value changes back to math-field
this.on( 'change:value', () => {
if ( ( mathfield as any ).value !== this.value ) {
( mathfield as any ).value = this.value;
}
} );
// Sync readonly state to math-field
this.on( 'change:isReadOnly', () => {
( mathfield as any ).readOnly = this.isReadOnly;
} );
this.element?.appendChild( mathfield );
}
/**
* Focuses the math-field element.
*/
public focus(): void {
this.mathfield?.focus();
}
/**
* @inheritDoc
*/
public override destroy(): void {
if ( this.mathfield ) {
this.mathfield.remove();
this.mathfield = null;
}
super.destroy();
}
}

View File

@ -0,0 +1,61 @@
import { LabeledFieldView, createLabeledTextarea, type Locale, type TextareaView } from 'ckeditor5';
/**
* A labeled textarea view for direct LaTeX code editing.
*
* This provides a plain text input for users who prefer to write LaTeX syntax directly
* or need to paste/edit raw LaTeX code.
*/
export default class RawLatexInputView extends LabeledFieldView<TextareaView> {
/**
* The current LaTeX value.
*
* @observable
*/
public declare value: string;
/**
* Whether the input is in read-only mode.
*
* @observable
*/
public declare isReadOnly: boolean;
constructor( locale: Locale ) {
super( locale, createLabeledTextarea );
this.set( 'value', '' );
this.set( 'isReadOnly', false );
const fieldView = this.fieldView;
// Sync textarea input to observable value
fieldView.on( 'input', () => {
if ( fieldView.element ) {
this.value = fieldView.element.value;
}
} );
// Sync observable value changes back to textarea
this.on( 'change:value', () => {
if ( fieldView.element && fieldView.element.value !== this.value ) {
fieldView.element.value = this.value;
}
} );
// Sync readonly state (manual binding to avoid CKEditor observable rebind error)
this.on( 'change:isReadOnly', () => {
if ( fieldView.element ) {
fieldView.element.readOnly = this.isReadOnly;
}
} );
}
/**
* @inheritDoc
*/
public override render(): void {
super.render();
// All styling is handled via CSS in mathform.css
}
}

View File

@ -410,7 +410,7 @@ describe( 'MathUI', () => {
it( 'should bind mainFormView.mathInputView#value to math command value', () => {
const command = editor.commands.get( 'math' );
expect( formView!.mathInputView.value ).to.null;
expect( formView!.mathInputView.value ).to.be.null;
command!.value = 'x^2';
expect( formView!.mathInputView.value ).to.equal( 'x^2' );
@ -419,10 +419,10 @@ describe( 'MathUI', () => {
it( 'should execute math command on mainFormView#submit event', () => {
const executeSpy = vi.spyOn( editor, 'execute' );
formView!.mathInputView.fieldView.element!.value = 'x^2';
formView!.mathInputView.value = 'x^2';
formView!.fire( 'submit' );
expect(executeSpy.mock.lastCall?.slice(0, 2)).toMatchObject(['math', 'x^2']);
expect( executeSpy.mock.lastCall?.slice( 0, 2 ) ).toMatchObject( [ 'math', 'x^2' ] );
} );
it( 'should hide the balloon on mainFormView#cancel if math command does not have a value', () => {

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<path d="M4 4L12 12" />
<path d="M12 4L4 12" />
</svg>

After

Width:  |  Height:  |  Size: 192 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M3.5 8.5L6.5 11.5 12.5 5.5" />
</svg>

After

Width:  |  Height:  |  Size: 207 B

View File

@ -1,35 +1,227 @@
/**
* Math equation editor dialog styles
*
* This stylesheet provides the layout and styling for the math equation editor,
* which includes a MathLive visual editor, a raw LaTeX textarea, and control buttons.
* The dialog is resizable and uses a flexible layout to accommodate different content sizes.
*/
/* ============================================================================
Form Layout
========================================================================= */
.ck.ck-math-form {
display: flex;
align-items: flex-start;
flex-direction: row;
flex-wrap: nowrap;
flex-direction: column;
padding: var(--ck-spacing-standard);
width: 100%;
height: 100%;
box-sizing: border-box;
@media screen and (max-width: 600px) {
flex-wrap: wrap;
& .ck-math-view {
flex-basis: 100%;
& .ck-labeled-view {
flex-basis: 100%;
}
& .ck-label {
flex-basis: 100%;
}
}
& .ck-button {
flex-basis: 50%;
}
}
}
.ck-math-tex.ck-placeholder::before {
/* ============================================================================
Button Row
========================================================================= */
/* Button row */
.ck-math-button-row {
display: flex;
gap: var(--ck-spacing-standard);
flex-shrink: 0;
margin-top: var(--ck-spacing-standard);
width: fit-content;
}
/* Scrollable content area */
.ck-math-scroll {
display: flex;
flex-direction: column;
flex: 1 1 auto;
min-height: 0;
min-width: 0;
overflow: hidden;
}
/* ============================================================================
Math Panel Layout
========================================================================= */
/* Math panel layout */
.ck-math-view {
display: flex;
flex-direction: column;
gap: var(--ck-spacing-standard);
flex: 1 1 auto;
min-height: fit-content;
}
/* ============================================================================
MathLive Integration
========================================================================= */
/* MathLive input container */
.ck.ck-mathlive-input {
display: inline-block;
flex: 0 0 auto;
width: auto;
min-width: 100%;
min-height: 140px;
max-height: 70vh;
resize: both;
overflow: auto;
padding-bottom: var(--ck-spacing-small);
box-sizing: border-box;
}
/* MathLive field styling */
.ck.ck-mathlive-input math-field {
display: block !important;
width: 100%;
height: 100%;
min-height: 140px;
box-sizing: border-box;
resize: none !important;
overflow: hidden !important;
}
/* Style MathLive shadow DOM parts so the whole area is interactive */
.ck.ck-math-form math-field::part(container),
.ck.ck-math-form math-field::part(content),
.ck.ck-math-form math-field::part(field) {
display: flex;
flex-direction: column;
flex: 1 1 auto;
min-height: 100%;
height: 100%;
align-items: flex-start;
justify-content: flex-start;
}
/* Position MathLive virtual keyboard toggle button */
.ck.ck-math-form math-field::part(virtual-keyboard-toggle) {
position: absolute;
right: 8px;
top: 8px;
}
/* Position MathLive menu toggle button and ensure it's always visible */
.ck.ck-math-form math-field::part(menu-toggle) {
position: absolute;
right: 8px;
top: 48px;
/* Force visibility even when field is empty */
display: flex !important;
visibility: visible !important;
}
/* ============================================================================
Raw LaTeX Integration
========================================================================= */
/* Mirror MathLive container behavior for the labeled textarea wrapper */
.ck-math-view .ck-labeled-field-view {
display: flex;
flex-direction: column;
flex: 0 0 auto;
width: 100%;
min-width: 100%;
min-height: 140px;
max-height: 70vh;
resize: vertical;
overflow: auto;
padding-bottom: 0;
box-sizing: border-box;
background: transparent;
border: none;
border-radius: 0;
outline: none;
}
/* Let the internal wrapper stretch so the textarea can fill the space */
.ck-math-view .ck-labeled-field-view .ck-labeled-field-view__input-wrapper {
display: flex;
flex-direction: column;
flex: 1 1 auto;
width: 100%;
height: auto;
min-height: 100px;
margin: 0;
padding: 0;
background: transparent;
border: none;
box-shadow: none;
}
/* Ensure the raw textarea fills its wrapper like MathLive's math-field */
.ck-math-view .ck-labeled-field-view textarea {
display: block;
width: 100% !important;
flex: 1 1 auto;
height: 100%;
min-height: 140px;
box-sizing: border-box;
resize: none !important;
overflow: hidden !important;
}
/* ============================================================================
Shared Input Styling (MathLive & Raw LaTeX)
========================================================================= */
/* Base styling for both MathLive field and raw LaTeX textarea */
.ck.ck-math-form math-field,
.ck.ck-math-form textarea {
padding: var(--ck-spacing-small);
border: none !important;
border-radius: var(--ck-border-radius, 6px);
font-size: var(--ck-font-size-base);
box-sizing: border-box;
background: var(--input-background-color);
color: var(--input-text-color);
outline: 3px solid transparent;
outline-offset: 6px;
}
/* Hover state */
.ck.ck-math-form math-field:hover,
.ck.ck-math-form textarea:hover {
background: var(--input-hover-background);
color: var(--input-hover-color);
}
/* Make the raw LaTeX textarea flat (no rounded corners or hover animation) */
.ck-math-view .ck-labeled-field-view textarea {
border-radius: 0 !important;
outline: none !important;
box-shadow: none !important;
transition: none !important;
}
.ck-math-view .ck-labeled-field-view textarea:hover,
.ck-math-view .ck-labeled-field-view textarea:focus {
background: var(--input-background-color);
color: var(--input-text-color);
outline: none !important;
box-shadow: none !important;
transition: none !important;
}
/* Hide the internal label (we use a separate label element for better layout control) */
.ck-math-view .ck-labeled-field-view .ck-label {
display: none !important;
}
.ck.ck-toolbar-container {
z-index: calc(var(--ck-z-panel) + 2);
}

196
pnpm-lock.yaml generated
View File

@ -641,7 +641,7 @@ importers:
version: 3.0.0
debug:
specifier: 4.4.3
version: 4.4.3(supports-color@6.0.0)
version: 4.4.3(supports-color@8.1.1)
ejs:
specifier: 3.1.10
version: 3.1.10
@ -1058,6 +1058,9 @@ importers:
'@ckeditor/ckeditor5-icons':
specifier: 47.2.0
version: 47.2.0
mathlive:
specifier: 0.108.2
version: 0.108.2
devDependencies:
'@ckeditor/ckeditor5-dev-build-tools':
specifier: 43.1.0
@ -2101,6 +2104,10 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
'@cortex-js/compute-engine@0.30.2':
resolution: {integrity: sha512-Zx+iisk9WWdbxjm8EYsneIBszvjfUs7BHNwf1jBtSINIgfWGpHrTTq9vW0J59iGCFt6bOFxbmWyxNMRSmksHMA==}
engines: {node: '>=21.7.3', npm: '>=10.5.0'}
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
@ -6823,6 +6830,10 @@ packages:
compare-versions@6.1.1:
resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==}
complex-esm@2.1.1-esm1:
resolution: {integrity: sha512-IShBEWHILB9s7MnfyevqNGxV0A1cfcSnewL/4uPFiSxkcQL4Mm3FxJ0pXMtCXuWLjYz3lRRyk6OfkeDZcjD6nw==}
engines: {node: '>=16.14.2', npm: '>=8.5.0'}
component-emitter@1.3.1:
resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
@ -10138,6 +10149,9 @@ packages:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
mathlive@0.108.2:
resolution: {integrity: sha512-GIZkfprGTxrbHckOvwo92ZmOOxdD018BHDzlrEwYUU+pzR5KabhqI1s43lxe/vqXdF5RLiQKgDcuk5jxEjhkYg==}
mathml-tag-names@2.1.3:
resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
@ -15329,7 +15343,7 @@ snapshots:
'@babel/traverse': 7.28.4
'@babel/types': 7.28.4
convert-source-map: 2.0.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@ -15446,7 +15460,7 @@ snapshots:
'@babel/parser': 7.28.4
'@babel/template': 7.27.2
'@babel/types': 7.28.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@ -15459,7 +15473,7 @@ snapshots:
'@babel/parser': 7.28.4
'@babel/template': 7.27.2
'@babel/types': 7.28.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -15471,7 +15485,7 @@ snapshots:
'@babel/parser': 7.28.4
'@babel/template': 7.27.2
'@babel/types': 7.28.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -15692,6 +15706,8 @@ snapshots:
'@ckeditor/ckeditor5-core': 47.2.0
'@ckeditor/ckeditor5-utils': 47.2.0
ckeditor5: 47.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41)
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-code-block@47.2.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)':
dependencies:
@ -15756,8 +15772,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.2.0
'@ckeditor/ckeditor5-watchdog': 47.2.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.3)':
dependencies:
@ -15952,8 +15966,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.2.0
ckeditor5: 47.2.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41)
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-editor-multi-root@47.2.0':
dependencies:
@ -16866,6 +16878,11 @@ snapshots:
'@colors/colors@1.5.0': {}
'@cortex-js/compute-engine@0.30.2':
dependencies:
complex-esm: 2.1.1-esm1
decimal.js: 10.6.0
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
@ -16935,7 +16952,7 @@ snapshots:
'@listr2/prompt-adapter-inquirer': 2.0.22(@inquirer/prompts@6.0.1)
chalk: 4.1.2
commander: 11.1.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 10.1.0
listr2: 7.0.2
log-symbols: 4.1.0
@ -16955,7 +16972,7 @@ snapshots:
'@electron/rebuild': 3.7.2
'@malept/cross-spawn-promise': 2.0.0
chalk: 4.1.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
find-up: 5.0.0
fs-extra: 10.1.0
log-symbols: 4.1.0
@ -16984,7 +17001,7 @@ snapshots:
'@malept/cross-spawn-promise': 2.0.0
'@vscode/sudo-prompt': 9.3.1
chalk: 4.1.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fast-glob: 3.3.3
filenamify: 4.3.0
find-up: 5.0.0
@ -17120,7 +17137,7 @@ snapshots:
'@electron-forge/core-utils': 7.10.2
'@electron-forge/shared-types': 7.10.2
'@malept/cross-spawn-promise': 2.0.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 10.1.0
semver: 7.7.3
username: 5.1.0
@ -17182,7 +17199,7 @@ snapshots:
'@electron/get@2.0.3':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
env-paths: 2.2.1
fs-extra: 8.1.0
got: 11.8.6
@ -17196,7 +17213,7 @@ snapshots:
'@electron/get@3.1.0':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
env-paths: 2.2.1
fs-extra: 8.1.0
got: 11.8.6
@ -17226,7 +17243,7 @@ snapshots:
'@electron/notarize@2.5.0':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 9.1.0
promise-retry: 2.0.1
transitivePeerDependencies:
@ -17235,7 +17252,7 @@ snapshots:
'@electron/osx-sign@1.3.3':
dependencies:
compare-version: 0.1.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 10.1.0
isbinaryfile: 4.0.10
minimist: 1.2.8
@ -17251,7 +17268,7 @@ snapshots:
'@electron/osx-sign': 1.3.3
'@electron/universal': 2.0.2
'@electron/windows-sign': 1.2.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
extract-zip: 2.0.1
filenamify: 4.3.0
fs-extra: 11.3.2
@ -17272,7 +17289,7 @@ snapshots:
'@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2
'@malept/cross-spawn-promise': 2.0.0
chalk: 4.1.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
detect-libc: 2.1.1
fs-extra: 10.1.0
got: 11.8.6
@ -17291,7 +17308,7 @@ snapshots:
dependencies:
'@malept/cross-spawn-promise': 2.0.0
chalk: 4.1.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
detect-libc: 2.0.4
got: 11.8.6
graceful-fs: 4.2.11
@ -17314,7 +17331,7 @@ snapshots:
dependencies:
'@electron/asar': 3.4.1
'@malept/cross-spawn-promise': 2.0.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
dir-compare: 4.2.0
fs-extra: 11.3.2
minimatch: 9.0.5
@ -17325,7 +17342,7 @@ snapshots:
'@electron/windows-sign@1.2.1':
dependencies:
cross-dirname: 0.1.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 11.3.2
minimist: 1.2.8
postject: 1.0.0-alpha.6
@ -17612,7 +17629,7 @@ snapshots:
'@eslint/config-array@0.21.1':
dependencies:
'@eslint/object-schema': 2.1.7
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@ -17636,7 +17653,7 @@ snapshots:
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
@ -17996,7 +18013,7 @@ snapshots:
'@antfu/install-pkg': 1.1.0
'@antfu/utils': 9.2.0
'@iconify/types': 2.0.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
globals: 15.15.0
kolorist: 1.8.0
local-pkg: 1.1.1
@ -18414,7 +18431,7 @@ snapshots:
'@kwsites/file-exists@1.1.1':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -18498,7 +18515,7 @@ snapshots:
'@malept/electron-installer-flatpak@0.11.4':
dependencies:
'@malept/flatpak-bundler': 0.4.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
electron-installer-common: 0.10.4
lodash: 4.17.21
semver: 7.7.3
@ -18509,7 +18526,7 @@ snapshots:
'@malept/flatpak-bundler@0.4.0':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 9.1.0
lodash: 4.17.21
tmp-promise: 3.0.3
@ -18968,7 +18985,7 @@ snapshots:
'@puppeteer/browsers@2.10.10':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
extract-zip: 2.0.1
progress: 2.0.3
proxy-agent: 6.5.0
@ -20249,7 +20266,7 @@ snapshots:
'@tokenizer/inflate@0.2.7':
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fflate: 0.8.2
token-types: 6.0.0
transitivePeerDependencies:
@ -20866,7 +20883,7 @@ snapshots:
'@typescript-eslint/types': 8.46.4
'@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.46.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
eslint: 9.39.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
@ -20876,7 +20893,7 @@ snapshots:
dependencies:
'@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.9.3)
'@typescript-eslint/types': 8.46.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -20895,7 +20912,7 @@ snapshots:
'@typescript-eslint/types': 8.46.4
'@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
eslint: 9.39.1(jiti@2.6.1)
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
@ -20910,7 +20927,7 @@ snapshots:
'@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.9.3)
'@typescript-eslint/types': 8.46.4
'@typescript-eslint/visitor-keys': 8.46.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
@ -20992,7 +21009,7 @@ snapshots:
'@vitest/coverage-istanbul@3.2.4(vitest@3.2.4)':
dependencies:
'@istanbuljs/schema': 0.1.3
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
istanbul-lib-instrument: 6.0.3
istanbul-lib-report: 3.0.1
@ -21010,7 +21027,7 @@ snapshots:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 1.0.2
ast-v8-to-istanbul: 0.3.3
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
@ -21321,7 +21338,7 @@ snapshots:
agent-base@6.0.2:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -21765,7 +21782,7 @@ snapshots:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
http-errors: 2.0.0
iconv-lite: 0.6.3
on-finished: 2.4.1
@ -22442,6 +22459,8 @@ snapshots:
compare-versions@6.1.1: {}
complex-esm@2.1.1-esm1: {}
component-emitter@1.3.1: {}
compress-commons@6.0.2:
@ -23225,8 +23244,7 @@ snapshots:
decimal.js@10.5.0: {}
decimal.js@10.6.0:
optional: true
decimal.js@10.6.0: {}
decko@1.2.0: {}
@ -23524,7 +23542,7 @@ snapshots:
dependencies:
'@electron/asar': 3.4.1
'@malept/cross-spawn-promise': 1.1.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 9.1.0
glob: 7.2.3
lodash: 4.17.21
@ -23540,7 +23558,7 @@ snapshots:
electron-installer-debian@3.2.0:
dependencies:
'@malept/cross-spawn-promise': 1.1.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
electron-installer-common: 0.10.4
fs-extra: 9.1.0
get-folder-size: 2.0.1
@ -23554,7 +23572,7 @@ snapshots:
electron-installer-dmg@5.0.1:
dependencies:
'@types/appdmg': 0.5.5
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
minimist: 1.2.8
optionalDependencies:
appdmg: 0.6.6
@ -23565,7 +23583,7 @@ snapshots:
electron-installer-redhat@3.4.0:
dependencies:
'@malept/cross-spawn-promise': 1.1.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
electron-installer-common: 0.10.4
fs-extra: 9.1.0
lodash: 4.17.21
@ -23581,7 +23599,7 @@ snapshots:
electron-localshortcut@3.2.1:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
electron-is-accelerator: 0.1.2
keyboardevent-from-electron-accelerator: 2.0.0
keyboardevents-areequal: 0.2.2
@ -23606,7 +23624,7 @@ snapshots:
electron-winstaller@5.4.0:
dependencies:
'@electron/asar': 3.4.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 7.0.1
lodash: 4.17.21
temp: 0.9.4
@ -24154,7 +24172,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@ -24264,7 +24282,7 @@ snapshots:
express-http-proxy@2.1.2:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
es6-promise: 4.2.8
raw-body: 2.5.2
transitivePeerDependencies:
@ -24275,7 +24293,7 @@ snapshots:
base64url: 3.0.1
clone: 2.1.2
cookie: 0.7.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
express: 5.1.0
futoin-hkdf: 1.5.3
http-errors: 1.8.1
@ -24349,7 +24367,7 @@ snapshots:
content-type: 1.0.5
cookie: 0.7.2
cookie-signature: 1.2.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
@ -24398,7 +24416,7 @@ snapshots:
extract-zip@2.0.1:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@ -24540,7 +24558,7 @@ snapshots:
finalhandler@2.1.0:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
@ -24596,7 +24614,7 @@ snapshots:
flora-colossus@2.0.0:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 10.1.0
transitivePeerDependencies:
- supports-color
@ -24608,7 +24626,7 @@ snapshots:
follow-redirects@1.15.9(debug@4.4.3):
optionalDependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
for-each@0.3.5:
dependencies:
@ -24749,7 +24767,7 @@ snapshots:
galactus@1.0.0:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
flora-colossus: 2.0.0
fs-extra: 10.1.0
transitivePeerDependencies:
@ -24865,7 +24883,7 @@ snapshots:
dependencies:
basic-ftp: 5.0.5
data-uri-to-buffer: 6.0.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -25342,7 +25360,7 @@ snapshots:
dependencies:
'@tootallnate/once': 1.1.2
agent-base: 6.0.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -25350,14 +25368,14 @@ snapshots:
dependencies:
'@tootallnate/once': 2.0.0
agent-base: 6.0.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.3
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -25410,14 +25428,14 @@ snapshots:
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.3
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -25812,7 +25830,7 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
'@jridgewell/trace-mapping': 0.3.31
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
@ -26426,7 +26444,7 @@ snapshots:
log4js@6.9.1:
dependencies:
date-format: 4.0.14
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
flatted: 3.3.3
rfdc: 1.4.1
streamroller: 3.1.5
@ -26642,6 +26660,10 @@ snapshots:
math-intrinsics@1.1.0: {}
mathlive@0.108.2:
dependencies:
'@cortex-js/compute-engine': 0.30.2
mathml-tag-names@2.1.3: {}
mdast-util-find-and-replace@3.0.2:
@ -27019,7 +27041,7 @@ snapshots:
micromark@4.0.2:
dependencies:
'@types/debug': 4.1.12
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
decode-named-character-reference: 1.2.0
devlop: 1.1.0
micromark-core-commonmark: 2.0.3
@ -27857,7 +27879,7 @@ snapshots:
dependencies:
'@tootallnate/quickjs-emscripten': 0.23.0
agent-base: 7.1.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
get-uri: 6.0.5
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
@ -28133,7 +28155,7 @@ snapshots:
portfinder@1.0.36:
dependencies:
async: 3.2.6
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -28978,7 +29000,7 @@ snapshots:
proxy-agent@6.5.0:
dependencies:
agent-base: 7.1.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
lru-cache: 7.18.3
@ -29196,7 +29218,7 @@ snapshots:
read-binary-file-arch@1.0.6:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -29639,7 +29661,7 @@ snapshots:
router@2.2.0:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
depd: 2.0.0
is-promise: 4.0.0
parseurl: 1.3.3
@ -29900,7 +29922,7 @@ snapshots:
send@1.2.0:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
@ -30117,13 +30139,13 @@ snapshots:
dependencies:
'@kwsites/file-exists': 1.1.1
'@kwsites/promise-deferred': 1.1.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
simple-websocket@9.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
queue-microtask: 1.2.3
randombytes: 2.1.0
readable-stream: 3.6.2
@ -30217,7 +30239,7 @@ snapshots:
socks-proxy-agent@6.2.1:
dependencies:
agent-base: 6.0.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
socks: 2.8.4
transitivePeerDependencies:
- supports-color
@ -30226,7 +30248,7 @@ snapshots:
socks-proxy-agent@7.0.0:
dependencies:
agent-base: 6.0.2
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
socks: 2.8.7
transitivePeerDependencies:
- supports-color
@ -30234,7 +30256,7 @@ snapshots:
socks-proxy-agent@8.0.5:
dependencies:
agent-base: 7.1.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
socks: 2.8.7
transitivePeerDependencies:
- supports-color
@ -30295,7 +30317,7 @@ snapshots:
spdy-transport@3.0.0:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
detect-node: 2.1.0
hpack.js: 2.1.6
obuf: 1.1.2
@ -30306,7 +30328,7 @@ snapshots:
spdy@4.0.2:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
handle-thing: 2.0.1
http-deceiver: 1.2.7
select-hose: 2.0.0
@ -30390,7 +30412,7 @@ snapshots:
streamroller@3.1.5:
dependencies:
date-format: 4.0.14
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fs-extra: 8.1.0
transitivePeerDependencies:
- supports-color
@ -30641,7 +30663,7 @@ snapshots:
cosmiconfig: 9.0.0(typescript@5.0.4)
css-functions-list: 3.2.3
css-tree: 3.1.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fast-glob: 3.3.3
fastest-levenshtein: 1.0.16
file-entry-cache: 10.1.4
@ -30685,7 +30707,7 @@ snapshots:
cosmiconfig: 9.0.0(typescript@5.9.3)
css-functions-list: 3.2.3
css-tree: 3.1.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fast-glob: 3.3.3
fastest-levenshtein: 1.0.16
file-entry-cache: 10.1.4
@ -30731,7 +30753,7 @@ snapshots:
sumchecker@3.0.1:
dependencies:
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@ -30739,7 +30761,7 @@ snapshots:
dependencies:
component-emitter: 1.3.1
cookiejar: 2.1.4
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
fast-safe-stringify: 2.1.1
form-data: 4.0.4
formidable: 3.5.4
@ -31196,7 +31218,7 @@ snapshots:
tuf-js@4.0.0:
dependencies:
'@tufjs/models': 4.0.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
make-fetch-happen: 15.0.3
transitivePeerDependencies:
- supports-color
@ -31566,7 +31588,7 @@ snapshots:
vite-node@3.2.4(@types/node@24.10.1)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1):
dependencies:
cac: 6.7.14
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
es-module-lexer: 1.7.0
pathe: 2.0.3
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)
@ -31591,7 +31613,7 @@ snapshots:
'@volar/typescript': 2.4.13
'@vue/language-core': 2.2.0(typescript@5.9.3)
compare-versions: 6.1.1
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
kolorist: 1.8.0
local-pkg: 1.1.1
magic-string: 0.30.17
@ -31658,7 +31680,7 @@ snapshots:
'@vitest/spy': 3.2.4
'@vitest/utils': 3.2.4
chai: 5.2.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
expect-type: 1.2.1
magic-string: 0.30.18
pathe: 2.0.3
@ -31741,7 +31763,7 @@ snapshots:
dependencies:
chalk: 4.1.2
commander: 9.5.0
debug: 4.4.3(supports-color@6.0.0)
debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color