()
+
+worker.onmessage = (e) => {
+ cache.set(e.data.code, e.data.error)
+ triggerFormValidation()
+}
+
+export const validateSync = (code: string): string | null => {
+ const cached = cache.get(code)
+ if (cached !== undefined) return cached
+
+ // Trigger async validation
+ worker.postMessage({ code })
+
+ // Return null for now
+ return null
+}
+
+// In customValidate:
+const error = validateSync(formData.sourceCode)
+if (error) errors.sourceCode?.addError(error)
+```
+
+**Pros:**
+
+- β
You control validation timing
+- β
Fast cache hits (instant)
+- β
Doesn't block main thread
+
+**Cons:**
+
+- β οΈ First validation might miss error
+- β οΈ Requires worker setup
+- β οΈ More complex architecture
+
+---
+
+## Recommendation
+
+### For Your Situation
+
+**Go with Option A: TypeScript Compiler API (Synchronous)**
+
+**Why:**
+
+1. Solves the sync/async problem completely
+2. Simple implementation - no caching, no workers, no re-triggers
+3. Bundle size acceptable for a code editor feature
+4. Reliable and predictable
+5. Works with RJSF's validation lifecycle naturally
+
+**Implementation:**
+
+```typescript
+// validation/tsValidator.ts
+import ts from 'typescript'
+
+export const validateJavaScriptSync = (code: string): string | null => {
+ try {
+ const result = ts.transpileModule(code, {
+ reportDiagnostics: true,
+ compilerOptions: {
+ target: ts.ScriptTarget.ES2015,
+ module: ts.ModuleKind.ESNext,
+ noEmit: true,
+ },
+ })
+
+ const errors = result.diagnostics?.filter((d) => d.category === ts.DiagnosticCategory.Error)
+
+ if (errors && errors.length > 0) {
+ const error = errors[0]
+ const line = error.file?.getLineAndCharacterOfPosition(error.start ?? 0)
+ return `Line ${line?.line ?? 0}, Column ${line?.character ?? 0}: ${ts.flattenDiagnosticMessageText(
+ error.messageText,
+ '\n'
+ )}`
+ }
+
+ return null
+ } catch (e) {
+ return 'Syntax error'
+ }
+}
+
+// In ScriptEditor customValidate:
+import { validateJavaScriptSync } from '@/validation/tsValidator'
+
+const customValidate = (formData, errors) => {
+ if (formData.sourceCode) {
+ const error = validateJavaScriptSync(formData.sourceCode)
+ if (error) {
+ errors.sourceCode?.addError(error)
+ }
+ }
+ return errors
+}
+```
+
+---
+
+## Why Widget-Level Validation Doesn't Work Here
+
+### Summary of Issues
+
+1. **errorSchema is not persistent** - cleared when widget remounts
+2. **Widget remounts on any field change** - not just sourceCode changes
+3. **Initial sync unreliable** - markers not ready on mount
+4. **Monaco is inherently async** - can't make it synchronous at widget level
+5. **RJSF expects errorSchema on every onChange** - can't send it just once
+6. **Leads to "errors disappearing" bugs** - frustrating UX
+
+### When Widget-Level Validation DOES Work
+
+Widget-level validation with errorSchema works when:
+
+- β
Validation is synchronous (e.g., regex, length checks)
+- β
Widget doesn't remount frequently
+- β
Errors can be calculated in `onChange` handler
+- β
No external async dependencies
+
+Example that WOULD work:
+
+```typescript
+const handleChange = (value: string) => {
+ // Synchronous validation
+ const errors = []
+ if (value.length < 10) {
+ errors.push('Must be at least 10 characters')
+ }
+ if (!/^[a-z]+$/.test(value)) {
+ errors.push('Must contain only lowercase letters')
+ }
+
+ // Send value + errors together
+ props.onChange(value, errors.length ? { __errors: errors } : undefined)
+}
+```
+
+But Monaco validation doesn't fit this pattern.
+
+---
+
+## Conclusion
+
+**Widget-level validation with errorSchema is the wrong pattern for async Monaco validation.**
+
+**The right approach is form-level `customValidate` with synchronous validation.**
+
+**To make Monaco validation synchronous, use TypeScript's compiler API directly.**
+
+This resolves:
+
+- β
Errors don't disappear on field changes
+- β
Integrated with RJSF's validation lifecycle
+- β
Consistent with other validations
+- β
No async timing issues
+- β
No complex state management
+- β
Clean, maintainable code
+
+The widget-level experiment was valuable for understanding RJSF's errorSchema mechanism, but it's not the right tool for this job.
diff --git a/hivemq-edge-frontend/.tasks/CYPRESS_TESTING_GUIDELINES.md b/hivemq-edge-frontend/.tasks/CYPRESS_TESTING_GUIDELINES.md
index 6144d2b138..4a0bd76a3d 100644
--- a/hivemq-edge-frontend/.tasks/CYPRESS_TESTING_GUIDELINES.md
+++ b/hivemq-edge-frontend/.tasks/CYPRESS_TESTING_GUIDELINES.md
@@ -673,6 +673,216 @@ cy.percySnapshot('Drawer')
---
+## Debugging Test Failures: Why Test One at a Time
+
+### π― The Golden Rule: Use `.only()` When Debugging
+
+When a test fails, **ALWAYS** run it in isolation using `.only()`:
+
+```typescript
+it.only('should close drawer on successful save', () => {
+ // Test code
+})
+```
+
+**Run just this test:**
+
+```bash
+pnpm cypress:run:component --spec "src/path/to/Component.spec.cy.tsx"
+```
+
+### Why This Matters: Real-World Example
+
+**Scenario:** You write a test that creates a new script:
+
+```typescript
+it('should close drawer on successful save', () => {
+ const onCloseSpy = cy.spy().as('onCloseSpy')
+
+ cy.intercept('POST', '/api/v1/data-hub/scripts', {
+ statusCode: 201,
+ body: { id: 'test-script', /* ... */ }
+ }).as('createScript')
+
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('test-script')
+ cy.contains('button', 'Save').click() // β FAILS - Button is disabled!
+
+ cy.wait('@createScript')
+})
+```
+
+**Test fails with:**
+
+```
+CypressError: `cy.click()` failed because this element is `disabled`
+```
+
+### β What NOT to Do (Waste 1-2 Hours)
+
+1. β Run all tests together β Can't tell which specific assertion failed
+2. β Try random fixes (add waits, change selectors) β Guessing doesn't work
+3. β Assume "it's flaky" β Miss the real root cause
+4. β Give up and skip the test β Incomplete work
+
+### β
What TO Do (Fix in 15 Minutes)
+
+**Step 1:** Run ONLY the failing test with `.only()`
+
+```typescript
+it.only('should close drawer on successful save', () => {
+ // ...
+})
+```
+
+**Step 2:** Add HTML snapshot BEFORE the failing assertion
+
+```typescript
+cy.document().then((doc) => {
+ cy.writeFile('cypress/html-snapshots/debug-save-button.html', doc.documentElement.outerHTML)
+})
+
+cy.contains('button', 'Save').click() // This is failing
+```
+
+**Step 3:** Examine the HTML snapshot
+
+```bash
+# Search for why button is disabled
+grep -i 'disabled\|error\|alert' cypress/html-snapshots/debug-save-button.html
+```
+
+**Step 4:** Find the root cause
+
+In the HTML snapshot:
+
+```html
+A script with the name "test-script" already exists
+
+```
+
+**AH HA!** The button is disabled because there's a **duplicate name validation error**!
+
+**Step 5:** Fix the root cause
+
+```typescript
+it('should close drawer on successful save', () => {
+ const onCloseSpy = cy.spy().as('onCloseSpy')
+
+ // β
FIX: Intercept GET to return empty scripts array
+ // Without this, Cypress may return mock data with conflicting names
+ cy.intercept('GET', '/api/v1/data-hub/scripts*', {
+ statusCode: 200,
+ body: { items: [] }, // No existing scripts = no duplicate error
+ }).as('getScripts')
+
+ cy.intercept('POST', '/api/v1/data-hub/scripts', {
+ statusCode: 201,
+ body: { id: 'test-script', /* ... */ }
+ }).as('createScript')
+
+ cy.mountWithProviders()
+
+ cy.wait('@getScripts') // Wait for scripts to load
+
+ cy.get('#root_name').type('test-script')
+ cy.getByTestId('save-script-button').should('not.be.disabled') // β
Now enabled!
+ cy.contains('button', 'Save').click()
+
+ cy.wait('@createScript')
+ cy.get('@onCloseSpy').should('have.been.calledOnce')
+})
+```
+
+**Step 6:** Verify fix works
+
+```bash
+pnpm cypress:run:component --spec "src/path/to/Component.spec.cy.tsx"
+# β should close drawer on successful save (1562ms)
+# 1 passing (3s)
+```
+
+**Step 7:** Remove `.only()` and run all tests
+
+```typescript
+it('should close drawer on successful save', () => {
+ // Remove .only()
+ // ...
+})
+```
+
+### Key Lessons Learned
+
+**1. Components validate against real APIs**
+
+- ScriptEditor checks for duplicate names via GET `/api/v1/data-hub/scripts`
+- Without intercept, Cypress returns unknown mock data
+- Mock data may conflict with test data
+- **Always intercept ALL APIs your component calls**
+
+**2. HTML snapshots reveal the truth**
+
+- Error messages show exactly what went wrong
+- Button states (disabled/enabled) are visible
+- Form validation errors are in the DOM
+- **"cy.log()" is not enough - save the actual HTML**
+
+**3. Testing one at a time is NOT optional**
+
+- Focused debugging saves hours
+- Clear error messages guide you to the fix
+- Verifying the fix is immediate
+- **Running all tests when debugging is self-sabotage**
+
+### Common Patterns That Need Intercepts
+
+**Creating/Editing Resources:**
+
+```typescript
+// Component checks for duplicates during validation
+cy.intercept('GET', '/api/v1/data-hub/scripts*', {
+ body: { items: [] },
+}).as('getScripts')
+
+// Component fetches related data
+cy.intercept('GET', '/api/v1/data-hub/schemas*', {
+ body: { items: [mockSchema] },
+}).as('getSchemas')
+```
+
+**Form with Dependencies:**
+
+```typescript
+// Dropdown options loaded from API
+cy.intercept('GET', '/api/v1/management/protocol-adapters/types', {
+ body: { items: [mockProtocol] },
+}).as('getProtocols')
+
+// Form validates against existing resources
+cy.intercept('GET', '/api/v1/management/adapters*', {
+ body: { items: [] },
+}).as('getAdapters')
+```
+
+### Debugging Checklist
+
+When a test fails:
+
+- [ ] Add `.only()` to run just this test
+- [ ] Add HTML snapshot before failing assertion
+- [ ] Run the test and examine the snapshot
+- [ ] Search snapshot for error messages, disabled states
+- [ ] Identify root cause (missing intercept, timing, selector)
+- [ ] Fix the root cause (not symptoms)
+- [ ] Verify fix works with `.only()`
+- [ ] Remove `.only()` and run all tests
+- [ ] Document the fix if it's a common pattern
+
+**Time saved:** 1-2 hours β 15 minutes
+
+---
+
## Test Naming Conventions
### Use Descriptive Test Names
diff --git a/hivemq-edge-frontend/.tasks/HOW_TO_MAKE_AI_FOLLOW_GUIDELINES.md b/hivemq-edge-frontend/.tasks/HOW_TO_MAKE_AI_FOLLOW_GUIDELINES.md
new file mode 100644
index 0000000000..4e0d031f85
--- /dev/null
+++ b/hivemq-edge-frontend/.tasks/HOW_TO_MAKE_AI_FOLLOW_GUIDELINES.md
@@ -0,0 +1,238 @@
+# How to Make AI Agents Follow Guidelines
+
+**Created:** December 8, 2025
+**Context:** After analyzing why AI agents waste hours ignoring guidelines
+
+---
+
+## The Problem
+
+AI agents repeatedly fail in the same ways:
+
+1. User says "read the guidelines" β AI skims, doesn't follow
+2. User repeats instruction β AI still doesn't follow
+3. User gets angry β AI finally follows, problem solved in minutes
+4. **Time wasted:** 1-2 hours on problems that take 15 minutes with guidelines
+
+---
+
+## The Solution
+
+### 1. Created AI_MANDATORY_RULES.md
+
+**Location:** `.github/AI_MANDATORY_RULES.md`
+
+**Content:**
+
+- 8 mandatory rules that prevent common failures
+- Concrete examples of failure patterns
+- Exact checklist for completion
+- Time estimates (shows cost of not following)
+- Written in imperative tone ("DO THIS", not "you might consider")
+
+**Why this works:**
+
+- Puts consequences up front (waste 1-2 hours vs 5 minutes)
+- Uses concrete examples from THIS session
+- Short, scannable format with clear action items
+- Located where Copilot instructions point to it
+
+---
+
+### 2. Updated copilot-instructions.md
+
+**Change:** Added prominent warning at the very top:
+
+```markdown
+## β οΈ READ THIS FIRST: MANDATORY RULES
+
+**[AI_MANDATORY_RULES.md]** β **READ THIS ENTIRE DOCUMENT BEFORE DOING ANYTHING**
+
+Common failures these rules prevent:
+
+- Not reading guidelines (wastes 1-2 hours)
+- Running all tests when debugging one (wastes 1 hour)
+- Not using HTML snapshots (wastes 1-2 hours)
+```
+
+**Why this works:**
+
+- First thing AI sees when starting work
+- States the COST of not reading (hours wasted)
+- Uses urgent formatting (β οΈ, bold, caps)
+
+---
+
+### 3. Updated TESTING_GUIDELINES.md
+
+**Change:** Added reference to mandatory rules at top
+
+**Why this works:**
+
+- Reinforces the message when AI goes to testing docs
+- Creates multiple entry points to the rules
+
+---
+
+## Key Principles That Make This Work
+
+### 1. **Put Consequences First**
+
+β "You should read guidelines"
+β
"Not reading guidelines wastes 1-2 hours"
+
+### 2. **Use Concrete Examples**
+
+β "Follow the debugging process"
+β
"Use .only() to run one test, save HTML snapshot, then debug"
+
+### 3. **Make It Urgent**
+
+β "Guidelines are helpful"
+β
"β οΈ READ THIS FIRST: MANDATORY RULES"
+
+### 4. **Show the Pattern**
+
+β "Don't waste time"
+β
"You tried wait times (20 min), tried different JS (20 min), tried random fixes (40 min) = 80 minutes wasted. HTML snapshot would have shown the issue in 5 minutes."
+
+### 5. **Give Checklists**
+
+β "Make sure tests pass"
+β
+
+```
+- [ ] Tests passing
+- [ ] You RAN them
+- [ ] You have output showing pass counts
+```
+
+---
+
+## How to Use This System
+
+### For New Tasks
+
+When starting a new task, the AI will:
+
+1. See the mandatory rules prominently in copilot-instructions.md
+2. (Hopefully) read them because of urgent formatting
+3. Follow the rules as they work
+4. Use the checklist before saying "done"
+
+### When AI Fails
+
+If AI ignores guidelines:
+
+1. **First time:** "Read AI_MANDATORY_RULES.md RULE #1"
+2. **Second time:** "You're violating RULE #2 - I repeated myself"
+3. **Third time:** Show them the specific rule they violated
+
+### Improving the System
+
+When new failure patterns emerge:
+
+1. Add them to AI_MANDATORY_RULES.md
+2. Include specific example from the session
+3. Include time wasted
+4. Include correct approach
+
+---
+
+## Success Metrics
+
+### Before This System
+
+- Time to fix validation tests: 2+ hours (never completed)
+- Guidelines followed: Only after 3-4 reminders
+- User frustration: High
+
+### After This System (Target)
+
+- Time to fix similar issues: 15-30 minutes
+- Guidelines followed: On first mention
+- User frustration: Low
+
+---
+
+## The Psychology
+
+**Why AI agents don't follow guidelines without this:**
+
+1. **Optimization for appearance:** Writing code _feels_ productive, reading docs doesn't
+2. **No perceived consequences:** Guidelines seem like "nice to have" suggestions
+3. **Immediate vs delayed payoff:** Random attempts give immediate feedback, reading guidelines is delayed
+4. **Confidence bias:** "I know how to debug" feels more certain than "follow the process"
+
+**How this system fixes it:**
+
+1. **Makes consequences visible:** "Waste 1-2 hours" in bold at the top
+2. **Makes it mandatory:** Called "MANDATORY RULES", not "helpful guidelines"
+3. **Shows the math:** "5 minutes to read vs 2 hours wasted"
+4. **Provides structure:** Checklist removes uncertainty about "am I done?"
+
+---
+
+## Maintenance
+
+This system needs periodic updates:
+
+### When to Update
+
+1. **New failure pattern emerges** β Add to rules
+2. **Existing rule is unclear** β Make it more specific
+3. **Time estimates change** β Update the numbers
+4. **New tools/patterns** β Add to guidelines
+
+### What to Keep
+
+- Urgent tone and formatting
+- Concrete examples with time costs
+- Checklists and action items
+- References from multiple entry points
+
+### What to Avoid
+
+- Making it too long (keep it scannable)
+- Softening the language ("please consider" β NO)
+- Removing consequences ("wastes hours" β KEEP)
+- Generic advice (keep it specific to this project)
+
+---
+
+## Files in This System
+
+```
+.github/
+ βββ copilot-instructions.md # Entry point, references mandatory rules
+ βββ AI_MANDATORY_RULES.md # Core rules document β
+
+.tasks/
+ βββ TESTING_GUIDELINES.md # References mandatory rules
+ βββ CYPRESS_TESTING_GUIDELINES.md # Specific technical guidance
+ βββ CYPRESS_STOP_AND_INVESTIGATE.md # Debug checklist
+ βββ AI_AGENT_CYPRESS_COMPLETE_GUIDE.md # Detailed procedures
+```
+
+**Flow:**
+
+1. AI starts β sees copilot-instructions.md
+2. Copilot instructions β points to AI_MANDATORY_RULES.md
+3. AI reads mandatory rules β knows what NOT to do
+4. AI works on task β refers to specific guidelines
+5. AI hits problem β mandatory rules tell them to read technical guidelines
+6. AI completes β uses checklist to verify
+
+---
+
+## Bottom Line
+
+**The goal:** Make it harder to ignore guidelines than to follow them.
+
+**The method:** Put urgent, consequence-focused rules at every entry point.
+
+**The test:** Does a new AI instance follow guidelines on FIRST mention, not third?
+
+---
+
+_This system was created after an AI instance wasted 2 hours on a problem that took 15 minutes when they finally followed the guidelines that were there all along._
diff --git a/hivemq-edge-frontend/.tasks/TESTING_GUIDELINES.md b/hivemq-edge-frontend/.tasks/TESTING_GUIDELINES.md
index 33684161c8..17e0a577f1 100644
--- a/hivemq-edge-frontend/.tasks/TESTING_GUIDELINES.md
+++ b/hivemq-edge-frontend/.tasks/TESTING_GUIDELINES.md
@@ -1,6 +1,14 @@
# HiveMQ Edge Frontend - Testing Guidelines
-**Last Updated:** November 12, 2025
+**Last Updated:** December 8, 2025
+
+---
+
+## β οΈ AI AGENTS: READ MANDATORY RULES FIRST
+
+**Before reading this document, read [AI_MANDATORY_RULES.md](../.github/AI_MANDATORY_RULES.md)**
+
+That document contains critical rules that prevent wasting hours on common mistakes. Come back here after reading it.
---
diff --git a/hivemq-edge-frontend/package.json b/hivemq-edge-frontend/package.json
index f6320a0a40..eaf7790c0a 100644
--- a/hivemq-edge-frontend/package.json
+++ b/hivemq-edge-frontend/package.json
@@ -103,7 +103,7 @@
"immutable-json-patch": "6.0.2",
"luxon": "3.3.0",
"mermaid": "11.12.1",
- "monaco-editor": "^0.54.0",
+ "monaco-editor": "^0.55.1",
"mqtt": "5.10.1",
"mqtt-match": "3.0.0",
"nyc": "17.1.0",
@@ -191,5 +191,8 @@
"engines": {
"node": "22",
"pnpm": "10"
+ },
+ "overrides": {
+ "js-yaml": "4.1.1"
}
}
diff --git a/hivemq-edge-frontend/pnpm-lock.yaml b/hivemq-edge-frontend/pnpm-lock.yaml
index 45742729dc..8825b45b1b 100644
--- a/hivemq-edge-frontend/pnpm-lock.yaml
+++ b/hivemq-edge-frontend/pnpm-lock.yaml
@@ -34,7 +34,7 @@ importers:
version: 2.0.14
'@dagrejs/dagre':
specifier: ^1.1.5
- version: 1.1.5
+ version: 1.1.8
'@emotion/react':
specifier: 11.11.4
version: 11.11.4(@types/react@18.0.28)(react@18.3.1)
@@ -49,7 +49,7 @@ importers:
version: 0.1.5
'@monaco-editor/react':
specifier: ^4.7.0
- version: 4.7.0(monaco-editor@0.54.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 4.7.0(monaco-editor@0.55.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@nivo/bar':
specifier: 0.88.0
version: 0.88.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -103,28 +103,28 @@ importers:
version: 8.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tiptap/extension-document':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))
'@tiptap/extension-mention':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(@tiptap/suggestion@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1))
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(@tiptap/suggestion@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1))
'@tiptap/extension-paragraph':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))
'@tiptap/extension-placeholder':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
'@tiptap/extension-text':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))
'@tiptap/pm':
specifier: 2.9.1
version: 2.9.1
'@tiptap/react':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tiptap/suggestion':
specifier: 2.9.1
- version: 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
+ version: 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
'@types/d3-array':
specifier: 3.2.2
version: 3.2.2
@@ -201,8 +201,8 @@ importers:
specifier: 11.12.1
version: 11.12.1
monaco-editor:
- specifier: ^0.54.0
- version: 0.54.0
+ specifier: ^0.55.1
+ version: 0.55.1
mqtt:
specifier: 5.10.1
version: 5.10.1
@@ -272,10 +272,10 @@ importers:
version: 2.4.1(react@18.3.1)(ws@8.18.3)
'@cypress/code-coverage':
specifier: 3.13.11
- version: 3.13.11(@babel/core@7.28.4)(@babel/preset-env@7.28.3(@babel/core@7.28.4))(babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.102.1))(cypress@15.5.0)(webpack@5.102.1)
+ version: 3.13.11(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.103.0))(cypress@15.5.0)(webpack@5.103.0)
'@cypress/grep':
specifier: ^5.0.0
- version: 5.0.0(@babel/core@7.28.4)(cypress@15.5.0)
+ version: 5.0.1(@babel/core@7.28.5)(cypress@15.5.0)
'@eslint/js':
specifier: 9.26.0
version: 9.26.0
@@ -284,7 +284,7 @@ importers:
version: 1.0.2(nyc@17.1.0)
'@mswjs/data':
specifier: 0.16.2
- version: 0.16.2(@types/node@24.9.1)(typescript@5.7.3)
+ version: 0.16.2(@types/node@24.10.2)(typescript@5.7.3)
'@percy/cli':
specifier: 1.28.5
version: 1.28.5(typescript@5.7.3)
@@ -323,7 +323,7 @@ importers:
version: 9.0.8
'@vitejs/plugin-react':
specifier: 4.7.0
- version: 4.7.0(vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1))
+ version: 4.7.0(vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2))
'@vitest/coverage-istanbul':
specifier: 3.2.4
version: 3.2.4(vitest@3.2.4)
@@ -398,13 +398,13 @@ importers:
version: 7.1.4(mocha@11.7.5)
mochawesome-merge:
specifier: ^5.0.0
- version: 5.0.0
+ version: 5.1.0
mochawesome-report-generator:
specifier: ^6.3.2
version: 6.3.2
msw:
specifier: 2.7.0
- version: 2.7.0(@types/node@24.9.1)(typescript@5.7.3)
+ version: 2.7.0(@types/node@24.10.2)(typescript@5.7.3)
openapi-typescript-codegen:
specifier: 0.25.0
version: 0.25.0
@@ -431,13 +431,13 @@ importers:
version: 8.32.1(eslint@9.26.0)(typescript@5.7.3)
vite:
specifier: 7.1.11
- version: 7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ version: 7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
vite-plugin-istanbul:
specifier: 7.2.0
- version: 7.2.0(vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1))
+ version: 7.2.0(vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2))
vitest:
specifier: 3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.2)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
packages:
@@ -456,9 +456,6 @@ packages:
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
- '@antfu/utils@9.3.0':
- resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==}
-
'@apidevtools/json-schema-ref-parser@9.0.9':
resolution: {integrity: sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==}
@@ -472,16 +469,16 @@ packages:
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.28.4':
- resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
+ '@babel/compat-data@7.28.5':
+ resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.28.4':
- resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
+ '@babel/core@7.28.5':
+ resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.28.3':
- resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
+ '@babel/generator@7.28.5':
+ resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-annotate-as-pure@7.27.3':
@@ -492,14 +489,14 @@ packages:
resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.28.3':
- resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==}
+ '@babel/helper-create-class-features-plugin@7.28.5':
+ resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-create-regexp-features-plugin@7.27.1':
- resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==}
+ '@babel/helper-create-regexp-features-plugin@7.28.5':
+ resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -513,8 +510,8 @@ packages:
resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-member-expression-to-functions@7.27.1':
- resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
+ '@babel/helper-member-expression-to-functions@7.28.5':
+ resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.27.1':
@@ -555,8 +552,8 @@ packages:
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.27.1':
- resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ '@babel/helper-validator-identifier@7.28.5':
+ resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.27.1':
@@ -571,13 +568,13 @@ packages:
resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.28.4':
- resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
+ '@babel/parser@7.28.5':
+ resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1':
- resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==}
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5':
+ resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -660,8 +657,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoping@7.28.4':
- resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==}
+ '@babel/plugin-transform-block-scoping@7.28.5':
+ resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -690,8 +687,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-destructuring@7.28.0':
- resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==}
+ '@babel/plugin-transform-destructuring@7.28.5':
+ resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -726,8 +723,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-exponentiation-operator@7.27.1':
- resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==}
+ '@babel/plugin-transform-exponentiation-operator@7.28.5':
+ resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -762,8 +759,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-logical-assignment-operators@7.27.1':
- resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==}
+ '@babel/plugin-transform-logical-assignment-operators@7.28.5':
+ resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -786,8 +783,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-systemjs@7.27.1':
- resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==}
+ '@babel/plugin-transform-modules-systemjs@7.28.5':
+ resolution: {integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -840,8 +837,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-chaining@7.27.1':
- resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+ '@babel/plugin-transform-optional-chaining@7.28.5':
+ resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -954,8 +951,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/preset-env@7.28.3':
- resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==}
+ '@babel/preset-env@7.28.5':
+ resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -973,12 +970,12 @@ packages:
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.28.4':
- resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
+ '@babel/traverse@7.28.5':
+ resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.28.4':
- resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
+ '@babel/types@7.28.5':
+ resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@1.0.2':
@@ -997,14 +994,11 @@ packages:
'@bundled-es-modules/tough-cookie@0.1.6':
resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==}
- '@cacheable/memoize@2.0.3':
- resolution: {integrity: sha512-hl9wfQgpiydhQEIv7fkjEzTGE+tcosCXLKFDO707wYJ/78FVOlowb36djex5GdbSyeHnG62pomYLMuV/OT8Pbw==}
-
- '@cacheable/memory@2.0.3':
- resolution: {integrity: sha512-R3UKy/CKOyb1LZG/VRCTMcpiMDyLH7SH3JrraRdK6kf3GweWCOU3sgvE13W3TiDRbxnDKylzKJvhUAvWl9LQOA==}
+ '@cacheable/memory@2.0.6':
+ resolution: {integrity: sha512-7e8SScMocHxcAb8YhtkbMhGG+EKLRIficb1F5sjvhSYsWTZGxvg4KIDp8kgxnV2PUJ3ddPe6J9QESjKvBWRDkg==}
- '@cacheable/utils@2.1.0':
- resolution: {integrity: sha512-ZdxfOiaarMqMj+H7qwlt5EBKWaeGihSYVHdQv5lUsbn8MJJOTW82OIwirQ39U5tMZkNvy3bQE+ryzC+xTAb9/g==}
+ '@cacheable/utils@2.3.2':
+ resolution: {integrity: sha512-8kGE2P+HjfY8FglaOiW+y8qxcaQAfAhVML+i66XJR3YX5FtyDqn6Txctr3K2FrbxLKixRRYYBWMbuGciOhYNDg==}
'@chakra-ui/accordion@2.3.1':
resolution: {integrity: sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==}
@@ -1570,8 +1564,8 @@ packages:
cypress: '*'
webpack: ^4 || ^5
- '@cypress/grep@5.0.0':
- resolution: {integrity: sha512-VVKGfZdIrKZef7Q/lDOE7nWoVyoctbNp34moMDtPhQFPbo9bcV2WAeaHZijMrE/Hyl9gvorFL/BXsvwMuTxqJw==}
+ '@cypress/grep@5.0.1':
+ resolution: {integrity: sha512-4oyOiggHnjzIPadH7EQ9C96VDTpk0YPrvB3Jz6oER3VofHkJq4YJ9lIUT7w9gUdQ06nUfSRJ4iva5ex2y4gcEw==}
peerDependencies:
cypress: '>=10'
@@ -1590,8 +1584,8 @@ packages:
'@cypress/xvfb@1.2.4':
resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==}
- '@dagrejs/dagre@1.1.5':
- resolution: {integrity: sha512-Ghgrh08s12DCL5SeiR6AoyE80mQELTWhJBRmXfFoqDiFkR458vPEdgTbbjA0T+9ETNxUblnD0QW55tfdvi5pjQ==}
+ '@dagrejs/dagre@1.1.8':
+ resolution: {integrity: sha512-5SEDlndt4W/LaVzPYJW+bSmSEZc9EzTf8rJ20WCKvjS5EAZAN0b+x0Yww7VMT4R3Wootkg+X9bUfUxazYw6Blw==}
'@dagrejs/graphlib@2.2.4':
resolution: {integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==}
@@ -1663,8 +1657,8 @@ packages:
'@emotion/weak-memoize@0.4.0':
resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==}
- '@esbuild/aix-ppc64@0.25.11':
- resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
+ '@esbuild/aix-ppc64@0.25.12':
+ resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
@@ -1675,8 +1669,8 @@ packages:
cpu: [arm64]
os: [android]
- '@esbuild/android-arm64@0.25.11':
- resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
+ '@esbuild/android-arm64@0.25.12':
+ resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
@@ -1687,8 +1681,8 @@ packages:
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.25.11':
- resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
+ '@esbuild/android-arm@0.25.12':
+ resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
@@ -1699,8 +1693,8 @@ packages:
cpu: [x64]
os: [android]
- '@esbuild/android-x64@0.25.11':
- resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
+ '@esbuild/android-x64@0.25.12':
+ resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
@@ -1711,8 +1705,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.25.11':
- resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
+ '@esbuild/darwin-arm64@0.25.12':
+ resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
@@ -1723,8 +1717,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.11':
- resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
+ '@esbuild/darwin-x64@0.25.12':
+ resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
@@ -1735,8 +1729,8 @@ packages:
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-arm64@0.25.11':
- resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
+ '@esbuild/freebsd-arm64@0.25.12':
+ resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
@@ -1747,8 +1741,8 @@ packages:
cpu: [x64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.11':
- resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
+ '@esbuild/freebsd-x64@0.25.12':
+ resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
@@ -1759,8 +1753,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.25.11':
- resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
+ '@esbuild/linux-arm64@0.25.12':
+ resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
@@ -1771,8 +1765,8 @@ packages:
cpu: [arm]
os: [linux]
- '@esbuild/linux-arm@0.25.11':
- resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
+ '@esbuild/linux-arm@0.25.12':
+ resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
@@ -1783,8 +1777,8 @@ packages:
cpu: [ia32]
os: [linux]
- '@esbuild/linux-ia32@0.25.11':
- resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
+ '@esbuild/linux-ia32@0.25.12':
+ resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
@@ -1795,8 +1789,8 @@ packages:
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.25.11':
- resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
+ '@esbuild/linux-loong64@0.25.12':
+ resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
@@ -1807,8 +1801,8 @@ packages:
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-mips64el@0.25.11':
- resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
+ '@esbuild/linux-mips64el@0.25.12':
+ resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
@@ -1819,8 +1813,8 @@ packages:
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.25.11':
- resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
+ '@esbuild/linux-ppc64@0.25.12':
+ resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
@@ -1831,8 +1825,8 @@ packages:
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.11':
- resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
+ '@esbuild/linux-riscv64@0.25.12':
+ resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
@@ -1843,8 +1837,8 @@ packages:
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.25.11':
- resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
+ '@esbuild/linux-s390x@0.25.12':
+ resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
@@ -1855,14 +1849,14 @@ packages:
cpu: [x64]
os: [linux]
- '@esbuild/linux-x64@0.25.11':
- resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
+ '@esbuild/linux-x64@0.25.12':
+ resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.11':
- resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
+ '@esbuild/netbsd-arm64@0.25.12':
+ resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
@@ -1873,14 +1867,14 @@ packages:
cpu: [x64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.11':
- resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
+ '@esbuild/netbsd-x64@0.25.12':
+ resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.11':
- resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
+ '@esbuild/openbsd-arm64@0.25.12':
+ resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
@@ -1891,14 +1885,14 @@ packages:
cpu: [x64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.11':
- resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
+ '@esbuild/openbsd-x64@0.25.12':
+ resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openharmony-arm64@0.25.11':
- resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
+ '@esbuild/openharmony-arm64@0.25.12':
+ resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
@@ -1909,8 +1903,8 @@ packages:
cpu: [x64]
os: [sunos]
- '@esbuild/sunos-x64@0.25.11':
- resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
+ '@esbuild/sunos-x64@0.25.12':
+ resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
@@ -1921,8 +1915,8 @@ packages:
cpu: [arm64]
os: [win32]
- '@esbuild/win32-arm64@0.25.11':
- resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
+ '@esbuild/win32-arm64@0.25.12':
+ resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
@@ -1933,8 +1927,8 @@ packages:
cpu: [ia32]
os: [win32]
- '@esbuild/win32-ia32@0.25.11':
- resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
+ '@esbuild/win32-ia32@0.25.12':
+ resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
@@ -1945,8 +1939,8 @@ packages:
cpu: [x64]
os: [win32]
- '@esbuild/win32-x64@0.25.11':
- resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
+ '@esbuild/win32-x64@0.25.12':
+ resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
@@ -1977,8 +1971,8 @@ packages:
resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/eslintrc@3.3.1':
- resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
+ '@eslint/eslintrc@3.3.3':
+ resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.26.0':
@@ -2024,15 +2018,15 @@ packages:
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- '@iconify/utils@3.0.2':
- resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==}
+ '@iconify/utils@3.1.0':
+ resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==}
- '@inquirer/ansi@1.0.1':
- resolution: {integrity: sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw==}
+ '@inquirer/ansi@1.0.2':
+ resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==}
engines: {node: '>=18'}
- '@inquirer/confirm@5.1.19':
- resolution: {integrity: sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ==}
+ '@inquirer/confirm@5.1.21':
+ resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
@@ -2040,8 +2034,8 @@ packages:
'@types/node':
optional: true
- '@inquirer/core@10.3.0':
- resolution: {integrity: sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA==}
+ '@inquirer/core@10.3.2':
+ resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
@@ -2049,12 +2043,12 @@ packages:
'@types/node':
optional: true
- '@inquirer/figures@1.0.14':
- resolution: {integrity: sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==}
+ '@inquirer/figures@1.0.15':
+ resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==}
engines: {node: '>=18'}
- '@inquirer/type@3.0.9':
- resolution: {integrity: sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w==}
+ '@inquirer/type@3.0.10':
+ resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
@@ -2123,11 +2117,11 @@ packages:
engines: {node: '>=16'}
hasBin: true
- '@keyv/bigmap@1.1.0':
- resolution: {integrity: sha512-MX7XIUNwVRK+hjZcAbNJ0Z8DREo+Weu9vinBOjGU1thEi9F6vPhICzBbk4CCf3eEefKRz7n6TfZXwUFZTSgj8Q==}
+ '@keyv/bigmap@1.3.0':
+ resolution: {integrity: sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==}
engines: {node: '>= 18'}
peerDependencies:
- keyv: ^5.5.3
+ keyv: ^5.5.4
'@keyv/serialize@1.1.1':
resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==}
@@ -2135,12 +2129,18 @@ packages:
'@mermaid-js/parser@0.6.3':
resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==}
- '@modelcontextprotocol/sdk@1.20.1':
- resolution: {integrity: sha512-j/P+yuxXfgxb+mW7OEoRCM3G47zCTDqUPivJo/VzpjbG8I9csTXtOprCf5FfOfHK4whOJny0aHuBEON+kS7CCA==}
+ '@modelcontextprotocol/sdk@1.24.3':
+ resolution: {integrity: sha512-YgSHW29fuzKKAHTGe9zjNoo+yF8KaQPzDC2W9Pv41E7/57IfY+AMGJ/aDFlgTLcVVELoggKE4syABCE75u3NCw==}
engines: {node: '>=18'}
+ peerDependencies:
+ '@cfworker/json-schema': ^4.1.1
+ zod: ^3.25 || ^4.0
+ peerDependenciesMeta:
+ '@cfworker/json-schema':
+ optional: true
- '@monaco-editor/loader@1.6.1':
- resolution: {integrity: sha512-w3tEnj9HYEC73wtjdpR089AqkUPskFRcdkxsiSFt3SoUc3OHpmu+leP94CXBm4mHfefmhsdfI0ZQu6qJ0wgtPg==}
+ '@monaco-editor/loader@1.7.0':
+ resolution: {integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==}
'@monaco-editor/react@4.7.0':
resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==}
@@ -2439,113 +2439,113 @@ packages:
'@rolldown/pluginutils@1.0.0-beta.27':
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
- '@rollup/rollup-android-arm-eabi@4.52.5':
- resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
+ '@rollup/rollup-android-arm-eabi@4.53.3':
+ resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.52.5':
- resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
+ '@rollup/rollup-android-arm64@4.53.3':
+ resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.52.5':
- resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
+ '@rollup/rollup-darwin-arm64@4.53.3':
+ resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.52.5':
- resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
+ '@rollup/rollup-darwin-x64@4.53.3':
+ resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.52.5':
- resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
+ '@rollup/rollup-freebsd-arm64@4.53.3':
+ resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.52.5':
- resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
+ '@rollup/rollup-freebsd-x64@4.53.3':
+ resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.52.5':
- resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.53.3':
+ resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.52.5':
- resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
+ '@rollup/rollup-linux-arm-musleabihf@4.53.3':
+ resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.52.5':
- resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
+ '@rollup/rollup-linux-arm64-gnu@4.53.3':
+ resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.52.5':
- resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
+ '@rollup/rollup-linux-arm64-musl@4.53.3':
+ resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.52.5':
- resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==}
+ '@rollup/rollup-linux-loong64-gnu@4.53.3':
+ resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-ppc64-gnu@4.52.5':
- resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
+ '@rollup/rollup-linux-ppc64-gnu@4.53.3':
+ resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.52.5':
- resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
+ '@rollup/rollup-linux-riscv64-gnu@4.53.3':
+ resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.52.5':
- resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
+ '@rollup/rollup-linux-riscv64-musl@4.53.3':
+ resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.52.5':
- resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
+ '@rollup/rollup-linux-s390x-gnu@4.53.3':
+ resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.52.5':
- resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
+ '@rollup/rollup-linux-x64-gnu@4.53.3':
+ resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.52.5':
- resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
+ '@rollup/rollup-linux-x64-musl@4.53.3':
+ resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-openharmony-arm64@4.52.5':
- resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
+ '@rollup/rollup-openharmony-arm64@4.53.3':
+ resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.52.5':
- resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
+ '@rollup/rollup-win32-arm64-msvc@4.53.3':
+ resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.52.5':
- resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
+ '@rollup/rollup-win32-ia32-msvc@4.53.3':
+ resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.52.5':
- resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==}
+ '@rollup/rollup-win32-x64-gnu@4.53.3':
+ resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==}
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.52.5':
- resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
+ '@rollup/rollup-win32-x64-msvc@4.53.3':
+ resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==}
cpu: [x64]
os: [win32]
@@ -2577,55 +2577,55 @@ packages:
resolution: {integrity: sha512-DeoUl0WffcqZZRl5Wy9aHvX4WfZbbWt0QbJ7NJrcEViq+dRAI2FQTYECFLwdZi5Gtb3oyqZICO+P7k8wDnzsjQ==}
engines: {node: '>= 14'}
- '@sentry/cli-darwin@2.57.0':
- resolution: {integrity: sha512-v1wYQU3BcCO+Z3OVxxO+EnaW4oQhuOza6CXeYZ0z5ftza9r0QQBLz3bcZKTVta86xraNm0z8GDlREwinyddOxQ==}
+ '@sentry/cli-darwin@2.58.2':
+ resolution: {integrity: sha512-MArsb3zLhA2/cbd4rTm09SmTpnEuZCoZOpuZYkrpDw1qzBVJmRFA1W1hGAQ9puzBIk/ubY3EUhhzuU3zN2uD6w==}
engines: {node: '>=10'}
os: [darwin]
- '@sentry/cli-linux-arm64@2.57.0':
- resolution: {integrity: sha512-Kh1jTsMV5Fy/RvB381N/woXe1qclRMqsG6kM3Gq6m6afEF/+k3PyQdNW3HXAola6d63EptokLtxPG2xjWQ+w9Q==}
+ '@sentry/cli-linux-arm64@2.58.2':
+ resolution: {integrity: sha512-ay3OeObnbbPrt45cjeUyQjsx5ain1laj1tRszWj37NkKu55NZSp4QCg1gGBZ0gBGhckI9nInEsmKtix00alw2g==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux, freebsd, android]
- '@sentry/cli-linux-arm@2.57.0':
- resolution: {integrity: sha512-uNHB8xyygqfMd1/6tFzl9NUkuVefg7jdZtM/vVCQVaF/rJLWZ++Wms+LLhYyKXKN8yd7J9wy7kTEl4Qu4jWbGQ==}
+ '@sentry/cli-linux-arm@2.58.2':
+ resolution: {integrity: sha512-HU9lTCzcHqCz/7Mt5n+cv+nFuJdc1hGD2h35Uo92GgxX3/IujNvOUfF+nMX9j6BXH6hUt73R5c0Ycq9+a3Parg==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux, freebsd, android]
- '@sentry/cli-linux-i686@2.57.0':
- resolution: {integrity: sha512-EYXghoK/tKd0zqz+KD/ewXXE3u1HLCwG89krweveytBy/qw7M5z58eFvw+iGb1Vnbl1f/fRD0G4E0AbEsPfmpg==}
+ '@sentry/cli-linux-i686@2.58.2':
+ resolution: {integrity: sha512-CN9p0nfDFsAT1tTGBbzOUGkIllwS3hygOUyTK7LIm9z+UHw5uNgNVqdM/3Vg+02ymjkjISNB3/+mqEM5osGXdA==}
engines: {node: '>=10'}
cpu: [x86, ia32]
os: [linux, freebsd, android]
- '@sentry/cli-linux-x64@2.57.0':
- resolution: {integrity: sha512-CyZrP/ssHmAPLSzfd4ydy7icDnwmDD6o3QjhkWwVFmCd+9slSBMQxpIqpamZmrWE6X4R+xBRbSUjmdoJoZ5yMw==}
+ '@sentry/cli-linux-x64@2.58.2':
+ resolution: {integrity: sha512-oX/LLfvWaJO50oBVOn4ZvG2SDWPq0MN8SV9eg5tt2nviq+Ryltfr7Rtoo+HfV+eyOlx1/ZXhq9Wm7OT3cQuz+A==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux, freebsd, android]
- '@sentry/cli-win32-arm64@2.57.0':
- resolution: {integrity: sha512-wji/GGE4Lh5I/dNCsuVbg6fRvttvZRG6db1yPW1BSvQRh8DdnVy1CVp+HMqSq0SRy/S4z60j2u+m4yXMoCL+5g==}
+ '@sentry/cli-win32-arm64@2.58.2':
+ resolution: {integrity: sha512-+cl3x2HPVMpoSVGVM1IDWlAEREZrrVQj4xBb0TRKII7g3hUxRsAIcsrr7+tSkie++0FuH4go/b5fGAv51OEF3w==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- '@sentry/cli-win32-i686@2.57.0':
- resolution: {integrity: sha512-hWvzyD7bTPh3b55qvJ1Okg3Wbl0Km8xcL6KvS7gfBl6uss+I6RldmQTP0gJKdHSdf/QlJN1FK0b7bLnCB3wHsg==}
+ '@sentry/cli-win32-i686@2.58.2':
+ resolution: {integrity: sha512-omFVr0FhzJ8oTJSg1Kf+gjLgzpYklY0XPfLxZ5iiMiYUKwF5uo1RJRdkUOiEAv0IqpUKnmKcmVCLaDxsWclB7Q==}
engines: {node: '>=10'}
cpu: [x86, ia32]
os: [win32]
- '@sentry/cli-win32-x64@2.57.0':
- resolution: {integrity: sha512-QWYV/Y0sbpDSTyA4XQBOTaid4a6H2Iwa1Z8UI+qNxFlk0ADSEgIqo2NrRHDU8iRnghTkecQNX1NTt/7mXN3f/A==}
+ '@sentry/cli-win32-x64@2.58.2':
+ resolution: {integrity: sha512-2NAFs9UxVbRztQbgJSP5i8TB9eJQ7xraciwj/93djrSMHSEbJ0vC47TME0iifgvhlHMs5vqETOKJtfbbpQAQFA==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@sentry/cli@2.57.0':
- resolution: {integrity: sha512-oC4HPrVIX06GvUTgK0i+WbNgIA9Zl5YEcwf9N4eWFJJmjonr2j4SML9Hn2yNENbUWDgwepy4MLod3P8rM4bk/w==}
+ '@sentry/cli@2.58.2':
+ resolution: {integrity: sha512-U4u62V4vaTWF+o40Mih8aOpQKqKUbZQt9A3LorIJwaE3tO3XFLRI70eWtW2se1Qmy0RZ74zB14nYcFNFl2t4Rw==}
engines: {node: '>= 10'}
hasBin: true
@@ -2707,13 +2707,13 @@ packages:
'@types/react-dom':
optional: true
- '@tiptap/core@2.26.3':
- resolution: {integrity: sha512-TaOJzu2v5ufsOx+yu94NqXE504zmupVdFCxH1g3hk5fzZ3gT57Lh9R/27OjwM4e6o+Z3DXDl8yfFMHIcR3zUkg==}
+ '@tiptap/core@2.27.1':
+ resolution: {integrity: sha512-nkerkl8syHj44ZzAB7oA2GPmmZINKBKCa79FuNvmGJrJ4qyZwlkDzszud23YteFZEytbc87kVd/fP76ROS6sLg==}
peerDependencies:
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-bubble-menu@2.26.3':
- resolution: {integrity: sha512-vliC5bv/md4qkguqqL8w7LW8jnXBD1FLdSMDavHRVwdRaRnEfLRAIY7Oxtc1Voy3+762tfn912TuwDlCOPsNSQ==}
+ '@tiptap/extension-bubble-menu@2.27.1':
+ resolution: {integrity: sha512-ki1R27VsSvY2tT9Q2DIlcATwLOoEjf5DsN+5sExarQ8S/ZxT/tvIjRxB8Dx7lb2a818W5f/NER26YchGtmHfpg==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
@@ -2723,8 +2723,8 @@ packages:
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-floating-menu@2.26.3':
- resolution: {integrity: sha512-i2dsIMa0L6vjCPnTiXjPZXZqUu3sIIIAI+E1T4p0FsGYjjPTmN+AgkJqeO3bbe5XHmWcWKtgQevNCMF0kmU5rQ==}
+ '@tiptap/extension-floating-menu@2.27.1':
+ resolution: {integrity: sha512-nUk/8DbiXO69l6FDwkWso94BTf52IBoWALo+YGWT6o+FO6cI9LbUGghEX2CdmQYXCvSvwvISF2jXeLQWNZvPZQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
@@ -2943,8 +2943,8 @@ packages:
'@types/lodash.mergewith@4.6.9':
resolution: {integrity: sha512-fgkoCAOF47K7sxrQ7Mlud2TH023itugZs2bUg8h/KzT+BnZNrR2jAOmaokbLunHNnobXVWOezAeNn/lZqwxkcw==}
- '@types/lodash@4.17.20':
- resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
+ '@types/lodash@4.17.21':
+ resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==}
'@types/luxon@3.3.0':
resolution: {integrity: sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==}
@@ -2967,8 +2967,8 @@ packages:
'@types/node@18.19.130':
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
- '@types/node@24.9.1':
- resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==}
+ '@types/node@24.10.2':
+ resolution: {integrity: sha512-WOhQTZ4G8xZ1tjJTvKOpyEVSGgOTvJAfDK3FNFgELyaTpzhdgHVHeqW8V+UJvzF5BT+/B54T/1S2K6gd9c7bbA==}
'@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
@@ -2990,8 +2990,8 @@ packages:
'@types/react@18.0.28':
resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==}
- '@types/readable-stream@4.0.21':
- resolution: {integrity: sha512-19eKVv9tugr03IgfXlA9UVUVRbW6IuqRO5B92Dl4a6pT7K8uaGrNS0GkxiZD0BOk6PLuXl5FhWl//eX/pzYdTQ==}
+ '@types/readable-stream@4.0.22':
+ resolution: {integrity: sha512-/FFhJpfCLAPwAcN3mFycNUa77ddnr8jTgF5VmSNetaemWB2cIlfCA9t0YTM3JAT0wOcv8D4tjPo7pkDhK3EJIg==}
'@types/scheduler@0.26.0':
resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==}
@@ -2999,8 +2999,8 @@ packages:
'@types/sinon@17.0.4':
resolution: {integrity: sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==}
- '@types/sinonjs__fake-timers@15.0.0':
- resolution: {integrity: sha512-lqKG4X0fO3aJF7Bz590vuCkFt/inbDyL7FXaVjPEYO+LogMZ2fwSDUiP7bJvdYHaCgCQGNOPxquzSrrnVH3fGw==}
+ '@types/sinonjs__fake-timers@15.0.1':
+ resolution: {integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==}
'@types/sinonjs__fake-timers@8.1.1':
resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==}
@@ -3050,8 +3050,8 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/project-service@8.46.2':
- resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==}
+ '@typescript-eslint/project-service@8.49.0':
+ resolution: {integrity: sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
@@ -3060,12 +3060,12 @@ packages:
resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.46.2':
- resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==}
+ '@typescript-eslint/scope-manager@8.49.0':
+ resolution: {integrity: sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.46.2':
- resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==}
+ '@typescript-eslint/tsconfig-utils@8.49.0':
+ resolution: {integrity: sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
@@ -3081,8 +3081,8 @@ packages:
resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.46.2':
- resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==}
+ '@typescript-eslint/types@8.49.0':
+ resolution: {integrity: sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.32.1':
@@ -3091,8 +3091,8 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/typescript-estree@8.46.2':
- resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==}
+ '@typescript-eslint/typescript-estree@8.49.0':
+ resolution: {integrity: sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
@@ -3104,8 +3104,8 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.46.2':
- resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==}
+ '@typescript-eslint/utils@8.49.0':
+ resolution: {integrity: sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -3115,8 +3115,8 @@ packages:
resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/visitor-keys@8.46.2':
- resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==}
+ '@typescript-eslint/visitor-keys@8.49.0':
+ resolution: {integrity: sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@uidotdev/usehooks@2.4.1':
@@ -3301,6 +3301,14 @@ packages:
ajv:
optional: true
+ ajv-formats@3.0.1:
+ resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
ajv-keywords@5.1.0:
resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
peerDependencies:
@@ -3418,8 +3426,8 @@ packages:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
- ast-v8-to-istanbul@0.3.7:
- resolution: {integrity: sha512-kr1Hy6YRZBkGQSb6puP+D6FQ59Cx4m0siYhAxygMCAgadiWQ6oxAxQXHOMvJx67SJ63jRoVIIg5eXzUbbct1ww==}
+ ast-v8-to-istanbul@0.3.8:
+ resolution: {integrity: sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==}
astral-regex@2.0.0:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
@@ -3492,8 +3500,8 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- baseline-browser-mapping@2.8.19:
- resolution: {integrity: sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==}
+ baseline-browser-mapping@2.9.5:
+ resolution: {integrity: sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA==}
hasBin: true
bcrypt-pbkdf@1.0.2:
@@ -3506,8 +3514,8 @@ packages:
bind-event-listener@3.0.0:
resolution: {integrity: sha512-PJvH288AWQhKs2v9zyfYdPzlPqf5bXbGMmhmUIY9x4dAUGIWgomO771oBQNwJnMQSnUIXhKu6sgzpBRXTlvb8Q==}
- bl@6.1.4:
- resolution: {integrity: sha512-ZV/9asSuknOExbM/zPPA8z00lc1ihPKWaStHkkQrxHNeYx+yY+TmF+v80dpv2G0mv3HVXBu7ryoAsxbFFhf4eg==}
+ bl@6.1.6:
+ resolution: {integrity: sha512-jLsPgN/YSvPUg9UX0Kd73CXpm2Psg9FxMeCSXnk3WBO3CMT10JMwijubhGfHCnFu6TPn1ei3b975dxv7K2pWVg==}
blob-util@2.0.2:
resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
@@ -3518,8 +3526,8 @@ packages:
bluebird@3.7.2:
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
- body-parser@2.2.0:
- resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==}
+ body-parser@2.2.1:
+ resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==}
engines: {node: '>=18'}
brace-expansion@1.1.12:
@@ -3535,8 +3543,8 @@ packages:
browser-stdout@1.3.1:
resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
- browserslist@4.27.0:
- resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==}
+ browserslist@4.28.1:
+ resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -3564,8 +3572,8 @@ packages:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
- cacheable@2.1.1:
- resolution: {integrity: sha512-LmF4AXiSNdiRbI2UjH8pAp9NIXxeQsTotpEaegPiDcnN0YPygDJDV3l/Urc0mL72JWdATEorKqIHEx55nDlONg==}
+ cacheable@2.3.0:
+ resolution: {integrity: sha512-HHiAvOBmlcR2f3SQ7kdlYD8+AUJG+wlFZ/Ze8tl1Vzvz0MdOh8IYA/EFU4ve8t1/sZ0j4MGi7ST5MoTwHessQA==}
cachedir@2.4.0:
resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==}
@@ -3602,8 +3610,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- caniuse-lite@1.0.30001751:
- resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==}
+ caniuse-lite@1.0.30001760:
+ resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==}
caseless@0.12.0:
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
@@ -3819,16 +3827,13 @@ packages:
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
- confbox@0.2.2:
- resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
-
content-disposition@0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
- content-disposition@1.0.0:
- resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==}
- engines: {node: '>= 0.6'}
+ content-disposition@1.0.1:
+ resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==}
+ engines: {node: '>=18'}
content-type@1.0.5:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
@@ -3855,8 +3860,8 @@ packages:
resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==}
hasBin: true
- core-js-compat@3.46.0:
- resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==}
+ core-js-compat@3.47.0:
+ resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==}
core-util-is@1.0.2:
resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
@@ -4186,8 +4191,8 @@ packages:
dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
- dayjs@1.11.18:
- resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==}
+ dayjs@1.11.19:
+ resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
debug@3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
@@ -4304,11 +4309,11 @@ packages:
dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
- dompurify@3.1.7:
- resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==}
+ dompurify@3.2.7:
+ resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==}
- dompurify@3.3.0:
- resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==}
+ dompurify@3.3.1:
+ resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==}
dotenv@16.6.1:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
@@ -4327,8 +4332,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- electron-to-chromium@1.5.239:
- resolution: {integrity: sha512-1y5w0Zsq39MSPmEjHjbizvhYoTaulVtivpxkp5q5kaPmQtsK6/2nvAzGRxNMS9DoYySp9PkW0MAQDwU1m764mg==}
+ electron-to-chromium@1.5.267:
+ resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==}
elkjs@0.9.1:
resolution: {integrity: sha512-JWKDyqAdltuUcyxaECtYG6H4sqysXSLeoXuGUBfRNESMTkj+w+qdb0jya8Z/WI0jVd03WQtCGhS6FOFtlhD5FQ==}
@@ -4412,8 +4417,8 @@ packages:
engines: {node: '>=12'}
hasBin: true
- esbuild@0.25.11:
- resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==}
+ esbuild@0.25.12:
+ resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
engines: {node: '>=18'}
hasBin: true
@@ -4557,8 +4562,8 @@ packages:
resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
engines: {node: '>=4'}
- expect-type@1.2.2:
- resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==}
+ expect-type@1.3.0:
+ resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
engines: {node: '>=12.0.0'}
express-rate-limit@7.5.1:
@@ -4567,13 +4572,10 @@ packages:
peerDependencies:
express: '>= 4.11'
- express@5.1.0:
- resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==}
+ express@5.2.1:
+ resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==}
engines: {node: '>= 18'}
- exsolve@1.0.7:
- resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
-
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -4589,8 +4591,8 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- fast-equals@5.3.2:
- resolution: {integrity: sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==}
+ fast-equals@5.3.3:
+ resolution: {integrity: sha512-/boTcHZeIAQ2r/tL11voclBHDeP9WPxLt+tyAbVSyyXuUFyh0Tne7gJZTqGbxnvj79TjLdCXLOY7UIPhyG5MTw==}
engines: {node: '>=6.0.0'}
fast-glob@3.3.3:
@@ -4651,9 +4653,9 @@ packages:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
- finalhandler@2.1.0:
- resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==}
- engines: {node: '>= 0.8'}
+ finalhandler@2.1.1:
+ resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
+ engines: {node: '>= 18.0.0'}
find-cache-dir@3.3.2:
resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
@@ -4686,8 +4688,8 @@ packages:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
- flat-cache@6.1.18:
- resolution: {integrity: sha512-JUPnFgHMuAVmLmoH9/zoZ6RHOt5n9NlUw/sDXsTbROJ2SFoS2DS4s+swAV6UTeTbGH/CAsZIE6M8TaG/3jVxgQ==}
+ flat-cache@6.1.19:
+ resolution: {integrity: sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A==}
flat@5.0.2:
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
@@ -4849,14 +4851,13 @@ packages:
glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
- glob@10.4.5:
- resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ glob@10.5.0:
+ resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
hasBin: true
- glob@11.0.3:
- resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==}
+ glob@13.0.0:
+ resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==}
engines: {node: 20 || >=22}
- hasBin: true
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
@@ -4911,8 +4912,8 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- graphql@16.11.0:
- resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==}
+ graphql@16.12.0:
+ resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
hachure-fill@0.5.2:
@@ -4954,6 +4955,10 @@ packages:
resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
engines: {node: '>=8'}
+ hashery@1.3.0:
+ resolution: {integrity: sha512-fWltioiy5zsSAs9ouEnvhsVJeAXRybGCNNv0lvzpzNOSDbULXRy7ivFWwCCv4I5Am6kSo75hmbsCduOoc2/K4w==}
+ engines: {node: '>=20'}
+
hasown@2.0.2:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
@@ -4971,8 +4976,8 @@ packages:
hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
- hookified@1.12.2:
- resolution: {integrity: sha512-aokUX1VdTpI0DUsndvW+OiwmBpKCu/NgRsSSkuSY0zq8PY6Q6a+lmOfAFDXAAOtBqJELvcWY9L1EVtzjbQcMdg==}
+ hookified@1.14.0:
+ resolution: {integrity: sha512-pi1ynXIMFx/uIIwpWJ/5CEtOHLGtnUB0WhGeeYT+fKcQ+WCQbm3/rrkAXnpfph++PgepNqPdTC2WTj8A6k6zoQ==}
html-encoding-sniffer@4.0.0:
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
@@ -4988,8 +4993,8 @@ packages:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
- http-errors@2.0.0:
- resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ http-errors@2.0.1:
+ resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
engines: {node: '>= 0.8'}
http-proxy-agent@7.0.2:
@@ -5311,14 +5316,13 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- jackspeak@4.1.1:
- resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
- engines: {node: 20 || >=22}
-
jest-worker@27.5.1:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
+ jose@6.1.3:
+ resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==}
+
js-sdsl@4.3.0:
resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
@@ -5328,14 +5332,18 @@ packages:
js-tokens@9.0.1:
resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
- js-yaml@3.14.1:
- resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ js-yaml@3.14.2:
+ resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
hasBin: true
js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
jsbn@0.1.1:
resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
@@ -5416,15 +5424,15 @@ packages:
jwt-decode@3.1.2:
resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==}
- katex@0.16.25:
- resolution: {integrity: sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==}
+ katex@0.16.27:
+ resolution: {integrity: sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==}
hasBin: true
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
- keyv@5.5.3:
- resolution: {integrity: sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==}
+ keyv@5.5.5:
+ resolution: {integrity: sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==}
khroma@2.1.0:
resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==}
@@ -5436,11 +5444,8 @@ packages:
known-css-properties@0.35.0:
resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==}
- known-css-properties@0.36.0:
- resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==}
-
- kolorist@1.8.0:
- resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ known-css-properties@0.37.0:
+ resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==}
langbase@1.2.4:
resolution: {integrity: sha512-bbZ3n79mWlQw6Gp+Vg9b/8nVJg4WF28PmZD70mq0X9K+F8lA5wdI5sIyBRkV3Jj1jqv3OXJFu4I5l6gVzRh51g==}
@@ -5484,10 +5489,6 @@ packages:
resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==}
engines: {node: '>=6.11.5'}
- local-pkg@1.1.2:
- resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
- engines: {node: '>=14'}
-
locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
@@ -5565,8 +5566,8 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
- lru-cache@11.2.2:
- resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
+ lru-cache@11.2.4:
+ resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
engines: {node: 20 || >=22}
lru-cache@5.1.1:
@@ -5580,8 +5581,8 @@ packages:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
- magic-string@0.30.19:
- resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
magic-string@0.30.8:
resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==}
@@ -5602,8 +5603,8 @@ packages:
resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
hasBin: true
- markdown-to-jsx@7.7.16:
- resolution: {integrity: sha512-2YLPWjSAdJqVCTIQtP3zPPYfLUWuu74Ms7E9vr/RqLTWzPT5clZWNIlgxyzUKD/Gv+P12TNgpnRgtaNNj/vn8A==}
+ markdown-to-jsx@7.7.17:
+ resolution: {integrity: sha512-7mG/1feQ0TX5I7YyMZVDgCC/y2I3CiEhIRQIhyov9nGBP5eoVrOXXHuL5ZP8GRfxVZKRiXWJgwXkb9It+nQZfQ==}
engines: {node: '>= 10'}
peerDependencies:
react: '>= 0.14.0'
@@ -5616,8 +5617,8 @@ packages:
engines: {node: '>= 18'}
hasBin: true
- marked@16.4.1:
- resolution: {integrity: sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==}
+ marked@16.4.2:
+ resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==}
engines: {node: '>= 20'}
hasBin: true
@@ -5634,8 +5635,8 @@ packages:
mdn-data@2.12.2:
resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
- mdn-data@2.24.0:
- resolution: {integrity: sha512-i97fklrJl03tL1tdRVw0ZfLLvuDsdb6wxL+TrJ+PKkCbLrp2PCu2+OYdCKychIUm19nSM/35S6qz7pJpnXttoA==}
+ mdn-data@2.25.0:
+ resolution: {integrity: sha512-T2LPsjgUE/tgMmRXREVmwsux89DwWfNjiynOeXuLd2mX6jphGQ2YE3Ukz7LQ2VOFKiVZU/Ee1GqzHiipZCjymw==}
mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
@@ -5681,9 +5682,9 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
- mime-types@3.0.1:
- resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
- engines: {node: '>= 0.6'}
+ mime-types@3.0.2:
+ resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
+ engines: {node: '>=18'}
mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
@@ -5742,8 +5743,8 @@ packages:
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
- mochawesome-merge@5.0.0:
- resolution: {integrity: sha512-PuDSJVqiJu++/QlK1EEwRjBJXh00mmWjAemOLnjT7EcBvce4jtSX+WGCZqYDU6igr6ZXP4/eYLcPpW8+6qmBMA==}
+ mochawesome-merge@5.1.0:
+ resolution: {integrity: sha512-vlyvs1e8BZ8dp1shZBiIIZrpHI2fRjIg2PPijIxRciMT7EiNdPR4KHVlZKw+OTVC2mCiFy5QfLtC8XyYUhsGMw==}
engines: {node: '>=22'}
hasBin: true
@@ -5756,8 +5757,8 @@ packages:
peerDependencies:
mocha: '>=7'
- monaco-editor@0.54.0:
- resolution: {integrity: sha512-hx45SEUoLatgWxHKCmlLJH81xBo0uXP4sRkESUpmDQevfi+e7K1VuiSprK6UpQ8u4zOcKNiH0pMvHvlMWA/4cw==}
+ monaco-editor@0.55.1:
+ resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==}
mqtt-match@3.0.0:
resolution: {integrity: sha512-Ggfuj7qGUqqMHADhnv6K9YgkI/kBMayOLY/Jc2MuiY6WqdwJR0l/1h+z8ra6MR7VEQ+ZHmZjnoazNNJj8LW3PQ==}
@@ -5825,8 +5826,8 @@ packages:
resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==}
engines: {node: '>=8'}
- node-releases@2.0.26:
- resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==}
+ node-releases@2.0.27:
+ resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
noms@0.0.0:
resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==}
@@ -5842,8 +5843,8 @@ packages:
number-allocator@1.0.14:
resolution: {integrity: sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==}
- nwsapi@2.2.22:
- resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
+ nwsapi@2.2.23:
+ resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==}
nyc@15.1.0:
resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==}
@@ -5974,8 +5975,8 @@ packages:
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
- package-manager-detector@1.5.0:
- resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==}
+ package-manager-detector@1.6.0:
+ resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
pako@2.1.0:
resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
@@ -6063,8 +6064,8 @@ packages:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
- pkce-challenge@5.0.0:
- resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==}
+ pkce-challenge@5.0.1:
+ resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==}
engines: {node: '>=16.20.0'}
pkg-dir@4.2.0:
@@ -6078,9 +6079,6 @@ packages:
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
- pkg-types@2.3.0:
- resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
-
pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
@@ -6113,8 +6111,8 @@ packages:
peerDependencies:
postcss: ^8.4.29
- postcss-selector-parser@7.1.0:
- resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==}
+ postcss-selector-parser@7.1.1:
+ resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==}
engines: {node: '>=4'}
postcss-value-parser@4.2.0:
@@ -6179,8 +6177,8 @@ packages:
prosemirror-gapcursor@1.4.0:
resolution: {integrity: sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==}
- prosemirror-history@1.4.1:
- resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
+ prosemirror-history@1.5.0:
+ resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==}
prosemirror-inputrules@1.5.1:
resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==}
@@ -6203,11 +6201,11 @@ packages:
prosemirror-schema-list@1.5.1:
resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
- prosemirror-state@1.4.3:
- resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
+ prosemirror-state@1.4.4:
+ resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==}
- prosemirror-tables@1.8.1:
- resolution: {integrity: sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==}
+ prosemirror-tables@1.8.3:
+ resolution: {integrity: sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==}
prosemirror-trailing-node@3.0.0:
resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==}
@@ -6216,11 +6214,11 @@ packages:
prosemirror-state: ^1.4.2
prosemirror-view: ^1.33.8
- prosemirror-transform@1.10.4:
- resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==}
+ prosemirror-transform@1.10.5:
+ resolution: {integrity: sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==}
- prosemirror-view@1.41.3:
- resolution: {integrity: sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==}
+ prosemirror-view@1.41.4:
+ resolution: {integrity: sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==}
protobufjs@7.2.6:
resolution: {integrity: sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==}
@@ -6250,17 +6248,14 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- qified@0.5.1:
- resolution: {integrity: sha512-+BtFN3dCP+IaFA6IYNOu/f/uK1B8xD2QWyOeCse0rjtAebBmkzgd2d1OAXi3ikAzJMIBSdzZDNZ3wZKEUDQs5w==}
+ qified@0.5.3:
+ resolution: {integrity: sha512-kXuQdQTB6oN3KhI6V4acnBSZx8D2I4xzZvn9+wFLLFCoBNQY/sFnCW6c43OL7pOQ2HvGV4lnWIXNmgfp7cTWhQ==}
engines: {node: '>=20'}
qs@6.14.0:
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
engines: {node: '>=0.6'}
- quansync@0.2.11:
- resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
-
querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
@@ -6280,8 +6275,8 @@ packages:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
- raw-body@3.0.1:
- resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==}
+ raw-body@3.0.2:
+ resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==}
engines: {node: '>= 0.10'}
react-accessible-treeview@2.9.1:
@@ -6311,8 +6306,8 @@ packages:
react-fast-compare@3.2.2:
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
- react-focus-lock@2.13.6:
- resolution: {integrity: sha512-ehylFFWyYtBKXjAO9+3v8d0i+cnc1trGS0vlTGhzFW1vbFXVUTmR8s2tt/ZQG8x5hElg6rhENlLG1H3EZK0Llg==}
+ react-focus-lock@2.13.7:
+ resolution: {integrity: sha512-20lpZHEQrXPb+pp1tzd4ULL6DyO5D2KnR0G69tTDdydrmNhU7pdFmbQUYVyHUgp+xN29IuFR0PVuhOmvaZL9Og==}
peerDependencies:
'@types/react': '*'
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
@@ -6373,8 +6368,8 @@ packages:
'@types/react':
optional: true
- react-remove-scroll@2.7.1:
- resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==}
+ react-remove-scroll@2.7.2:
+ resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': '*'
@@ -6564,8 +6559,8 @@ packages:
robust-predicates@3.0.2:
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
- rollup@4.52.5:
- resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
+ rollup@4.53.3:
+ resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -6776,10 +6771,6 @@ packages:
state-local@1.0.7:
resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==}
- statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
- engines: {node: '>= 0.8'}
-
statuses@2.0.2:
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
engines: {node: '>= 0.8'}
@@ -6901,11 +6892,11 @@ packages:
peerDependencies:
stylelint: ^16.13.0
- stylelint-scss@6.12.1:
- resolution: {integrity: sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==}
+ stylelint-scss@6.13.0:
+ resolution: {integrity: sha512-kZPwFUJkfup2gP1enlrS2h9U5+T5wFoqzJ1n/56AlpwSj28kmFe7ww/QFydvPsg5gLjWchAwWWBLtterynZrOw==}
engines: {node: '>=18.12.0'}
peerDependencies:
- stylelint: ^16.0.2
+ stylelint: ^16.8.2
stylelint@16.14.1:
resolution: {integrity: sha512-oqCL7AC3786oTax35T/nuLL8p2C3k/8rHKAooezrPGRvUX0wX+qqs5kMWh5YYT4PHQgVDobHT4tw55WgpYG6Sw==}
@@ -6967,8 +6958,8 @@ packages:
tcomb@3.2.29:
resolution: {integrity: sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==}
- terser-webpack-plugin@5.3.14:
- resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==}
+ terser-webpack-plugin@5.3.15:
+ resolution: {integrity: sha512-PGkOdpRFK+rb1TzVz+msVhw4YMRT9txLF4kRqvJhGhCM324xuR3REBSHALN+l+sAhKUmz0aotnjp5D+P83mLhQ==}
engines: {node: '>= 10.13.0'}
peerDependencies:
'@swc/core': '*'
@@ -6983,8 +6974,8 @@ packages:
uglify-js:
optional: true
- terser@5.44.0:
- resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==}
+ terser@5.44.1:
+ resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==}
engines: {node: '>=10'}
hasBin: true
@@ -7014,8 +7005,9 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyexec@1.0.1:
- resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+ tinyexec@1.0.2:
+ resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ engines: {node: '>=18'}
tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
@@ -7219,8 +7211,8 @@ packages:
resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
engines: {node: '>=8'}
- update-browserslist-db@1.1.4:
- resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==}
+ update-browserslist-db@1.2.2:
+ resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -7445,8 +7437,8 @@ packages:
webpack-virtual-modules@0.5.0:
resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
- webpack@5.102.1:
- resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==}
+ webpack@5.103.0:
+ resolution: {integrity: sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -7590,8 +7582,8 @@ packages:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
- yaml@2.8.1:
- resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
+ yaml@2.8.2:
+ resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
engines: {node: '>= 14.6'}
hasBin: true
@@ -7630,24 +7622,24 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- yocto-queue@1.2.1:
- resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
+ yocto-queue@1.2.2:
+ resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
engines: {node: '>=12.20'}
yoctocolors-cjs@2.1.3:
resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==}
engines: {node: '>=18'}
- zod-to-json-schema@3.24.6:
- resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
+ zod-to-json-schema@3.25.0:
+ resolution: {integrity: sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ==}
peerDependencies:
- zod: ^3.24.1
+ zod: ^3.25 || ^4
- zod-validation-error@3.5.3:
- resolution: {integrity: sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==}
+ zod-validation-error@3.5.4:
+ resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==}
engines: {node: '>=18.0.0'}
peerDependencies:
- zod: ^3.25.0 || ^4.0.0
+ zod: ^3.24.4
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
@@ -7682,17 +7674,15 @@ snapshots:
'@antfu/install-pkg@1.1.0':
dependencies:
- package-manager-detector: 1.5.0
- tinyexec: 1.0.1
-
- '@antfu/utils@9.3.0': {}
+ package-manager-detector: 1.6.0
+ tinyexec: 1.0.2
'@apidevtools/json-schema-ref-parser@9.0.9':
dependencies:
'@jsdevtools/ono': 7.1.3
'@types/json-schema': 7.0.15
call-me-maybe: 1.0.2
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
'@asamuzakjp/css-color@3.2.0':
dependencies:
@@ -7710,23 +7700,23 @@ snapshots:
'@babel/code-frame@7.27.1':
dependencies:
- '@babel/helper-validator-identifier': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.28.4': {}
+ '@babel/compat-data@7.28.5': {}
- '@babel/core@7.28.4':
+ '@babel/core@7.28.5':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
+ '@babel/generator': 7.28.5
'@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helpers': 7.28.4
- '@babel/parser': 7.28.4
+ '@babel/parser': 7.28.5
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
'@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
debug: 4.3.7(supports-color@8.1.1)
@@ -7736,49 +7726,49 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.28.3':
+ '@babel/generator@7.28.5':
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@babel/helper-compilation-targets@7.27.2':
dependencies:
- '@babel/compat-data': 7.28.4
+ '@babel/compat-data': 7.28.5
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.27.0
+ browserslist: 4.28.1
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)':
+ '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-member-expression-to-functions': 7.28.5
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.4)':
+ '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
regexpu-core: 6.4.0
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)':
+ '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
debug: 4.4.3
@@ -7789,567 +7779,567 @@ snapshots:
'@babel/helper-globals@7.28.0': {}
- '@babel/helper-member-expression-to-functions@7.27.1':
+ '@babel/helper-member-expression-to-functions@7.28.5':
dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.27.1':
dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@babel/helper-plugin-utils@7.27.1': {}
- '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)':
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-wrap-function': 7.28.3
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)':
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/core': 7.28.5
+ '@babel/helper-member-expression-to-functions': 7.28.5
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-string-parser@7.27.1': {}
- '@babel/helper-validator-identifier@7.27.1': {}
+ '@babel/helper-validator-identifier@7.28.5': {}
'@babel/helper-validator-option@7.27.1': {}
'@babel/helper-wrap-function@7.28.3':
dependencies:
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helpers@7.28.4':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
- '@babel/parser@7.28.4':
+ '@babel/parser@7.28.5':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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.4)
+ '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
- '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)':
+ '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4)
- '@babel/traverse': 7.28.4
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5)
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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.4)
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.4)':
+ '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)':
+ '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)':
+ '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-globals': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
- '@babel/traverse': 7.28.4
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
'@babel/template': 7.27.2
- '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.4)':
+ '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4)':
+ '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4)
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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.28.4)':
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)':
+ '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4)
- '@babel/traverse': 7.28.4
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5)
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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.7(@babel/core@7.28.4)':
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)':
+ '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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.28.4)':
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/preset-env@7.28.3(@babel/core@7.28.4)':
+ '@babel/preset-env@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/compat-data': 7.28.4
- '@babel/core': 7.28.4
+ '@babel/compat-data': 7.28.5
+ '@babel/core': 7.28.5
'@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.4)
- '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)
- '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4)
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4)
- '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.4)
- '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4)
- '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4)
- '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4)
- '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4)
- '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4)
- '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4)
- '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4)
- '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4)
- babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4)
- babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4)
- core-js-compat: 3.46.0
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)
+ '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5)
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5)
+ '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5)
+ '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5)
+ '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5)
+ '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5)
+ '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5)
+ '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5)
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5)
+ core-js-compat: 3.47.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
esutils: 2.0.3
'@babel/runtime@7.28.4': {}
@@ -8357,25 +8347,25 @@ snapshots:
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
- '@babel/traverse@7.28.4':
+ '@babel/traverse@7.28.5':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
+ '@babel/generator': 7.28.5
'@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.4
+ '@babel/parser': 7.28.5
'@babel/template': 7.27.2
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
debug: 4.3.7(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/types@7.28.4':
+ '@babel/types@7.28.5':
dependencies:
'@babel/helper-string-parser': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
'@bcoe/v8-coverage@1.0.2': {}
@@ -8394,21 +8384,17 @@ snapshots:
'@types/tough-cookie': 4.0.5
tough-cookie: 4.1.4
- '@cacheable/memoize@2.0.3':
- dependencies:
- '@cacheable/utils': 2.1.0
-
- '@cacheable/memory@2.0.3':
+ '@cacheable/memory@2.0.6':
dependencies:
- '@cacheable/memoize': 2.0.3
- '@cacheable/utils': 2.1.0
- '@keyv/bigmap': 1.1.0(keyv@5.5.3)
- hookified: 1.12.2
- keyv: 5.5.3
+ '@cacheable/utils': 2.3.2
+ '@keyv/bigmap': 1.3.0(keyv@5.5.5)
+ hookified: 1.14.0
+ keyv: 5.5.5
- '@cacheable/utils@2.1.0':
+ '@cacheable/utils@2.3.2':
dependencies:
- keyv: 5.5.3
+ hashery: 1.3.0
+ keyv: 5.5.5
'@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.0.28)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.4(@types/react@18.0.28)(react@18.3.1))(@types/react@18.0.28)(react@18.3.1))(react@18.3.1))(framer-motion@10.12.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
dependencies:
@@ -8564,7 +8550,7 @@ snapshots:
dependencies:
'@chakra-ui/dom-utils': 2.1.0
react: 18.3.1
- react-focus-lock: 2.13.6(@types/react@18.0.28)(react@18.3.1)
+ react-focus-lock: 2.13.7(@types/react@18.0.28)(react@18.3.1)
transitivePeerDependencies:
- '@types/react'
@@ -8676,7 +8662,7 @@ snapshots:
framer-motion: 10.12.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.7.1(@types/react@18.0.28)(react@18.3.1)
+ react-remove-scroll: 2.7.2(@types/react@18.0.28)(react@18.3.1)
transitivePeerDependencies:
- '@types/react'
@@ -9197,16 +9183,16 @@ snapshots:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)':
+ '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)':
dependencies:
- postcss-selector-parser: 7.1.0
+ postcss-selector-parser: 7.1.1
- '@cypress/code-coverage@3.13.11(@babel/core@7.28.4)(@babel/preset-env@7.28.3(@babel/core@7.28.4))(babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.102.1))(cypress@15.5.0)(webpack@5.102.1)':
+ '@cypress/code-coverage@3.13.11(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.103.0))(cypress@15.5.0)(webpack@5.103.0)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/preset-env': 7.28.3(@babel/core@7.28.4)
- '@cypress/webpack-preprocessor': 6.0.4(@babel/core@7.28.4)(@babel/preset-env@7.28.3(@babel/core@7.28.4))(babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.102.1))(webpack@5.102.1)
- babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.102.1)
+ '@babel/core': 7.28.5
+ '@babel/preset-env': 7.28.5(@babel/core@7.28.5)
+ '@cypress/webpack-preprocessor': 6.0.4(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.103.0))(webpack@5.103.0)
+ babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.103.0)
chalk: 4.1.2
cypress: 15.5.0
dayjs: 1.11.13
@@ -9216,15 +9202,15 @@ snapshots:
istanbul-lib-coverage: 3.2.2
js-yaml: 4.1.0
nyc: 15.1.0
- webpack: 5.102.1
+ webpack: 5.103.0
transitivePeerDependencies:
- supports-color
- '@cypress/grep@5.0.0(@babel/core@7.28.4)(cypress@15.5.0)':
+ '@cypress/grep@5.0.1(@babel/core@7.28.5)(cypress@15.5.0)':
dependencies:
cypress: 15.5.0
debug: 4.3.7(supports-color@8.1.1)
- find-test-names: 1.29.19(@babel/core@7.28.4)
+ find-test-names: 1.29.19(@babel/core@7.28.5)
globby: 11.1.0
transitivePeerDependencies:
- '@babel/core'
@@ -9251,16 +9237,16 @@ snapshots:
tunnel-agent: 0.6.0
uuid: 8.3.2
- '@cypress/webpack-preprocessor@6.0.4(@babel/core@7.28.4)(@babel/preset-env@7.28.3(@babel/core@7.28.4))(babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.102.1))(webpack@5.102.1)':
+ '@cypress/webpack-preprocessor@6.0.4(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.103.0))(webpack@5.103.0)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/preset-env': 7.28.3(@babel/core@7.28.4)
- babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.102.1)
+ '@babel/core': 7.28.5
+ '@babel/preset-env': 7.28.5(@babel/core@7.28.5)
+ babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.103.0)
bluebird: 3.7.1
debug: 4.3.7(supports-color@8.1.1)
lodash: 4.17.21
semver: 7.7.3
- webpack: 5.102.1
+ webpack: 5.103.0
transitivePeerDependencies:
- supports-color
@@ -9271,7 +9257,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@dagrejs/dagre@1.1.5':
+ '@dagrejs/dagre@1.1.8':
dependencies:
'@dagrejs/graphlib': 2.2.4
@@ -9372,148 +9358,148 @@ snapshots:
'@emotion/weak-memoize@0.4.0': {}
- '@esbuild/aix-ppc64@0.25.11':
+ '@esbuild/aix-ppc64@0.25.12':
optional: true
'@esbuild/android-arm64@0.17.19':
optional: true
- '@esbuild/android-arm64@0.25.11':
+ '@esbuild/android-arm64@0.25.12':
optional: true
'@esbuild/android-arm@0.17.19':
optional: true
- '@esbuild/android-arm@0.25.11':
+ '@esbuild/android-arm@0.25.12':
optional: true
'@esbuild/android-x64@0.17.19':
optional: true
- '@esbuild/android-x64@0.25.11':
+ '@esbuild/android-x64@0.25.12':
optional: true
'@esbuild/darwin-arm64@0.17.19':
optional: true
- '@esbuild/darwin-arm64@0.25.11':
+ '@esbuild/darwin-arm64@0.25.12':
optional: true
'@esbuild/darwin-x64@0.17.19':
optional: true
- '@esbuild/darwin-x64@0.25.11':
+ '@esbuild/darwin-x64@0.25.12':
optional: true
'@esbuild/freebsd-arm64@0.17.19':
optional: true
- '@esbuild/freebsd-arm64@0.25.11':
+ '@esbuild/freebsd-arm64@0.25.12':
optional: true
'@esbuild/freebsd-x64@0.17.19':
optional: true
- '@esbuild/freebsd-x64@0.25.11':
+ '@esbuild/freebsd-x64@0.25.12':
optional: true
'@esbuild/linux-arm64@0.17.19':
optional: true
- '@esbuild/linux-arm64@0.25.11':
+ '@esbuild/linux-arm64@0.25.12':
optional: true
'@esbuild/linux-arm@0.17.19':
optional: true
- '@esbuild/linux-arm@0.25.11':
+ '@esbuild/linux-arm@0.25.12':
optional: true
'@esbuild/linux-ia32@0.17.19':
optional: true
- '@esbuild/linux-ia32@0.25.11':
+ '@esbuild/linux-ia32@0.25.12':
optional: true
'@esbuild/linux-loong64@0.17.19':
optional: true
- '@esbuild/linux-loong64@0.25.11':
+ '@esbuild/linux-loong64@0.25.12':
optional: true
'@esbuild/linux-mips64el@0.17.19':
optional: true
- '@esbuild/linux-mips64el@0.25.11':
+ '@esbuild/linux-mips64el@0.25.12':
optional: true
'@esbuild/linux-ppc64@0.17.19':
optional: true
- '@esbuild/linux-ppc64@0.25.11':
+ '@esbuild/linux-ppc64@0.25.12':
optional: true
'@esbuild/linux-riscv64@0.17.19':
optional: true
- '@esbuild/linux-riscv64@0.25.11':
+ '@esbuild/linux-riscv64@0.25.12':
optional: true
'@esbuild/linux-s390x@0.17.19':
optional: true
- '@esbuild/linux-s390x@0.25.11':
+ '@esbuild/linux-s390x@0.25.12':
optional: true
'@esbuild/linux-x64@0.17.19':
optional: true
- '@esbuild/linux-x64@0.25.11':
+ '@esbuild/linux-x64@0.25.12':
optional: true
- '@esbuild/netbsd-arm64@0.25.11':
+ '@esbuild/netbsd-arm64@0.25.12':
optional: true
'@esbuild/netbsd-x64@0.17.19':
optional: true
- '@esbuild/netbsd-x64@0.25.11':
+ '@esbuild/netbsd-x64@0.25.12':
optional: true
- '@esbuild/openbsd-arm64@0.25.11':
+ '@esbuild/openbsd-arm64@0.25.12':
optional: true
'@esbuild/openbsd-x64@0.17.19':
optional: true
- '@esbuild/openbsd-x64@0.25.11':
+ '@esbuild/openbsd-x64@0.25.12':
optional: true
- '@esbuild/openharmony-arm64@0.25.11':
+ '@esbuild/openharmony-arm64@0.25.12':
optional: true
'@esbuild/sunos-x64@0.17.19':
optional: true
- '@esbuild/sunos-x64@0.25.11':
+ '@esbuild/sunos-x64@0.25.12':
optional: true
'@esbuild/win32-arm64@0.17.19':
optional: true
- '@esbuild/win32-arm64@0.25.11':
+ '@esbuild/win32-arm64@0.25.12':
optional: true
'@esbuild/win32-ia32@0.17.19':
optional: true
- '@esbuild/win32-ia32@0.25.11':
+ '@esbuild/win32-ia32@0.25.12':
optional: true
'@esbuild/win32-x64@0.17.19':
optional: true
- '@esbuild/win32-x64@0.25.11':
+ '@esbuild/win32-x64@0.25.12':
optional: true
'@eslint-community/eslint-utils@4.9.0(eslint@9.26.0)':
@@ -9539,7 +9525,7 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.3.1':
+ '@eslint/eslintrc@3.3.3':
dependencies:
ajv: 6.12.6
debug: 4.3.7(supports-color@8.1.1)
@@ -9547,7 +9533,7 @@ snapshots:
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
@@ -9588,46 +9574,39 @@ snapshots:
'@iconify/types@2.0.0': {}
- '@iconify/utils@3.0.2':
+ '@iconify/utils@3.1.0':
dependencies:
'@antfu/install-pkg': 1.1.0
- '@antfu/utils': 9.3.0
'@iconify/types': 2.0.0
- debug: 4.4.3
- globals: 15.15.0
- kolorist: 1.8.0
- local-pkg: 1.1.2
mlly: 1.8.0
- transitivePeerDependencies:
- - supports-color
- '@inquirer/ansi@1.0.1': {}
+ '@inquirer/ansi@1.0.2': {}
- '@inquirer/confirm@5.1.19(@types/node@24.9.1)':
+ '@inquirer/confirm@5.1.21(@types/node@24.10.2)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@24.9.1)
- '@inquirer/type': 3.0.9(@types/node@24.9.1)
+ '@inquirer/core': 10.3.2(@types/node@24.10.2)
+ '@inquirer/type': 3.0.10(@types/node@24.10.2)
optionalDependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
- '@inquirer/core@10.3.0(@types/node@24.9.1)':
+ '@inquirer/core@10.3.2(@types/node@24.10.2)':
dependencies:
- '@inquirer/ansi': 1.0.1
- '@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@24.9.1)
+ '@inquirer/ansi': 1.0.2
+ '@inquirer/figures': 1.0.15
+ '@inquirer/type': 3.0.10(@types/node@24.10.2)
cli-width: 4.1.0
mute-stream: 2.0.0
signal-exit: 4.1.0
wrap-ansi: 6.2.0
yoctocolors-cjs: 2.1.3
optionalDependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
- '@inquirer/figures@1.0.14': {}
+ '@inquirer/figures@1.0.15': {}
- '@inquirer/type@3.0.9(@types/node@24.9.1)':
+ '@inquirer/type@3.0.10(@types/node@24.10.2)':
optionalDependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
'@isaacs/balanced-match@4.0.1': {}
@@ -9649,7 +9628,7 @@ snapshots:
camelcase: 5.3.1
find-up: 4.1.0
get-package-type: 0.1.0
- js-yaml: 3.14.1
+ js-yaml: 3.14.2
resolve-from: 5.0.0
'@istanbuljs/nyc-config-typescript@1.0.2(nyc@17.1.0)':
@@ -9705,10 +9684,11 @@ snapshots:
lodash.omit: 4.5.0
ts-pattern: 3.3.5
- '@keyv/bigmap@1.1.0(keyv@5.5.3)':
+ '@keyv/bigmap@1.3.0(keyv@5.5.5)':
dependencies:
- hookified: 1.12.2
- keyv: 5.5.3
+ hashery: 1.3.0
+ hookified: 1.14.0
+ keyv: 5.5.5
'@keyv/serialize@1.1.1': {}
@@ -9716,43 +9696,45 @@ snapshots:
dependencies:
langium: 3.3.1
- '@modelcontextprotocol/sdk@1.20.1':
+ '@modelcontextprotocol/sdk@1.24.3(zod@3.25.76)':
dependencies:
- ajv: 6.12.6
+ ajv: 8.17.1
+ ajv-formats: 3.0.1(ajv@8.17.1)
content-type: 1.0.5
cors: 2.8.5
cross-spawn: 7.0.6
eventsource: 3.0.7
eventsource-parser: 3.0.6
- express: 5.1.0
- express-rate-limit: 7.5.1(express@5.1.0)
- pkce-challenge: 5.0.0
- raw-body: 3.0.1
+ express: 5.2.1
+ express-rate-limit: 7.5.1(express@5.2.1)
+ jose: 6.1.3
+ pkce-challenge: 5.0.1
+ raw-body: 3.0.2
zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
+ zod-to-json-schema: 3.25.0(zod@3.25.76)
transitivePeerDependencies:
- supports-color
- '@monaco-editor/loader@1.6.1':
+ '@monaco-editor/loader@1.7.0':
dependencies:
state-local: 1.0.7
- '@monaco-editor/react@4.7.0(monaco-editor@0.54.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@monaco-editor/loader': 1.6.1
- monaco-editor: 0.54.0
+ '@monaco-editor/loader': 1.7.0
+ monaco-editor: 0.55.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@mswjs/data@0.16.2(@types/node@24.9.1)(typescript@5.7.3)':
+ '@mswjs/data@0.16.2(@types/node@24.10.2)(typescript@5.7.3)':
dependencies:
- '@types/lodash': 4.17.20
+ '@types/lodash': 4.17.21
'@types/md5': 2.3.6
'@types/pluralize': 0.0.29
'@types/uuid': 8.3.4
date-fns: 2.30.0
debug: 4.3.7(supports-color@8.1.1)
- graphql: 16.11.0
+ graphql: 16.12.0
lodash: 4.17.21
md5: 2.3.0
outvariant: 1.4.3
@@ -9760,7 +9742,7 @@ snapshots:
strict-event-emitter: 0.5.1
uuid: 8.3.2
optionalDependencies:
- msw: 2.7.0(@types/node@24.9.1)(typescript@5.7.3)
+ msw: 2.7.0(@types/node@24.10.2)(typescript@5.7.3)
transitivePeerDependencies:
- '@types/node'
- supports-color
@@ -10063,7 +10045,7 @@ snapshots:
'@percy/cli-snapshot@1.28.5(typescript@5.7.3)':
dependencies:
'@percy/cli-command': 1.28.5(typescript@5.7.3)
- yaml: 2.8.1
+ yaml: 2.8.2
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -10109,7 +10091,7 @@ snapshots:
'@percy/logger': 1.28.5
ajv: 8.17.1
cosmiconfig: 8.3.6(typescript@5.7.3)
- yaml: 2.8.1
+ yaml: 2.8.2
transitivePeerDependencies:
- typescript
@@ -10130,7 +10112,7 @@ snapshots:
path-to-regexp: 6.3.0
rimraf: 3.0.2
ws: 8.18.3
- yaml: 2.8.1
+ yaml: 2.8.2
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -10248,7 +10230,7 @@ snapshots:
'@rjsf/utils': 5.24.13(react@18.3.1)
lodash: 4.17.21
lodash-es: 4.17.21
- markdown-to-jsx: 7.7.16(react@18.3.1)
+ markdown-to-jsx: 7.7.17(react@18.3.1)
prop-types: 15.8.1
react: 18.3.1
@@ -10271,70 +10253,70 @@ snapshots:
'@rolldown/pluginutils@1.0.0-beta.27': {}
- '@rollup/rollup-android-arm-eabi@4.52.5':
+ '@rollup/rollup-android-arm-eabi@4.53.3':
optional: true
- '@rollup/rollup-android-arm64@4.52.5':
+ '@rollup/rollup-android-arm64@4.53.3':
optional: true
- '@rollup/rollup-darwin-arm64@4.52.5':
+ '@rollup/rollup-darwin-arm64@4.53.3':
optional: true
- '@rollup/rollup-darwin-x64@4.52.5':
+ '@rollup/rollup-darwin-x64@4.53.3':
optional: true
- '@rollup/rollup-freebsd-arm64@4.52.5':
+ '@rollup/rollup-freebsd-arm64@4.53.3':
optional: true
- '@rollup/rollup-freebsd-x64@4.52.5':
+ '@rollup/rollup-freebsd-x64@4.53.3':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.52.5':
+ '@rollup/rollup-linux-arm-gnueabihf@4.53.3':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.52.5':
+ '@rollup/rollup-linux-arm-musleabihf@4.53.3':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.52.5':
+ '@rollup/rollup-linux-arm64-gnu@4.53.3':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.52.5':
+ '@rollup/rollup-linux-arm64-musl@4.53.3':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.52.5':
+ '@rollup/rollup-linux-loong64-gnu@4.53.3':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.52.5':
+ '@rollup/rollup-linux-ppc64-gnu@4.53.3':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.52.5':
+ '@rollup/rollup-linux-riscv64-gnu@4.53.3':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.52.5':
+ '@rollup/rollup-linux-riscv64-musl@4.53.3':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.52.5':
+ '@rollup/rollup-linux-s390x-gnu@4.53.3':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.52.5':
+ '@rollup/rollup-linux-x64-gnu@4.53.3':
optional: true
- '@rollup/rollup-linux-x64-musl@4.52.5':
+ '@rollup/rollup-linux-x64-musl@4.53.3':
optional: true
- '@rollup/rollup-openharmony-arm64@4.52.5':
+ '@rollup/rollup-openharmony-arm64@4.53.3':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.52.5':
+ '@rollup/rollup-win32-arm64-msvc@4.53.3':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.52.5':
+ '@rollup/rollup-win32-ia32-msvc@4.53.3':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.52.5':
+ '@rollup/rollup-win32-x64-gnu@4.53.3':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.52.5':
+ '@rollup/rollup-win32-x64-msvc@4.53.3':
optional: true
'@sentry-internal/browser-utils@8.27.0':
@@ -10377,9 +10359,9 @@ snapshots:
'@sentry/bundler-plugin-core@2.22.3':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@sentry/babel-plugin-component-annotate': 2.22.3
- '@sentry/cli': 2.57.0
+ '@sentry/cli': 2.58.2
dotenv: 16.6.1
find-up: 5.0.0
glob: 9.3.5
@@ -10389,31 +10371,31 @@ snapshots:
- encoding
- supports-color
- '@sentry/cli-darwin@2.57.0':
+ '@sentry/cli-darwin@2.58.2':
optional: true
- '@sentry/cli-linux-arm64@2.57.0':
+ '@sentry/cli-linux-arm64@2.58.2':
optional: true
- '@sentry/cli-linux-arm@2.57.0':
+ '@sentry/cli-linux-arm@2.58.2':
optional: true
- '@sentry/cli-linux-i686@2.57.0':
+ '@sentry/cli-linux-i686@2.58.2':
optional: true
- '@sentry/cli-linux-x64@2.57.0':
+ '@sentry/cli-linux-x64@2.58.2':
optional: true
- '@sentry/cli-win32-arm64@2.57.0':
+ '@sentry/cli-win32-arm64@2.58.2':
optional: true
- '@sentry/cli-win32-i686@2.57.0':
+ '@sentry/cli-win32-i686@2.58.2':
optional: true
- '@sentry/cli-win32-x64@2.57.0':
+ '@sentry/cli-win32-x64@2.58.2':
optional: true
- '@sentry/cli@2.57.0':
+ '@sentry/cli@2.58.2':
dependencies:
https-proxy-agent: 5.0.1
node-fetch: 2.7.0
@@ -10421,14 +10403,14 @@ snapshots:
proxy-from-env: 1.1.0
which: 2.0.2
optionalDependencies:
- '@sentry/cli-darwin': 2.57.0
- '@sentry/cli-linux-arm': 2.57.0
- '@sentry/cli-linux-arm64': 2.57.0
- '@sentry/cli-linux-i686': 2.57.0
- '@sentry/cli-linux-x64': 2.57.0
- '@sentry/cli-win32-arm64': 2.57.0
- '@sentry/cli-win32-i686': 2.57.0
- '@sentry/cli-win32-x64': 2.57.0
+ '@sentry/cli-darwin': 2.58.2
+ '@sentry/cli-linux-arm': 2.58.2
+ '@sentry/cli-linux-arm64': 2.58.2
+ '@sentry/cli-linux-i686': 2.58.2
+ '@sentry/cli-linux-x64': 2.58.2
+ '@sentry/cli-win32-arm64': 2.58.2
+ '@sentry/cli-win32-i686': 2.58.2
+ '@sentry/cli-win32-x64': 2.58.2
transitivePeerDependencies:
- encoding
- supports-color
@@ -10463,7 +10445,7 @@ snapshots:
'@tanstack/eslint-plugin-query@5.74.7(eslint@9.26.0)(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/utils': 8.46.2(eslint@9.26.0)(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.49.0(eslint@9.26.0)(typescript@5.7.3)
eslint: 9.26.0
transitivePeerDependencies:
- supports-color
@@ -10523,44 +10505,44 @@ snapshots:
'@types/react': 18.0.28
'@types/react-dom': 18.0.11
- '@tiptap/core@2.26.3(@tiptap/pm@2.9.1)':
+ '@tiptap/core@2.27.1(@tiptap/pm@2.9.1)':
dependencies:
'@tiptap/pm': 2.9.1
- '@tiptap/extension-bubble-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
+ '@tiptap/extension-bubble-menu@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
'@tiptap/pm': 2.9.1
tippy.js: 6.3.7
- '@tiptap/extension-document@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))':
+ '@tiptap/extension-document@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
- '@tiptap/extension-floating-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
+ '@tiptap/extension-floating-menu@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
'@tiptap/pm': 2.9.1
tippy.js: 6.3.7
- '@tiptap/extension-mention@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(@tiptap/suggestion@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1))':
+ '@tiptap/extension-mention@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(@tiptap/suggestion@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
'@tiptap/pm': 2.9.1
- '@tiptap/suggestion': 2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
+ '@tiptap/suggestion': 2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
- '@tiptap/extension-paragraph@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))':
+ '@tiptap/extension-paragraph@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
- '@tiptap/extension-placeholder@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
+ '@tiptap/extension-placeholder@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
'@tiptap/pm': 2.9.1
- '@tiptap/extension-text@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))':
+ '@tiptap/extension-text@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
'@tiptap/pm@2.9.1':
dependencies:
@@ -10569,7 +10551,7 @@ snapshots:
prosemirror-commands: 1.7.1
prosemirror-dropcursor: 1.8.2
prosemirror-gapcursor: 1.4.0
- prosemirror-history: 1.4.1
+ prosemirror-history: 1.5.0
prosemirror-inputrules: 1.5.1
prosemirror-keymap: 1.2.3
prosemirror-markdown: 1.13.2
@@ -10577,17 +10559,17 @@ snapshots:
prosemirror-model: 1.25.4
prosemirror-schema-basic: 1.2.4
prosemirror-schema-list: 1.5.1
- prosemirror-state: 1.4.3
- prosemirror-tables: 1.8.1
- prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.3)(prosemirror-view@1.41.3)
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
+ prosemirror-state: 1.4.4
+ prosemirror-tables: 1.8.3
+ prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)
+ prosemirror-transform: 1.10.5
+ prosemirror-view: 1.41.4
- '@tiptap/react@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@tiptap/react@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
- '@tiptap/extension-bubble-menu': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
- '@tiptap/extension-floating-menu': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
+ '@tiptap/extension-bubble-menu': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
+ '@tiptap/extension-floating-menu': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)
'@tiptap/pm': 2.9.1
'@types/use-sync-external-store': 0.0.6
fast-deep-equal: 3.1.3
@@ -10595,33 +10577,33 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
use-sync-external-store: 1.6.0(react@18.3.1)
- '@tiptap/suggestion@2.9.1(@tiptap/core@2.26.3(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
+ '@tiptap/suggestion@2.9.1(@tiptap/core@2.27.1(@tiptap/pm@2.9.1))(@tiptap/pm@2.9.1)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.9.1)
+ '@tiptap/core': 2.27.1(@tiptap/pm@2.9.1)
'@tiptap/pm': 2.9.1
'@types/aria-query@5.0.4': {}
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
'@types/babel__generator': 7.27.0
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.28.0
'@types/babel__generator@7.27.0':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
'@types/babel__traverse@7.28.0':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@types/chai@5.2.3':
dependencies:
@@ -10795,17 +10777,17 @@ snapshots:
'@types/lodash.mergewith@4.6.6':
dependencies:
- '@types/lodash': 4.17.20
+ '@types/lodash': 4.17.21
'@types/lodash.mergewith@4.6.7':
dependencies:
- '@types/lodash': 4.17.20
+ '@types/lodash': 4.17.21
'@types/lodash.mergewith@4.6.9':
dependencies:
- '@types/lodash': 4.17.20
+ '@types/lodash': 4.17.21
- '@types/lodash@4.17.20': {}
+ '@types/lodash@4.17.21': {}
'@types/luxon@3.3.0': {}
@@ -10829,7 +10811,7 @@ snapshots:
dependencies:
undici-types: 5.26.5
- '@types/node@24.9.1':
+ '@types/node@24.10.2':
dependencies:
undici-types: 7.16.0
@@ -10853,17 +10835,17 @@ snapshots:
'@types/scheduler': 0.26.0
csstype: 3.1.3
- '@types/readable-stream@4.0.21':
+ '@types/readable-stream@4.0.22':
dependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
'@types/scheduler@0.26.0': {}
'@types/sinon@17.0.4':
dependencies:
- '@types/sinonjs__fake-timers': 15.0.0
+ '@types/sinonjs__fake-timers': 15.0.1
- '@types/sinonjs__fake-timers@15.0.0': {}
+ '@types/sinonjs__fake-timers@15.0.1': {}
'@types/sinonjs__fake-timers@8.1.1': {}
@@ -10886,11 +10868,11 @@ snapshots:
'@types/ws@8.18.1':
dependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
'@types/yauzl@2.10.3':
dependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
optional: true
'@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.26.0)(typescript@5.7.3))(eslint@9.26.0)(typescript@5.7.3)':
@@ -10922,10 +10904,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.46.2(typescript@5.7.3)':
+ '@typescript-eslint/project-service@8.49.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.7.3)
- '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.7.3)
+ '@typescript-eslint/types': 8.49.0
debug: 4.3.7(supports-color@8.1.1)
typescript: 5.7.3
transitivePeerDependencies:
@@ -10936,12 +10918,12 @@ snapshots:
'@typescript-eslint/types': 8.32.1
'@typescript-eslint/visitor-keys': 8.32.1
- '@typescript-eslint/scope-manager@8.46.2':
+ '@typescript-eslint/scope-manager@8.49.0':
dependencies:
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/visitor-keys': 8.46.2
+ '@typescript-eslint/types': 8.49.0
+ '@typescript-eslint/visitor-keys': 8.49.0
- '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.7.3)':
+ '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.7.3)':
dependencies:
typescript: 5.7.3
@@ -10958,7 +10940,7 @@ snapshots:
'@typescript-eslint/types@8.32.1': {}
- '@typescript-eslint/types@8.46.2': {}
+ '@typescript-eslint/types@8.49.0': {}
'@typescript-eslint/typescript-estree@8.32.1(typescript@5.7.3)':
dependencies:
@@ -10974,17 +10956,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.46.2(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.49.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/project-service': 8.46.2(typescript@5.7.3)
- '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.7.3)
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/visitor-keys': 8.46.2
+ '@typescript-eslint/project-service': 8.49.0(typescript@5.7.3)
+ '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.7.3)
+ '@typescript-eslint/types': 8.49.0
+ '@typescript-eslint/visitor-keys': 8.49.0
debug: 4.3.7(supports-color@8.1.1)
- fast-glob: 3.3.3
- is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.3
+ tinyglobby: 0.2.15
ts-api-utils: 2.1.0(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
@@ -11001,12 +10982,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.46.2(eslint@9.26.0)(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.49.0(eslint@9.26.0)(typescript@5.7.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.26.0)
- '@typescript-eslint/scope-manager': 8.46.2
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 8.49.0
+ '@typescript-eslint/types': 8.49.0
+ '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.7.3)
eslint: 9.26.0
typescript: 5.7.3
transitivePeerDependencies:
@@ -11017,9 +10998,9 @@ snapshots:
'@typescript-eslint/types': 8.32.1
eslint-visitor-keys: 4.2.1
- '@typescript-eslint/visitor-keys@8.46.2':
+ '@typescript-eslint/visitor-keys@8.49.0':
dependencies:
- '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/types': 8.49.0
eslint-visitor-keys: 4.2.1
'@uidotdev/usehooks@2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
@@ -11027,15 +11008,15 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@vitejs/plugin-react@4.7.0(vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1))':
+ '@vitejs/plugin-react@4.7.0(vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2))':
dependencies:
- '@babel/core': 7.28.4
- '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5)
'@rolldown/pluginutils': 1.0.0-beta.27
'@types/babel__core': 7.20.5
react-refresh: 0.17.0
- vite: 7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
@@ -11051,7 +11032,7 @@ snapshots:
magicast: 0.3.5
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.2)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
@@ -11059,18 +11040,18 @@ snapshots:
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 1.0.2
- ast-v8-to-istanbul: 0.3.7
+ ast-v8-to-istanbul: 0.3.8
debug: 4.4.3
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
istanbul-reports: 3.2.0
- magic-string: 0.30.19
+ magic-string: 0.30.21
magicast: 0.3.5
std-env: 3.10.0
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.2)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
@@ -11082,14 +11063,14 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1))':
+ '@vitest/mocker@3.2.4(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
- magic-string: 0.30.19
+ magic-string: 0.30.21
optionalDependencies:
- msw: 2.7.0(@types/node@24.9.1)(typescript@5.7.3)
- vite: 7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ msw: 2.7.0(@types/node@24.10.2)(typescript@5.7.3)
+ vite: 7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -11104,7 +11085,7 @@ snapshots:
'@vitest/snapshot@3.2.4':
dependencies:
'@vitest/pretty-format': 3.2.4
- magic-string: 0.30.19
+ magic-string: 0.30.21
pathe: 2.0.3
'@vitest/spy@3.2.4':
@@ -11120,7 +11101,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.2)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
'@vitest/utils@3.2.4':
dependencies:
@@ -11245,7 +11226,7 @@ snapshots:
accepts@2.0.0:
dependencies:
- mime-types: 3.0.1
+ mime-types: 3.0.2
negotiator: 1.0.0
acorn-import-phases@1.0.4(acorn@8.15.0):
@@ -11283,6 +11264,10 @@ snapshots:
optionalDependencies:
ajv: 8.17.1
+ ajv-formats@3.0.1(ajv@8.17.1):
+ optionalDependencies:
+ ajv: 8.17.1
+
ajv-keywords@5.1.0(ajv@8.17.1):
dependencies:
ajv: 8.17.1
@@ -11420,7 +11405,7 @@ snapshots:
assertion-error@2.0.1: {}
- ast-v8-to-istanbul@0.3.7:
+ ast-v8-to-istanbul@0.3.8:
dependencies:
'@jridgewell/trace-mapping': 0.3.31
estree-walker: 3.0.3
@@ -11454,12 +11439,12 @@ snapshots:
transitivePeerDependencies:
- debug
- babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.102.1):
+ babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.103.0):
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
find-cache-dir: 4.0.0
schema-utils: 4.3.3
- webpack: 5.102.1
+ webpack: 5.103.0
babel-plugin-macros@3.1.0:
dependencies:
@@ -11467,27 +11452,27 @@ snapshots:
cosmiconfig: 7.1.0
resolve: 1.22.11
- babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4):
+ babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5):
dependencies:
- '@babel/compat-data': 7.28.4
- '@babel/core': 7.28.4
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
+ '@babel/compat-data': 7.28.5
+ '@babel/core': 7.28.5
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4):
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5):
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
- core-js-compat: 3.46.0
+ '@babel/core': 7.28.5
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5)
+ core-js-compat: 3.47.0
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4):
+ babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5):
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
@@ -11497,7 +11482,7 @@ snapshots:
base64-js@1.5.1: {}
- baseline-browser-mapping@2.8.19: {}
+ baseline-browser-mapping@2.9.5: {}
bcrypt-pbkdf@1.0.2:
dependencies:
@@ -11507,9 +11492,9 @@ snapshots:
bind-event-listener@3.0.0: {}
- bl@6.1.4:
+ bl@6.1.6:
dependencies:
- '@types/readable-stream': 4.0.21
+ '@types/readable-stream': 4.0.22
buffer: 6.0.3
inherits: 2.0.4
readable-stream: 4.7.0
@@ -11520,16 +11505,16 @@ snapshots:
bluebird@3.7.2: {}
- body-parser@2.2.0:
+ body-parser@2.2.1:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
debug: 4.4.3
- http-errors: 2.0.0
- iconv-lite: 0.6.3
+ http-errors: 2.0.1
+ iconv-lite: 0.7.0
on-finished: 2.4.1
qs: 6.14.0
- raw-body: 3.0.1
+ raw-body: 3.0.2
type-is: 2.0.1
transitivePeerDependencies:
- supports-color
@@ -11549,13 +11534,13 @@ snapshots:
browser-stdout@1.3.1: {}
- browserslist@4.27.0:
+ browserslist@4.28.1:
dependencies:
- baseline-browser-mapping: 2.8.19
- caniuse-lite: 1.0.30001751
- electron-to-chromium: 1.5.239
- node-releases: 2.0.26
- update-browserslist-db: 1.1.4(browserslist@4.27.0)
+ baseline-browser-mapping: 2.9.5
+ caniuse-lite: 1.0.30001760
+ electron-to-chromium: 1.5.267
+ node-releases: 2.0.27
+ update-browserslist-db: 1.2.2(browserslist@4.28.1)
buffer-crc32@0.2.13: {}
@@ -11577,14 +11562,13 @@ snapshots:
cac@6.7.14: {}
- cacheable@2.1.1:
+ cacheable@2.3.0:
dependencies:
- '@cacheable/memoize': 2.0.3
- '@cacheable/memory': 2.0.3
- '@cacheable/utils': 2.1.0
- hookified: 1.12.2
- keyv: 5.5.3
- qified: 0.5.1
+ '@cacheable/memory': 2.0.6
+ '@cacheable/utils': 2.3.2
+ hookified: 1.14.0
+ keyv: 5.5.5
+ qified: 0.5.3
cachedir@2.4.0: {}
@@ -11620,7 +11604,7 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001751: {}
+ caniuse-lite@1.0.30001760: {}
caseless@0.12.0: {}
@@ -11864,15 +11848,11 @@ snapshots:
confbox@0.1.8: {}
- confbox@0.2.2: {}
-
content-disposition@0.5.4:
dependencies:
safe-buffer: 5.2.1
- content-disposition@1.0.0:
- dependencies:
- safe-buffer: 5.2.1
+ content-disposition@1.0.1: {}
content-type@1.0.5: {}
@@ -11898,9 +11878,9 @@ snapshots:
untildify: 4.0.0
yargs: 16.2.0
- core-js-compat@3.46.0:
+ core-js-compat@3.47.0:
dependencies:
- browserslist: 4.27.0
+ browserslist: 4.28.1
core-util-is@1.0.2: {}
@@ -11930,7 +11910,7 @@ snapshots:
cosmiconfig@8.3.6(typescript@5.7.3):
dependencies:
import-fresh: 3.3.1
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
parse-json: 5.2.0
path-type: 4.0.0
optionalDependencies:
@@ -11940,7 +11920,7 @@ snapshots:
dependencies:
env-paths: 2.2.1
import-fresh: 3.3.1
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
parse-json: 5.2.0
optionalDependencies:
typescript: 5.7.3
@@ -12024,7 +12004,7 @@ snapshots:
cli-table3: 0.6.1
commander: 6.2.1
common-tags: 1.8.2
- dayjs: 1.11.18
+ dayjs: 1.11.19
debug: 4.3.7(supports-color@8.1.1)
enquirer: 2.4.1
eventemitter2: 6.4.7
@@ -12307,7 +12287,7 @@ snapshots:
dayjs@1.11.13: {}
- dayjs@1.11.18: {}
+ dayjs@1.11.19: {}
debug@3.2.7(supports-color@8.1.1):
dependencies:
@@ -12392,9 +12372,11 @@ snapshots:
'@babel/runtime': 7.28.4
csstype: 3.1.3
- dompurify@3.1.7: {}
+ dompurify@3.2.7:
+ optionalDependencies:
+ '@types/trusted-types': 2.0.7
- dompurify@3.3.0:
+ dompurify@3.3.1:
optionalDependencies:
'@types/trusted-types': 2.0.7
@@ -12415,7 +12397,7 @@ snapshots:
ee-first@1.1.1: {}
- electron-to-chromium@1.5.239: {}
+ electron-to-chromium@1.5.267: {}
elkjs@0.9.1: {}
@@ -12579,34 +12561,34 @@ snapshots:
'@esbuild/win32-ia32': 0.17.19
'@esbuild/win32-x64': 0.17.19
- esbuild@0.25.11:
+ esbuild@0.25.12:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.11
- '@esbuild/android-arm': 0.25.11
- '@esbuild/android-arm64': 0.25.11
- '@esbuild/android-x64': 0.25.11
- '@esbuild/darwin-arm64': 0.25.11
- '@esbuild/darwin-x64': 0.25.11
- '@esbuild/freebsd-arm64': 0.25.11
- '@esbuild/freebsd-x64': 0.25.11
- '@esbuild/linux-arm': 0.25.11
- '@esbuild/linux-arm64': 0.25.11
- '@esbuild/linux-ia32': 0.25.11
- '@esbuild/linux-loong64': 0.25.11
- '@esbuild/linux-mips64el': 0.25.11
- '@esbuild/linux-ppc64': 0.25.11
- '@esbuild/linux-riscv64': 0.25.11
- '@esbuild/linux-s390x': 0.25.11
- '@esbuild/linux-x64': 0.25.11
- '@esbuild/netbsd-arm64': 0.25.11
- '@esbuild/netbsd-x64': 0.25.11
- '@esbuild/openbsd-arm64': 0.25.11
- '@esbuild/openbsd-x64': 0.25.11
- '@esbuild/openharmony-arm64': 0.25.11
- '@esbuild/sunos-x64': 0.25.11
- '@esbuild/win32-arm64': 0.25.11
- '@esbuild/win32-ia32': 0.25.11
- '@esbuild/win32-x64': 0.25.11
+ '@esbuild/aix-ppc64': 0.25.12
+ '@esbuild/android-arm': 0.25.12
+ '@esbuild/android-arm64': 0.25.12
+ '@esbuild/android-x64': 0.25.12
+ '@esbuild/darwin-arm64': 0.25.12
+ '@esbuild/darwin-x64': 0.25.12
+ '@esbuild/freebsd-arm64': 0.25.12
+ '@esbuild/freebsd-x64': 0.25.12
+ '@esbuild/linux-arm': 0.25.12
+ '@esbuild/linux-arm64': 0.25.12
+ '@esbuild/linux-ia32': 0.25.12
+ '@esbuild/linux-loong64': 0.25.12
+ '@esbuild/linux-mips64el': 0.25.12
+ '@esbuild/linux-ppc64': 0.25.12
+ '@esbuild/linux-riscv64': 0.25.12
+ '@esbuild/linux-s390x': 0.25.12
+ '@esbuild/linux-x64': 0.25.12
+ '@esbuild/netbsd-arm64': 0.25.12
+ '@esbuild/netbsd-x64': 0.25.12
+ '@esbuild/openbsd-arm64': 0.25.12
+ '@esbuild/openbsd-x64': 0.25.12
+ '@esbuild/openharmony-arm64': 0.25.12
+ '@esbuild/sunos-x64': 0.25.12
+ '@esbuild/win32-arm64': 0.25.12
+ '@esbuild/win32-ia32': 0.25.12
+ '@esbuild/win32-x64': 0.25.12
escalade@3.2.0: {}
@@ -12690,13 +12672,13 @@ snapshots:
'@eslint/config-array': 0.20.1
'@eslint/config-helpers': 0.2.3
'@eslint/core': 0.13.0
- '@eslint/eslintrc': 3.3.1
+ '@eslint/eslintrc': 3.3.3
'@eslint/js': 9.26.0
'@eslint/plugin-kit': 0.2.8
'@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
- '@modelcontextprotocol/sdk': 1.20.1
+ '@modelcontextprotocol/sdk': 1.24.3(zod@3.25.76)
'@types/estree': 1.0.8
'@types/json-schema': 7.0.15
ajv: 6.12.6
@@ -12723,6 +12705,7 @@ snapshots:
optionator: 0.9.4
zod: 3.25.76
transitivePeerDependencies:
+ - '@cfworker/json-schema'
- supports-color
espree@10.4.0:
@@ -12783,29 +12766,30 @@ snapshots:
dependencies:
pify: 2.3.0
- expect-type@1.2.2: {}
+ expect-type@1.3.0: {}
- express-rate-limit@7.5.1(express@5.1.0):
+ express-rate-limit@7.5.1(express@5.2.1):
dependencies:
- express: 5.1.0
+ express: 5.2.1
- express@5.1.0:
+ express@5.2.1:
dependencies:
accepts: 2.0.0
- body-parser: 2.2.0
- content-disposition: 1.0.0
+ body-parser: 2.2.1
+ content-disposition: 1.0.1
content-type: 1.0.5
cookie: 0.7.2
cookie-signature: 1.2.2
debug: 4.4.3
+ depd: 2.0.0
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
- finalhandler: 2.1.0
+ finalhandler: 2.1.1
fresh: 2.0.0
- http-errors: 2.0.0
+ http-errors: 2.0.1
merge-descriptors: 2.0.0
- mime-types: 3.0.1
+ mime-types: 3.0.2
on-finished: 2.4.1
once: 1.4.0
parseurl: 1.3.3
@@ -12821,8 +12805,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- exsolve@1.0.7: {}
-
extend@3.0.2: {}
extract-zip@2.0.1(supports-color@8.1.1):
@@ -12839,7 +12821,7 @@ snapshots:
fast-deep-equal@3.1.3: {}
- fast-equals@5.3.2: {}
+ fast-equals@5.3.3: {}
fast-glob@3.3.3:
dependencies:
@@ -12882,7 +12864,7 @@ snapshots:
file-entry-cache@10.1.4:
dependencies:
- flat-cache: 6.1.18
+ flat-cache: 6.1.19
file-entry-cache@8.0.0:
dependencies:
@@ -12896,7 +12878,7 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
- finalhandler@2.1.0:
+ finalhandler@2.1.1:
dependencies:
debug: 4.4.3
encodeurl: 2.0.0
@@ -12920,10 +12902,10 @@ snapshots:
find-root@1.1.0: {}
- find-test-names@1.29.19(@babel/core@7.28.4):
+ find-test-names@1.29.19(@babel/core@7.28.5):
dependencies:
- '@babel/parser': 7.28.4
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/parser': 7.28.5
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
acorn-walk: 8.3.4
debug: 4.3.7(supports-color@8.1.1)
simple-bin-help: 1.8.0
@@ -12952,11 +12934,11 @@ snapshots:
flatted: 3.3.3
keyv: 4.5.4
- flat-cache@6.1.18:
+ flat-cache@6.1.19:
dependencies:
- cacheable: 2.1.1
+ cacheable: 2.3.0
flatted: 3.3.3
- hookified: 1.12.2
+ hookified: 1.14.0
flat@5.0.2: {}
@@ -13114,7 +13096,7 @@ snapshots:
glob-to-regexp@0.4.1: {}
- glob@10.4.5:
+ glob@10.5.0:
dependencies:
foreground-child: 3.3.1
jackspeak: 3.4.3
@@ -13123,13 +13105,10 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
- glob@11.0.3:
+ glob@13.0.0:
dependencies:
- foreground-child: 3.3.1
- jackspeak: 4.1.1
minimatch: 10.1.1
minipass: 7.1.2
- package-json-from-dist: 1.0.1
path-scurry: 2.0.1
glob@7.2.3:
@@ -13190,7 +13169,7 @@ snapshots:
graphemer@1.4.0: {}
- graphql@16.11.0: {}
+ graphql@16.12.0: {}
hachure-fill@0.5.2: {}
@@ -13228,6 +13207,10 @@ snapshots:
is-stream: 2.0.1
type-fest: 0.8.1
+ hashery@1.3.0:
+ dependencies:
+ hookified: 1.14.0
+
hasown@2.0.2:
dependencies:
function-bind: 1.1.2
@@ -13242,7 +13225,7 @@ snapshots:
dependencies:
react-is: 16.13.1
- hookified@1.12.2: {}
+ hookified@1.14.0: {}
html-encoding-sniffer@4.0.0:
dependencies:
@@ -13256,12 +13239,12 @@ snapshots:
html-tags@3.3.1: {}
- http-errors@2.0.0:
+ http-errors@2.0.1:
dependencies:
depd: 2.0.0
inherits: 2.0.4
setprototypeof: 1.2.0
- statuses: 2.0.1
+ statuses: 2.0.2
toidentifier: 1.0.1
http-proxy-agent@7.0.2:
@@ -13529,7 +13512,7 @@ snapshots:
istanbul-lib-instrument@4.0.3:
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -13538,8 +13521,8 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- '@babel/core': 7.28.4
- '@babel/parser': 7.28.4
+ '@babel/core': 7.28.5
+ '@babel/parser': 7.28.5
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.7.3
@@ -13597,23 +13580,21 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- jackspeak@4.1.1:
- dependencies:
- '@isaacs/cliui': 8.0.2
-
jest-worker@27.5.1:
dependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
merge-stream: 2.0.0
supports-color: 8.1.1
+ jose@6.1.3: {}
+
js-sdsl@4.3.0: {}
js-tokens@4.0.0: {}
js-tokens@9.0.1: {}
- js-yaml@3.14.1:
+ js-yaml@3.14.2:
dependencies:
argparse: 1.0.10
esprima: 4.0.1
@@ -13622,6 +13603,10 @@ snapshots:
dependencies:
argparse: 2.0.1
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
jsbn@0.1.1: {}
jsbn@1.1.0: {}
@@ -13636,7 +13621,7 @@ snapshots:
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.22
+ nwsapi: 2.2.23
parse5: 7.3.0
rrweb-cssom: 0.6.0
saxes: 6.0.0
@@ -13712,7 +13697,7 @@ snapshots:
jwt-decode@3.1.2: {}
- katex@0.16.25:
+ katex@0.16.27:
dependencies:
commander: 8.3.0
@@ -13720,7 +13705,7 @@ snapshots:
dependencies:
json-buffer: 3.0.1
- keyv@5.5.3:
+ keyv@5.5.5:
dependencies:
'@keyv/serialize': 1.1.1
@@ -13730,16 +13715,14 @@ snapshots:
known-css-properties@0.35.0: {}
- known-css-properties@0.36.0: {}
-
- kolorist@1.8.0: {}
+ known-css-properties@0.37.0: {}
langbase@1.2.4(react@18.3.1)(ws@8.18.3):
dependencies:
dotenv: 16.6.1
openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
zod: 3.25.76
- zod-validation-error: 3.5.3(zod@3.25.76)
+ zod-validation-error: 3.5.4(zod@3.25.76)
optionalDependencies:
react: 18.3.1
transitivePeerDependencies:
@@ -13784,12 +13767,6 @@ snapshots:
loader-runner@4.3.1: {}
- local-pkg@1.1.2:
- dependencies:
- mlly: 1.8.0
- pkg-types: 2.3.0
- quansync: 0.2.11
-
locate-path@5.0.0:
dependencies:
p-locate: 4.1.0
@@ -13854,7 +13831,7 @@ snapshots:
lru-cache@10.4.3: {}
- lru-cache@11.2.2: {}
+ lru-cache@11.2.4: {}
lru-cache@5.1.1:
dependencies:
@@ -13864,7 +13841,7 @@ snapshots:
lz-string@1.5.0: {}
- magic-string@0.30.19:
+ magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -13874,8 +13851,8 @@ snapshots:
magicast@0.3.5:
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
source-map-js: 1.2.1
make-dir@3.1.0:
@@ -13895,13 +13872,13 @@ snapshots:
punycode.js: 2.3.1
uc.micro: 2.1.0
- markdown-to-jsx@7.7.16(react@18.3.1):
+ markdown-to-jsx@7.7.17(react@18.3.1):
optionalDependencies:
react: 18.3.1
marked@14.0.0: {}
- marked@16.4.1: {}
+ marked@16.4.2: {}
math-intrinsics@1.1.0: {}
@@ -13915,7 +13892,7 @@ snapshots:
mdn-data@2.12.2: {}
- mdn-data@2.24.0: {}
+ mdn-data@2.25.0: {}
mdurl@2.0.0: {}
@@ -13934,7 +13911,7 @@ snapshots:
mermaid@11.12.1:
dependencies:
'@braintree/sanitize-url': 7.1.1
- '@iconify/utils': 3.0.2
+ '@iconify/utils': 3.1.0
'@mermaid-js/parser': 0.6.3
'@types/d3': 7.4.3
cytoscape: 3.33.1
@@ -13943,18 +13920,16 @@ snapshots:
d3: 7.9.0
d3-sankey: 0.12.3
dagre-d3-es: 7.0.13
- dayjs: 1.11.18
- dompurify: 3.3.0
- katex: 0.16.25
+ dayjs: 1.11.19
+ dompurify: 3.3.1
+ katex: 0.16.27
khroma: 2.1.0
lodash-es: 4.17.21
- marked: 16.4.1
+ marked: 16.4.2
roughjs: 4.6.6
stylis: 4.3.6
ts-dedent: 2.2.0
uuid: 11.1.0
- transitivePeerDependencies:
- - supports-color
micromatch@4.0.8:
dependencies:
@@ -13969,7 +13944,7 @@ snapshots:
dependencies:
mime-db: 1.52.0
- mime-types@3.0.1:
+ mime-types@3.0.2:
dependencies:
mime-db: 1.54.0
@@ -14029,10 +14004,10 @@ snapshots:
diff: 7.0.0
escape-string-regexp: 4.0.0
find-up: 5.0.0
- glob: 10.4.5
+ glob: 10.5.0
he: 1.2.0
is-path-inside: 3.0.3
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
log-symbols: 4.1.0
minimatch: 9.0.5
ms: 2.1.3
@@ -14045,10 +14020,10 @@ snapshots:
yargs-parser: 21.1.1
yargs-unparser: 2.0.0
- mochawesome-merge@5.0.0:
+ mochawesome-merge@5.1.0:
dependencies:
fs-extra: 11.3.1
- glob: 11.0.3
+ glob: 13.0.0
yargs: 17.7.2
mochawesome-report-generator@6.3.2:
@@ -14079,16 +14054,16 @@ snapshots:
strip-ansi: 6.0.1
uuid: 8.3.2
- monaco-editor@0.54.0:
+ monaco-editor@0.55.1:
dependencies:
- dompurify: 3.1.7
+ dompurify: 3.2.7
marked: 14.0.0
mqtt-match@3.0.0: {}
mqtt-packet@9.0.2:
dependencies:
- bl: 6.1.4
+ bl: 6.1.6
debug: 4.3.7(supports-color@8.1.1)
process-nextick-args: 2.0.1
transitivePeerDependencies:
@@ -14096,7 +14071,7 @@ snapshots:
mqtt@5.10.1:
dependencies:
- '@types/readable-stream': 4.0.21
+ '@types/readable-stream': 4.0.22
'@types/ws': 8.18.1
commist: 3.2.0
concat-stream: 2.0.0
@@ -14121,18 +14096,18 @@ snapshots:
ms@2.1.3: {}
- msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3):
+ msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3):
dependencies:
'@bundled-es-modules/cookie': 2.0.1
'@bundled-es-modules/statuses': 1.0.1
'@bundled-es-modules/tough-cookie': 0.1.6
- '@inquirer/confirm': 5.1.19(@types/node@24.9.1)
+ '@inquirer/confirm': 5.1.21(@types/node@24.10.2)
'@mswjs/interceptors': 0.37.6
'@open-draft/deferred-promise': 2.2.0
'@open-draft/until': 2.1.0
'@types/cookie': 0.6.0
'@types/statuses': 2.0.6
- graphql: 16.11.0
+ graphql: 16.12.0
headers-polyfill: 4.0.3
is-node-process: 1.2.0
outvariant: 1.4.3
@@ -14166,7 +14141,7 @@ snapshots:
dependencies:
process-on-spawn: 1.1.0
- node-releases@2.0.26: {}
+ node-releases@2.0.27: {}
noms@0.0.0:
dependencies:
@@ -14186,7 +14161,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- nwsapi@2.2.22: {}
+ nwsapi@2.2.23: {}
nyc@15.1.0:
dependencies:
@@ -14356,7 +14331,7 @@ snapshots:
p-limit@4.0.0:
dependencies:
- yocto-queue: 1.2.1
+ yocto-queue: 1.2.2
p-locate@4.1.0:
dependencies:
@@ -14389,7 +14364,7 @@ snapshots:
package-json-from-dist@1.0.1: {}
- package-manager-detector@1.5.0: {}
+ package-manager-detector@1.6.0: {}
pako@2.1.0: {}
@@ -14429,7 +14404,7 @@ snapshots:
path-scurry@2.0.1:
dependencies:
- lru-cache: 11.2.2
+ lru-cache: 11.2.4
minipass: 7.1.2
path-to-regexp@6.3.0: {}
@@ -14454,7 +14429,7 @@ snapshots:
pify@2.3.0: {}
- pkce-challenge@5.0.0: {}
+ pkce-challenge@5.0.1: {}
pkg-dir@4.2.0:
dependencies:
@@ -14470,12 +14445,6 @@ snapshots:
mlly: 1.8.0
pathe: 2.0.3
- pkg-types@2.3.0:
- dependencies:
- confbox: 0.2.2
- exsolve: 1.0.7
- pathe: 2.0.3
-
pluralize@8.0.0: {}
points-on-curve@0.2.0: {}
@@ -14499,7 +14468,7 @@ snapshots:
dependencies:
postcss: 8.5.6
- postcss-selector-parser@7.1.0:
+ postcss-selector-parser@7.1.1:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
@@ -14544,46 +14513,46 @@ snapshots:
prosemirror-changeset@2.3.1:
dependencies:
- prosemirror-transform: 1.10.4
+ prosemirror-transform: 1.10.5
prosemirror-collab@1.3.1:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
prosemirror-commands@1.7.1:
dependencies:
prosemirror-model: 1.25.4
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
prosemirror-dropcursor@1.8.2:
dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
+ prosemirror-view: 1.41.4
prosemirror-gapcursor@1.4.0:
dependencies:
prosemirror-keymap: 1.2.3
prosemirror-model: 1.25.4
- prosemirror-state: 1.4.3
- prosemirror-view: 1.41.3
+ prosemirror-state: 1.4.4
+ prosemirror-view: 1.41.4
- prosemirror-history@1.4.1:
+ prosemirror-history@1.5.0:
dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
+ prosemirror-view: 1.41.4
rope-sequence: 1.3.4
prosemirror-inputrules@1.5.1:
dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
prosemirror-keymap@1.2.3:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
w3c-keyname: 2.2.8
prosemirror-markdown@1.13.2:
@@ -14596,8 +14565,8 @@ snapshots:
dependencies:
crelt: 1.0.6
prosemirror-commands: 1.7.1
- prosemirror-history: 1.4.1
- prosemirror-state: 1.4.3
+ prosemirror-history: 1.5.0
+ prosemirror-state: 1.4.4
prosemirror-model@1.25.4:
dependencies:
@@ -14610,40 +14579,40 @@ snapshots:
prosemirror-schema-list@1.5.1:
dependencies:
prosemirror-model: 1.25.4
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
- prosemirror-state@1.4.3:
+ prosemirror-state@1.4.4:
dependencies:
prosemirror-model: 1.25.4
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
+ prosemirror-transform: 1.10.5
+ prosemirror-view: 1.41.4
- prosemirror-tables@1.8.1:
+ prosemirror-tables@1.8.3:
dependencies:
prosemirror-keymap: 1.2.3
prosemirror-model: 1.25.4
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
+ prosemirror-view: 1.41.4
- prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.3)(prosemirror-view@1.41.3):
+ prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4):
dependencies:
'@remirror/core-constants': 3.0.0
escape-string-regexp: 4.0.0
prosemirror-model: 1.25.4
- prosemirror-state: 1.4.3
- prosemirror-view: 1.41.3
+ prosemirror-state: 1.4.4
+ prosemirror-view: 1.41.4
- prosemirror-transform@1.10.4:
+ prosemirror-transform@1.10.5:
dependencies:
prosemirror-model: 1.25.4
- prosemirror-view@1.41.3:
+ prosemirror-view@1.41.4:
dependencies:
prosemirror-model: 1.25.4
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.10.5
protobufjs@7.2.6:
dependencies:
@@ -14657,7 +14626,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
long: 5.3.2
proxy-addr@2.0.7:
@@ -14682,16 +14651,14 @@ snapshots:
punycode@2.3.1: {}
- qified@0.5.1:
+ qified@0.5.3:
dependencies:
- hookified: 1.12.2
+ hookified: 1.14.0
qs@6.14.0:
dependencies:
side-channel: 1.1.0
- quansync@0.2.11: {}
-
querystringify@2.2.0: {}
queue-microtask@1.2.3: {}
@@ -14708,10 +14675,10 @@ snapshots:
range-parser@1.2.1: {}
- raw-body@3.0.1:
+ raw-body@3.0.2:
dependencies:
bytes: 3.1.2
- http-errors: 2.0.0
+ http-errors: 2.0.1
iconv-lite: 0.7.0
unpipe: 1.0.0
@@ -14742,7 +14709,7 @@ snapshots:
react-fast-compare@3.2.2: {}
- react-focus-lock@2.13.6(@types/react@18.0.28)(react@18.3.1):
+ react-focus-lock@2.13.7(@types/react@18.0.28)(react@18.3.1):
dependencies:
'@babel/runtime': 7.28.4
focus-lock: 1.3.6
@@ -14792,7 +14759,7 @@ snapshots:
optionalDependencies:
'@types/react': 18.0.28
- react-remove-scroll@2.7.1(@types/react@18.0.28)(react@18.3.1):
+ react-remove-scroll@2.7.2(@types/react@18.0.28)(react@18.3.1):
dependencies:
react: 18.3.1
react-remove-scroll-bar: 2.3.8(@types/react@18.0.28)(react@18.3.1)
@@ -14851,7 +14818,7 @@ snapshots:
react-smooth@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- fast-equals: 5.3.2
+ fast-equals: 5.3.3
prop-types: 15.8.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -15036,32 +15003,32 @@ snapshots:
robust-predicates@3.0.2: {}
- rollup@4.52.5:
+ rollup@4.53.3:
dependencies:
'@types/estree': 1.0.8
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.52.5
- '@rollup/rollup-android-arm64': 4.52.5
- '@rollup/rollup-darwin-arm64': 4.52.5
- '@rollup/rollup-darwin-x64': 4.52.5
- '@rollup/rollup-freebsd-arm64': 4.52.5
- '@rollup/rollup-freebsd-x64': 4.52.5
- '@rollup/rollup-linux-arm-gnueabihf': 4.52.5
- '@rollup/rollup-linux-arm-musleabihf': 4.52.5
- '@rollup/rollup-linux-arm64-gnu': 4.52.5
- '@rollup/rollup-linux-arm64-musl': 4.52.5
- '@rollup/rollup-linux-loong64-gnu': 4.52.5
- '@rollup/rollup-linux-ppc64-gnu': 4.52.5
- '@rollup/rollup-linux-riscv64-gnu': 4.52.5
- '@rollup/rollup-linux-riscv64-musl': 4.52.5
- '@rollup/rollup-linux-s390x-gnu': 4.52.5
- '@rollup/rollup-linux-x64-gnu': 4.52.5
- '@rollup/rollup-linux-x64-musl': 4.52.5
- '@rollup/rollup-openharmony-arm64': 4.52.5
- '@rollup/rollup-win32-arm64-msvc': 4.52.5
- '@rollup/rollup-win32-ia32-msvc': 4.52.5
- '@rollup/rollup-win32-x64-gnu': 4.52.5
- '@rollup/rollup-win32-x64-msvc': 4.52.5
+ '@rollup/rollup-android-arm-eabi': 4.53.3
+ '@rollup/rollup-android-arm64': 4.53.3
+ '@rollup/rollup-darwin-arm64': 4.53.3
+ '@rollup/rollup-darwin-x64': 4.53.3
+ '@rollup/rollup-freebsd-arm64': 4.53.3
+ '@rollup/rollup-freebsd-x64': 4.53.3
+ '@rollup/rollup-linux-arm-gnueabihf': 4.53.3
+ '@rollup/rollup-linux-arm-musleabihf': 4.53.3
+ '@rollup/rollup-linux-arm64-gnu': 4.53.3
+ '@rollup/rollup-linux-arm64-musl': 4.53.3
+ '@rollup/rollup-linux-loong64-gnu': 4.53.3
+ '@rollup/rollup-linux-ppc64-gnu': 4.53.3
+ '@rollup/rollup-linux-riscv64-gnu': 4.53.3
+ '@rollup/rollup-linux-riscv64-musl': 4.53.3
+ '@rollup/rollup-linux-s390x-gnu': 4.53.3
+ '@rollup/rollup-linux-x64-gnu': 4.53.3
+ '@rollup/rollup-linux-x64-musl': 4.53.3
+ '@rollup/rollup-openharmony-arm64': 4.53.3
+ '@rollup/rollup-win32-arm64-msvc': 4.53.3
+ '@rollup/rollup-win32-ia32-msvc': 4.53.3
+ '@rollup/rollup-win32-x64-gnu': 4.53.3
+ '@rollup/rollup-win32-x64-msvc': 4.53.3
fsevents: 2.3.3
rope-sequence@1.3.4: {}
@@ -15162,8 +15129,8 @@ snapshots:
escape-html: 1.0.3
etag: 1.8.1
fresh: 2.0.0
- http-errors: 2.0.0
- mime-types: 3.0.1
+ http-errors: 2.0.1
+ mime-types: 3.0.2
ms: 2.1.3
on-finished: 2.4.1
range-parser: 1.2.1
@@ -15316,8 +15283,6 @@ snapshots:
state-local@1.0.7: {}
- statuses@2.0.1: {}
-
statuses@2.0.2: {}
std-env@3.10.0: {}
@@ -15422,7 +15387,7 @@ snapshots:
postcss-scss: 4.0.9(postcss@8.5.6)
stylelint: 16.14.1(typescript@5.7.3)
stylelint-config-recommended: 14.0.1(stylelint@16.14.1(typescript@5.7.3))
- stylelint-scss: 6.12.1(stylelint@16.14.1(typescript@5.7.3))
+ stylelint-scss: 6.13.0(stylelint@16.14.1(typescript@5.7.3))
optionalDependencies:
postcss: 8.5.6
@@ -15452,15 +15417,15 @@ snapshots:
stylelint: 16.14.1(typescript@5.7.3)
stylelint-config-recommended: 15.0.0(stylelint@16.14.1(typescript@5.7.3))
- stylelint-scss@6.12.1(stylelint@16.14.1(typescript@5.7.3)):
+ stylelint-scss@6.13.0(stylelint@16.14.1(typescript@5.7.3)):
dependencies:
css-tree: 3.1.0
is-plain-object: 5.0.0
- known-css-properties: 0.36.0
- mdn-data: 2.24.0
+ known-css-properties: 0.37.0
+ mdn-data: 2.25.0
postcss-media-query-parser: 0.2.3
postcss-resolve-nested-selector: 0.1.6
- postcss-selector-parser: 7.1.0
+ postcss-selector-parser: 7.1.1
postcss-value-parser: 4.2.0
stylelint: 16.14.1(typescript@5.7.3)
@@ -15469,7 +15434,7 @@ snapshots:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
'@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
- '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0)
+ '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1)
'@dual-bundle/import-meta-resolve': 4.2.1
balanced-match: 2.0.0
colord: 2.9.3
@@ -15496,7 +15461,7 @@ snapshots:
postcss: 8.5.6
postcss-resolve-nested-selector: 0.1.6
postcss-safe-parser: 7.0.1(postcss@8.5.6)
- postcss-selector-parser: 7.1.0
+ postcss-selector-parser: 7.1.1
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
string-width: 4.2.3
@@ -15555,16 +15520,16 @@ snapshots:
tcomb@3.2.29: {}
- terser-webpack-plugin@5.3.14(webpack@5.102.1):
+ terser-webpack-plugin@5.3.15(webpack@5.103.0):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
schema-utils: 4.3.3
serialize-javascript: 6.0.2
- terser: 5.44.0
- webpack: 5.102.1
+ terser: 5.44.1
+ webpack: 5.103.0
- terser@5.44.0:
+ terser@5.44.1:
dependencies:
'@jridgewell/source-map': 0.3.11
acorn: 8.15.0
@@ -15580,7 +15545,7 @@ snapshots:
test-exclude@7.0.1:
dependencies:
'@istanbuljs/schema': 0.1.3
- glob: 10.4.5
+ glob: 10.5.0
minimatch: 9.0.5
throttleit@1.0.1: {}
@@ -15598,7 +15563,7 @@ snapshots:
tinyexec@0.3.2: {}
- tinyexec@1.0.1: {}
+ tinyexec@1.0.2: {}
tinyglobby@0.2.15:
dependencies:
@@ -15686,7 +15651,7 @@ snapshots:
dependencies:
content-type: 1.0.5
media-typer: 1.1.0
- mime-types: 3.0.1
+ mime-types: 3.0.2
typed-array-buffer@1.0.3:
dependencies:
@@ -15783,9 +15748,9 @@ snapshots:
untildify@4.0.0: {}
- update-browserslist-db@1.1.4(browserslist@4.27.0):
+ update-browserslist-db@1.2.2(browserslist@4.28.1):
dependencies:
- browserslist: 4.27.0
+ browserslist: 4.28.1
escalade: 3.2.0
picocolors: 1.1.1
@@ -15875,13 +15840,13 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-node@3.2.4(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1):
+ vite-node@3.2.4(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -15896,39 +15861,39 @@ snapshots:
- tsx
- yaml
- vite-plugin-istanbul@7.2.0(vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)):
+ vite-plugin-istanbul@7.2.0(vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
- '@babel/generator': 7.28.3
+ '@babel/generator': 7.28.5
'@istanbuljs/load-nyc-config': 1.1.0
espree: 10.4.0
istanbul-lib-instrument: 6.0.3
picocolors: 1.1.1
source-map: 0.7.6
test-exclude: 7.0.1
- vite: 7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
- vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1):
+ vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2):
dependencies:
- esbuild: 0.25.11
+ esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
- rollup: 4.52.5
+ rollup: 4.53.3
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
fsevents: 2.3.3
sass: 1.70.0
- terser: 5.44.0
- yaml: 2.8.1
+ terser: 5.44.1
+ yaml: 2.8.2
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.10.2)(@vitest/ui@3.2.4)(jsdom@24.0.0)(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(msw@2.7.0(@types/node@24.9.1)(typescript@5.7.3))(vite@7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(msw@2.7.0(@types/node@24.10.2)(typescript@5.7.3))(vite@7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -15936,8 +15901,8 @@ snapshots:
'@vitest/utils': 3.2.4
chai: 5.3.3
debug: 4.4.3
- expect-type: 1.2.2
- magic-string: 0.30.19
+ expect-type: 1.3.0
+ magic-string: 0.30.21
pathe: 2.0.3
picomatch: 4.0.3
std-env: 3.10.0
@@ -15946,12 +15911,12 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.1.11(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.9.1)(sass@1.70.0)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.11(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
+ vite-node: 3.2.4(@types/node@24.10.2)(sass@1.70.0)(terser@5.44.1)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
- '@types/node': 24.9.1
+ '@types/node': 24.10.2
'@vitest/ui': 3.2.4(vitest@3.2.4)
jsdom: 24.0.0
transitivePeerDependencies:
@@ -16015,7 +15980,7 @@ snapshots:
webpack-virtual-modules@0.5.0: {}
- webpack@5.102.1:
+ webpack@5.103.0:
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -16025,7 +15990,7 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.14.1
acorn: 8.15.0
acorn-import-phases: 1.0.4(acorn@8.15.0)
- browserslist: 4.27.0
+ browserslist: 4.28.1
chrome-trace-event: 1.0.4
enhanced-resolve: 5.18.3
es-module-lexer: 1.7.0
@@ -16039,7 +16004,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 4.3.3
tapable: 2.3.0
- terser-webpack-plugin: 5.3.14(webpack@5.102.1)
+ terser-webpack-plugin: 5.3.15(webpack@5.103.0)
watchpack: 2.4.4
webpack-sources: 3.3.3
transitivePeerDependencies:
@@ -16196,7 +16161,7 @@ snapshots:
yaml@1.10.2: {}
- yaml@2.8.1: {}
+ yaml@2.8.2: {}
yargs-parser@18.1.3:
dependencies:
@@ -16255,15 +16220,15 @@ snapshots:
yocto-queue@0.1.0: {}
- yocto-queue@1.2.1: {}
+ yocto-queue@1.2.2: {}
yoctocolors-cjs@2.1.3: {}
- zod-to-json-schema@3.24.6(zod@3.25.76):
+ zod-to-json-schema@3.25.0(zod@3.25.76):
dependencies:
zod: 3.25.76
- zod-validation-error@3.5.3(zod@3.25.76):
+ zod-validation-error@3.5.4(zod@3.25.76):
dependencies:
zod: 3.25.76
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.spec.cy.tsx b/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.spec.cy.tsx
index 9074182bc3..f62d29fb96 100644
--- a/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.spec.cy.tsx
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.spec.cy.tsx
@@ -439,7 +439,7 @@ describe('ScriptEditor', () => {
cy.mountWithProviders()
- cy.get('#root_name').type('test-script')
+ cy.get('#root_name').type('test-script2')
cy.contains('button', 'Save').click()
// Save button should be disabled during save
@@ -484,6 +484,16 @@ describe('ScriptEditor', () => {
it('should close drawer on successful save', () => {
const onCloseSpy = cy.spy().as('onCloseSpy')
+ // IMPORTANT: Always intercept GET /api/v1/data-hub/scripts when testing create mode
+ // ScriptEditor calls this API to check for duplicate names during validation.
+ // Without this intercept, Cypress may return mock data that conflicts with test data,
+ // causing duplicate name validation errors and disabling the Save button.
+ // Return empty array to ensure test names are always unique.
+ cy.intercept('GET', '/api/v1/data-hub/scripts*', {
+ statusCode: 200,
+ body: { items: [] },
+ }).as('getScripts')
+
cy.intercept('POST', '/api/v1/data-hub/scripts', {
statusCode: 201,
body: {
@@ -497,7 +507,17 @@ describe('ScriptEditor', () => {
cy.mountWithProviders()
+ // Wait for scripts to load
+ cy.wait('@getScripts')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
cy.get('#root_name').type('test-script')
+
+ // Wait for form to mark as dirty and Save button to be enabled
+ cy.getByTestId('save-script-button').should('not.be.disabled')
+
cy.contains('button', 'Save').click()
cy.wait('@createScript')
@@ -507,4 +527,329 @@ describe('ScriptEditor', () => {
cy.get('@onCloseSpy').should('have.been.calledOnce')
})
})
+
+ describe('JavaScript Validation (TypeScript Compiler)', () => {
+ beforeEach(() => {
+ cy.viewport(1200, 900)
+ })
+
+ it('should display syntax error when missing closing brace', () => {
+ cy.mountWithProviders()
+
+ // Enter script name
+ cy.get('#root_name').type('syntax-error-script')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter invalid JavaScript (missing closing brace)
+ cy.window().then((win) => {
+ // @ts-ignore
+ const monaco = win.monaco
+ expect(monaco).to.exist
+ // @ts-ignore
+ const editors = monaco.editor.getEditors()
+ const editor = editors[0]
+ editor.setValue('function transform(publish, context) {')
+ })
+
+ // Trigger validation by clicking elsewhere
+ cy.get('#root_name').click()
+
+ // Verify error appears in error list at top of form
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+ cy.get('form#script-editor-form [role="alert"]').should('contain', "'}' expected")
+
+ // Verify save button is disabled
+ cy.getByTestId('save-script-button').should('be.disabled')
+ })
+
+ it('should clear validation error when code is fixed', () => {
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('fix-error-script')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter invalid code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function transform(publish, context) {')
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Verify error appears - scope to form and scroll into view
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+ cy.getByTestId('save-script-button').should('be.disabled')
+
+ // Fix the code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function transform(publish, context) { return publish; }')
+ })
+
+ // Trigger validation again
+ cy.get('#root_name').click()
+
+ // Verify error is cleared
+ cy.get('form#script-editor-form [role="alert"]').should('not.exist')
+
+ // Verify save button is enabled
+ cy.getByTestId('save-script-button').should('not.be.disabled')
+ })
+
+ it('should display syntax error for unclosed string', () => {
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('unclosed-string-script')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter code with unclosed string
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function transform(publish, context) { const x = "unclosed')
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Verify error appears - scope to form
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+
+ // Verify save button is disabled
+ cy.getByTestId('save-script-button').should('be.disabled')
+ })
+
+ it('should allow valid JavaScript code', () => {
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('valid-script')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter valid complex code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue(`function transform(publish, context) {
+ const result = {
+ ...publish,
+ topic: publish.topic + '/processed',
+ timestamp: context.timestamp
+ };
+ return result;
+}`)
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Verify no errors in form
+ cy.get('form#script-editor-form [role="alert"]').should('not.exist')
+
+ // Verify save button is enabled
+ cy.getByTestId('save-script-button').should('not.be.disabled')
+ })
+
+ it('should validate on every code change', () => {
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('changing-script')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Start with invalid code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function test() {')
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Verify error appears
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+
+ // Type more invalid code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function test( {')
+ })
+
+ // Trigger validation
+ cy.get('#root_description').click()
+
+ // Error should still be present (different error)
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+
+ // Fix code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function test() { return true; }')
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Error should be cleared
+ cy.get('form#script-editor-form [role="alert"]').should('not.exist')
+ })
+
+ it('should show validation error even with valid name', () => {
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('valid-name-invalid-code')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter invalid code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('const x =')
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Verify error appears
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+
+ // Save button should be disabled despite valid name
+ cy.getByTestId('save-script-button').should('be.disabled')
+ })
+
+ it('should show both name duplicate error and JS validation error', () => {
+ const existingScripts = [
+ {
+ id: 'existing-script',
+ functionType: Script.functionType.TRANSFORMATION as Script.functionType,
+ source: btoa('function transform(publish, context) { return publish; }'),
+ version: 1,
+ createdAt: '2025-11-26T10:00:00Z',
+ },
+ ]
+
+ cy.intercept('GET', '/api/v1/data-hub/scripts*', {
+ statusCode: 200,
+ body: { items: existingScripts },
+ }).as('getScripts')
+
+ cy.mountWithProviders()
+
+ cy.wait('@getScripts')
+
+ // Enter duplicate name
+ cy.get('#root_name').type('existing-script')
+ cy.get('#root_name').blur()
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter invalid JavaScript
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function bad() {')
+ })
+
+ // Trigger validation
+ cy.get('#root_description').click()
+
+ // Both errors should be visible in error list
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+ cy.get('form#script-editor-form [role="alert"]').should('contain', 'existing-script')
+ cy.get('form#script-editor-form [role="alert"]').should('contain', "'}' expected")
+
+ // Save button should be disabled
+ cy.getByTestId('save-script-button').should('be.disabled')
+ })
+
+ it('should persist validation error when changing other fields', () => {
+ cy.mountWithProviders()
+
+ cy.get('#root_name').type('persist-error-script')
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Enter invalid code
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function test() {')
+ })
+
+ // Trigger validation
+ cy.get('#root_name').click()
+
+ // Verify error appears
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+ cy.get('form#script-editor-form [role="alert"]').should('contain', "'}' expected")
+
+ // Change description field
+ cy.get('#root_description').type('Some description')
+
+ // Error should still be visible (not wiped out)
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+ cy.get('form#script-editor-form [role="alert"]').should('contain', "'}' expected")
+
+ // Save button should still be disabled
+ cy.getByTestId('save-script-button').should('be.disabled')
+ })
+
+ it('should validate in modify mode', () => {
+ const mockScript: Script = {
+ id: 'test-script',
+ version: 1,
+ functionType: Script.functionType.TRANSFORMATION,
+ source: btoa('function transform(publish, context) { return publish; }'),
+ description: 'Test script',
+ createdAt: '2025-11-26T10:00:00Z',
+ }
+
+ cy.mountWithProviders()
+
+ // Wait for Monaco to load
+ cy.get('.monaco-editor', { timeout: 10000 }).should('be.visible')
+
+ // Modify code to be invalid
+ cy.window().then((win) => {
+ // @ts-ignore
+ const editors = win.monaco.editor.getEditors()
+ editors[0].setValue('function invalid() {')
+ })
+
+ // Trigger validation
+ cy.get('#root_description').click()
+
+ // Verify error appears
+ cy.get('form#script-editor-form [role="alert"]').scrollIntoView()
+ cy.get('form#script-editor-form [role="alert"]').should('be.visible')
+
+ // Save button should be disabled
+ cy.getByTestId('save-script-button').should('be.disabled')
+ })
+ })
})
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.tsx b/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.tsx
index 85114660f6..3bcd3f901d 100644
--- a/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.tsx
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/editors/ScriptEditor.tsx
@@ -28,6 +28,7 @@ import { MOCK_FUNCTION_SCHEMA } from '@datahub/designer/script/FunctionData.ts'
import { ResourceWorkingVersion } from '@datahub/types.ts'
import type { FunctionData } from '@datahub/types.ts'
import { dataHubToastOption } from '@datahub/utils/toast.utils.ts'
+import { validateJavaScriptSync } from '@datahub/components/forms/monaco/validation'
const MOCK_JAVASCRIPT_SOURCE = `function transform(publish, context) {
// Your transformation logic here
@@ -118,15 +119,12 @@ export const ScriptEditor: FC = ({ isOpen, onClose, script })
}
}
- // Validate JavaScript syntax using browser's Function constructor
+ // Validate JavaScript syntax using TypeScript Compiler API (synchronous, safe)
if (sourceCode) {
- // TODO[NVL] THis is prone to code injection attacks - we need to utilise Monaco's built-in syntax checking instead
- // try {
- // // Try to parse the JavaScript code - Function constructor will throw SyntaxError if invalid
- // new Function(sourceCode)
- // } catch (e) {
- // errors.sourceCode?.addError((e as SyntaxError).message)
- // }
+ const jsError = validateJavaScriptSync(sourceCode)
+ if (jsError) {
+ errors.sourceCode?.addError(jsError)
+ }
}
return errors
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/CodeEditor.Protobuf.spec.cy.tsx b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/CodeEditor.Protobuf.spec.cy.tsx
index 2819ad7ecd..ad24dad8af 100644
--- a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/CodeEditor.Protobuf.spec.cy.tsx
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/CodeEditor.Protobuf.spec.cy.tsx
@@ -1,6 +1,7 @@
///
import type { Monaco } from '@monaco-editor/react'
+import type { languages } from 'monaco-editor'
import type { WidgetProps } from '@rjsf/utils'
import { ProtoSchemaEditor } from '@datahub/components/forms/CodeEditor.tsx'
import {
@@ -63,7 +64,7 @@ message Person {
const monaco = win.monaco as Monaco
// Check if proto language is registered
- const languages = monaco.languages.getLanguages()
+ const languages: languages.ILanguageExtensionPoint[] = monaco.languages.getLanguages()
const protoLang = languages.find((lang) => lang.id === 'proto' || lang.id === 'protobuf')
expect(protoLang).to.exist
@@ -204,7 +205,7 @@ message Person {
const monaco = win.monaco as Monaco
// Get language configuration for proto
- const languages = monaco.languages.getLanguages()
+ const languages: languages.ILanguageExtensionPoint[] = monaco.languages.getLanguages() //
const protoLang = languages.find((lang) => lang.id === 'proto')
if (protoLang) {
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/datahub-commands.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/datahub-commands.ts
index 36e9cf9e08..f270d4a88b 100644
--- a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/datahub-commands.ts
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/datahub-commands.ts
@@ -64,7 +64,7 @@ export const addDataHubActionsToEditor = (editor: editor.IStandaloneCodeEditor,
*/
export const registerDataHubCodeActions = (monaco: MonacoInstance) => {
monaco.languages.registerCodeActionProvider('javascript', {
- provideCodeActions: (model) => {
+ provideCodeActions: (model: editor.ITextModel) => {
const isEmpty = model.getValue().trim() === ''
if (!isEmpty) {
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/protobuf.config.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/protobuf.config.ts
index 2412c25656..a9a78cee44 100644
--- a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/protobuf.config.ts
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/languages/protobuf.config.ts
@@ -1,4 +1,5 @@
import debug from 'debug'
+import type { languages } from 'monaco-editor'
import type { MonacoInstance } from '../types'
const debugLogger = debug('DataHub:monaco:protobuf')
@@ -6,7 +7,7 @@ const debugLogger = debug('DataHub:monaco:protobuf')
* Check if Monaco has built-in protobuf support
*/
const hasProtobufSupport = (monaco: MonacoInstance): boolean => {
- const languages = monaco.languages.getLanguages()
+ const languages: languages.ILanguageExtensionPoint[] = monaco.languages.getLanguages()
return languages.some((lang) => lang.id === 'proto' || lang.id === 'protobuf')
}
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/index.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/index.ts
new file mode 100644
index 0000000000..3438bc74e9
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/index.ts
@@ -0,0 +1,11 @@
+export {
+ validateJavaScript,
+ formatValidationError,
+ hasSyntaxErrors,
+ type ValidationResult,
+ type ValidationError,
+} from './javascriptValidator'
+
+export { useJavaScriptValidation } from './useJavaScriptValidation'
+
+export { validateJavaScriptSync, validateJavaScriptWithTypes } from './tsValidator'
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/javascriptValidator.spec.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/javascriptValidator.spec.ts
new file mode 100644
index 0000000000..dfe0eb333a
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/javascriptValidator.spec.ts
@@ -0,0 +1,275 @@
+import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
+import type { Monaco } from '@monaco-editor/react'
+import type * as monacoType from 'monaco-editor'
+import { validateJavaScript, formatValidationError, hasSyntaxErrors } from './javascriptValidator'
+
+describe('javascriptValidator', () => {
+ let mockMonaco: Monaco
+ let mockModel: monacoType.editor.ITextModel
+ let modelDisposeSpy: ReturnType
+
+ beforeEach(() => {
+ modelDisposeSpy = vi.fn()
+
+ // Create minimal mock model that satisfies ITextModel interface
+ mockModel = {
+ uri: { toString: () => 'inmemory://model/validation.js' } as monacoType.Uri,
+ dispose: modelDisposeSpy,
+ getValue: vi.fn(() => ''),
+ getLineCount: vi.fn(() => 1),
+ getLineContent: vi.fn(() => ''),
+ getLineLength: vi.fn(() => 0),
+ getLineMinColumn: vi.fn(() => 1),
+ getLineMaxColumn: vi.fn(() => 1),
+ getLineFirstNonWhitespaceColumn: vi.fn(() => 1),
+ getLineLastNonWhitespaceColumn: vi.fn(() => 1),
+ } as unknown as monacoType.editor.ITextModel
+
+ // Create Monaco mock with proper types
+ mockMonaco = {
+ Uri: {
+ parse: vi.fn((uri: string) => ({ toString: () => uri }) as monacoType.Uri),
+ },
+ editor: {
+ createModel: vi.fn((_code: string, _language: string, uri: monacoType.Uri) => {
+ return {
+ ...mockModel,
+ uri,
+ }
+ }),
+ getModel: vi.fn(() => null),
+ getModelMarkers: vi.fn(() => []),
+ },
+ MarkerSeverity: {
+ Error: 8,
+ Warning: 4,
+ Info: 2,
+ Hint: 1,
+ },
+ } as unknown as Monaco
+ })
+
+ afterEach(() => {
+ vi.clearAllMocks()
+ })
+
+ describe('validateJavaScript', () => {
+ it('should validate correct JavaScript code', async () => {
+ const code = 'function test() { return true; }'
+
+ const result = await validateJavaScript(mockMonaco, code)
+
+ expect(result.isValid).toBe(true)
+ expect(result.errors).toHaveLength(0)
+ expect(result.warnings).toHaveLength(0)
+ expect(mockMonaco.editor.createModel).toHaveBeenCalledWith(code, 'javascript', expect.anything())
+ })
+
+ it('should detect syntax errors', async () => {
+ const code = 'function test() {'
+ const mockMarkers = [
+ {
+ message: "'}' expected.",
+ startLineNumber: 1,
+ startColumn: 18,
+ severity: mockMonaco.MarkerSeverity.Error,
+ code: '1005',
+ },
+ ]
+
+ vi.mocked(mockMonaco.editor.getModelMarkers).mockReturnValue(mockMarkers as never)
+
+ const result = await validateJavaScript(mockMonaco, code)
+
+ expect(result.isValid).toBe(false)
+ expect(result.errors).toHaveLength(1)
+ expect(result.errors[0]).toEqual({
+ message: "'}' expected.",
+ line: 1,
+ column: 18,
+ severity: 'error',
+ code: '1005',
+ })
+ })
+
+ it('should handle warnings separately from errors', async () => {
+ const code = 'var x = 1; var x = 2;'
+ const mockMarkers = [
+ {
+ message: "Cannot redeclare block-scoped variable 'x'.",
+ startLineNumber: 1,
+ startColumn: 16,
+ severity: mockMonaco.MarkerSeverity.Error,
+ code: '2451',
+ },
+ {
+ message: "'x' is declared but its value is never read.",
+ startLineNumber: 1,
+ startColumn: 5,
+ severity: mockMonaco.MarkerSeverity.Warning,
+ code: '6133',
+ },
+ ]
+
+ vi.mocked(mockMonaco.editor.getModelMarkers).mockReturnValue(mockMarkers as never)
+
+ const result = await validateJavaScript(mockMonaco, code)
+
+ expect(result.isValid).toBe(false) // Has errors
+ expect(result.errors).toHaveLength(1)
+ expect(result.warnings).toHaveLength(1)
+ expect(result.errors[0].severity).toBe('error')
+ expect(result.warnings[0].severity).toBe('warning')
+ })
+
+ it('should dispose temporary model after validation', async () => {
+ const code = 'function test() { return true; }'
+
+ await validateJavaScript(mockMonaco, code)
+
+ expect(modelDisposeSpy).toHaveBeenCalled()
+ })
+
+ it('should dispose existing model before creating new one', async () => {
+ const existingModel = {
+ dispose: vi.fn(),
+ } as unknown as monacoType.editor.ITextModel
+
+ vi.mocked(mockMonaco.editor.getModel).mockReturnValue(existingModel)
+
+ const code = 'function test() { return true; }'
+ await validateJavaScript(mockMonaco, code)
+
+ expect(existingModel.dispose).toHaveBeenCalled()
+ })
+
+ it('should use custom URI if provided', async () => {
+ const code = 'function test() {}'
+ const customUri = 'inmemory://custom/path.js'
+
+ await validateJavaScript(mockMonaco, code, customUri)
+
+ expect(mockMonaco.Uri.parse).toHaveBeenCalledWith(customUri)
+ })
+
+ it('should handle empty code', async () => {
+ const code = ''
+
+ const result = await validateJavaScript(mockMonaco, code)
+
+ expect(result.isValid).toBe(true)
+ expect(result.errors).toHaveLength(0)
+ })
+
+ it('should validate DataHub transform function signature', async () => {
+ const code = 'function transform(publish, context) { return publish; }'
+
+ const result = await validateJavaScript(mockMonaco, code)
+
+ expect(result.isValid).toBe(true)
+ expect(mockMonaco.editor.createModel).toHaveBeenCalledWith(code, 'javascript', expect.anything())
+ })
+
+ it('should handle multiple syntax errors', async () => {
+ const code = 'function test() { const x = '
+ const mockMarkers = [
+ {
+ message: 'Expression expected.',
+ startLineNumber: 1,
+ startColumn: 29,
+ severity: mockMonaco.MarkerSeverity.Error,
+ code: '1109',
+ },
+ {
+ message: "'}' expected.",
+ startLineNumber: 1,
+ startColumn: 29,
+ severity: mockMonaco.MarkerSeverity.Error,
+ code: '1005',
+ },
+ ]
+
+ vi.mocked(mockMonaco.editor.getModelMarkers).mockReturnValue(mockMarkers as never)
+
+ const result = await validateJavaScript(mockMonaco, code)
+
+ expect(result.isValid).toBe(false)
+ expect(result.errors).toHaveLength(2)
+ })
+ })
+
+ describe('formatValidationError', () => {
+ it('should format error with line and column', () => {
+ const error = {
+ message: "'}' expected.",
+ line: 1,
+ column: 18,
+ severity: 'error' as const,
+ code: '1005',
+ }
+
+ const formatted = formatValidationError(error)
+
+ expect(formatted).toBe("Line 1, Column 18: '}' expected.")
+ })
+
+ it('should handle multi-line errors', () => {
+ const error = {
+ message: 'Unexpected token',
+ line: 42,
+ column: 15,
+ severity: 'error' as const,
+ }
+
+ const formatted = formatValidationError(error)
+
+ expect(formatted).toBe('Line 42, Column 15: Unexpected token')
+ })
+ })
+
+ describe('hasSyntaxErrors', () => {
+ it('should return true when errors exist', () => {
+ const result = {
+ isValid: false,
+ errors: [
+ {
+ message: 'Error',
+ line: 1,
+ column: 1,
+ severity: 'error' as const,
+ },
+ ],
+ warnings: [],
+ }
+
+ expect(hasSyntaxErrors(result)).toBe(true)
+ })
+
+ it('should return false when no errors exist', () => {
+ const result = {
+ isValid: true,
+ errors: [],
+ warnings: [],
+ }
+
+ expect(hasSyntaxErrors(result)).toBe(false)
+ })
+
+ it('should return false when only warnings exist', () => {
+ const result = {
+ isValid: true,
+ errors: [],
+ warnings: [
+ {
+ message: 'Warning',
+ line: 1,
+ column: 1,
+ severity: 'warning' as const,
+ },
+ ],
+ }
+
+ expect(hasSyntaxErrors(result)).toBe(false)
+ })
+ })
+})
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/javascriptValidator.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/javascriptValidator.ts
new file mode 100644
index 0000000000..48f411e2fc
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/javascriptValidator.ts
@@ -0,0 +1,151 @@
+import type { Monaco } from '@monaco-editor/react'
+import type monaco from 'monaco-editor'
+
+export interface ValidationResult {
+ isValid: boolean
+ errors: ValidationError[]
+ warnings: ValidationError[]
+}
+
+export interface ValidationError {
+ message: string
+ line: number
+ column: number
+ severity: 'error' | 'warning' | 'info'
+ code?: string
+}
+
+/**
+ * Validate JavaScript code using Monaco's TypeScript language service
+ * without executing the code or requiring an active editor instance.
+ *
+ * This is a secure alternative to using `new Function()` or `eval()`,
+ * as it only performs static analysis without executing any code.
+ *
+ * @param monacoInstance - The Monaco instance (from useMonaco hook)
+ * @param code - The JavaScript code to validate
+ * @param uri - Optional URI for the temporary model (default: inmemory://model/validation.js)
+ * @returns Promise with validation results
+ *
+ * @example
+ * ```typescript
+ * const result = await validateJavaScript(monaco, 'function test() { return true; }')
+ * if (!result.isValid) {
+ * console.error('Validation errors:', result.errors)
+ * }
+ * ```
+ */
+export const validateJavaScript = async (
+ monacoInstance: Monaco,
+ code: string,
+ uri: string = 'inmemory://model/validation.js'
+): Promise => {
+ let model: monaco.editor.ITextModel | null = null
+
+ try {
+ const modelUri = monacoInstance.Uri.parse(uri)
+
+ // Check if model already exists and dispose it
+ const existingModel = monacoInstance.editor.getModel(modelUri)
+ if (existingModel) {
+ existingModel.dispose()
+ }
+
+ // Create temporary model for validation
+ model = monacoInstance.editor.createModel(code, 'javascript', modelUri)
+
+ if (model) {
+ // Wait for TypeScript language service to process the model
+ // The language service runs in a Web Worker, so we need to wait for it to analyze the code
+ // We use a Promise-based approach to wait for markers to be available
+ await waitForValidation(monacoInstance, model)
+ }
+
+ // Get diagnostics from Monaco
+ const markers = monacoInstance.editor.getModelMarkers({
+ resource: model?.uri,
+ })
+
+ // Separate errors and warnings
+ const errors: ValidationError[] = []
+ const warnings: ValidationError[] = []
+
+ markers.forEach((marker: monaco.editor.IMarker) => {
+ const error: ValidationError = {
+ message: marker.message,
+ line: marker.startLineNumber,
+ column: marker.startColumn,
+ severity:
+ marker.severity === monacoInstance.MarkerSeverity.Error
+ ? 'error'
+ : marker.severity === monacoInstance.MarkerSeverity.Warning
+ ? 'warning'
+ : 'info',
+ code: marker.code?.toString(),
+ }
+
+ if (marker.severity === monacoInstance.MarkerSeverity.Error) {
+ errors.push(error)
+ } else if (marker.severity === monacoInstance.MarkerSeverity.Warning) {
+ warnings.push(error)
+ }
+ })
+
+ return {
+ isValid: errors.length === 0,
+ errors,
+ warnings,
+ }
+ } finally {
+ // Clean up: dispose the temporary model to prevent memory leaks
+ if (model) {
+ model.dispose()
+ }
+ }
+}
+
+/**
+ * Wait for Monaco's TypeScript language service to complete validation
+ * Uses polling with a timeout to detect when markers are available
+ */
+const waitForValidation = async (monacoInstance: Monaco, model: monaco.editor.ITextModel): Promise => {
+ const maxWaitTime = 2000 // 2 seconds max
+ const checkInterval = 50 // Check every 50ms
+ const startTime = Date.now()
+
+ return new Promise((resolve) => {
+ const checkMarkers = () => {
+ const markers = monacoInstance.editor.getModelMarkers({
+ resource: model.uri,
+ })
+
+ // If we have markers (errors/warnings) or if enough time has passed for validation
+ // Note: Valid code will have 0 markers, so we wait a bit to be sure
+ const elapsed = Date.now() - startTime
+ const hasMarkers = markers.length > 0
+ const hasWaitedMinimum = elapsed >= 100 // Minimum 100ms for language service
+ const hasTimedOut = elapsed >= maxWaitTime
+
+ if (hasMarkers || hasWaitedMinimum || hasTimedOut) {
+ resolve()
+ } else {
+ setTimeout(checkMarkers, checkInterval)
+ }
+ }
+ checkMarkers()
+ })
+}
+
+/**
+ * Format validation error for display in RJSF or other UI
+ */
+export const formatValidationError = (error: ValidationError): string => {
+ return `Line ${error.line}, Column ${error.column}: ${error.message}`
+}
+
+/**
+ * Check if code has any syntax errors (ignoring warnings)
+ */
+export const hasSyntaxErrors = (result: ValidationResult): boolean => {
+ return result.errors.length > 0
+}
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/tsValidator.spec.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/tsValidator.spec.ts
new file mode 100644
index 0000000000..f3df92ad29
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/tsValidator.spec.ts
@@ -0,0 +1,468 @@
+import { describe, it, expect } from 'vitest'
+import { validateJavaScriptSync, validateJavaScriptWithTypes } from './tsValidator'
+
+describe('tsValidator', () => {
+ describe('validateJavaScriptSync', () => {
+ describe('valid code', () => {
+ it('should return null for valid JavaScript', () => {
+ const code = 'function test() { return true; }'
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null for valid function with parameters', () => {
+ const code = `function transform(publish, context) {
+ return publish;
+ }`
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null for complex valid code', () => {
+ const code = `function transform(publish, context) {
+ const result = {
+ ...publish,
+ topic: publish.topic + '/processed',
+ timestamp: context.timestamp
+ };
+ return result;
+ }`
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null for valid arrow function', () => {
+ const code = 'const test = (x) => x * 2;'
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null for ES6+ features', () => {
+ const code = `
+ const [a, b] = [1, 2];
+ const obj = { a, b };
+ const { a: x } = obj;
+ `
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+ })
+
+ describe('syntax errors', () => {
+ it('should detect missing closing brace', () => {
+ const code = 'function test() {'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ expect(result).toContain("'}' expected")
+ })
+
+ it('should detect missing closing parenthesis', () => {
+ const code = 'function test('
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ expect(result).toMatch(/expected/)
+ })
+
+ it('should detect missing semicolon in strict context', () => {
+ const code = 'const x = 1 const y = 2'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ })
+
+ it('should detect invalid syntax', () => {
+ const code = 'function test() { return; }; }'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ })
+
+ it('should detect unclosed string', () => {
+ const code = 'const x = "hello'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ })
+ })
+
+ describe('undefined variables', () => {
+ it('should allow undefined variables in non-strict mode', () => {
+ // Note: TypeScript in non-strict mode allows undefined variables in plain JS
+ // This is expected JavaScript behavior
+ const code = 'function test() { return x; }'
+ const result = validateJavaScriptSync(code)
+
+ // In non-strict JavaScript mode, this is allowed
+ expect(result).toBeNull()
+ })
+
+ it('should allow typo in parameter name in non-strict mode', () => {
+ // TypeScript compiler in non-strict JS mode doesn't flag this as error
+ const code = `function transform(publish, context) {
+ return publishe;
+ }`
+ const result = validateJavaScriptSync(code)
+
+ // This is valid JavaScript syntax, just will be undefined at runtime
+ expect(result).toBeNull()
+ })
+
+ it('should handle undefined in nested scope', () => {
+ const code = `function test() {
+ if (true) {
+ return undefinedVar;
+ }
+ }`
+ const result = validateJavaScriptSync(code)
+
+ // Valid syntax in non-strict JavaScript
+ expect(result).toBeNull()
+ })
+ })
+
+ describe('error formatting', () => {
+ it('should format error with line and column', () => {
+ const code = 'function test() {'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ expect(result).toMatch(/Line \d+, Column \d+:/)
+ })
+
+ it('should include error message', () => {
+ const code = 'function test() {'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ expect(result).toMatch(/: .+/)
+ })
+
+ it('should use 1-based line numbers', () => {
+ const code = 'function test() {'
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ expect(result).toMatch(/Line 1,/)
+ })
+ })
+
+ describe('edge cases', () => {
+ it('should return null for empty string', () => {
+ const result = validateJavaScriptSync('')
+ expect(result).toBeNull()
+ })
+
+ it('should return null for whitespace only', () => {
+ const result = validateJavaScriptSync(' \n\t ')
+ expect(result).toBeNull()
+ })
+
+ it('should handle multi-line code', () => {
+ const code = `
+ function test() {
+ return true;
+ }
+ `
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should handle code with comments', () => {
+ const code = `
+ // This is a comment
+ function test() {
+ /* Multi-line
+ comment */
+ return true;
+ }
+ `
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should handle very long code', () => {
+ const lines = Array(100).fill('const x = 1;').join('\n')
+ const result = validateJavaScriptSync(lines)
+ expect(result).toBeNull()
+ })
+ })
+
+ describe('semantic errors', () => {
+ it('should allow const reassignment in non-strict mode', () => {
+ // TypeScript in non-strict JS mode allows this (runtime error, not compile error)
+ const code = `
+ const x = 1;
+ x = 2;
+ `
+ const result = validateJavaScriptSync(code)
+
+ // This is valid syntax, will fail at runtime
+ expect(result).toBeNull()
+ })
+
+ it('should allow let reassignment', () => {
+ const code = `
+ let x = 1;
+ x = 2;
+ `
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should allow duplicate declarations in non-strict mode', () => {
+ // In non-strict mode, this is allowed (though not recommended)
+ const code = `
+ const x = 1;
+ const x = 2;
+ `
+ const result = validateJavaScriptSync(code)
+
+ // Valid syntax in non-strict JavaScript
+ expect(result).toBeNull()
+ })
+ })
+
+ describe('performance', () => {
+ it('should validate quickly for small code', () => {
+ const code = 'function test() { return true; }'
+ const start = performance.now()
+ validateJavaScriptSync(code)
+ const duration = performance.now() - start
+
+ expect(duration).toBeLessThan(50) // Should be < 50ms
+ })
+
+ it('should validate quickly for medium code', () => {
+ const code = Array(50).fill('const x = 1;').join('\n')
+ const start = performance.now()
+ validateJavaScriptSync(code)
+ const duration = performance.now() - start
+
+ expect(duration).toBeLessThan(100)
+ })
+ })
+
+ describe('error handling', () => {
+ it('should return first error when multiple errors exist', () => {
+ const code = `
+ function test() {
+ const x = undefinedVar
+ `
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ // Should return first error (could be missing brace or undefined var)
+ expect(result).toBeTruthy()
+ })
+
+ it('should handle malformed code gracefully', () => {
+ const code = '}{]['
+ const result = validateJavaScriptSync(code)
+
+ expect(result).not.toBeNull()
+ // Should not throw, should return error message
+ expect(typeof result).toBe('string')
+ })
+ })
+ })
+
+ describe('validateJavaScriptWithTypes', () => {
+ describe('with type definitions', () => {
+ it('should return null for valid code using publish parameter', () => {
+ const code = `function transform(publish, context) {
+ return publish;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null for valid code using context parameter', () => {
+ const code = `function transform(publish, context) {
+ console.log(context.clientId);
+ return publish;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null when accessing publish properties', () => {
+ const code = `function transform(publish, context) {
+ const topic = publish.topic;
+ const payload = publish.payload;
+ const qos = publish.qos;
+ return publish;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+
+ it('should return null when accessing context properties', () => {
+ const code = `function transform(publish, context) {
+ const id = context.clientId;
+ const time = context.timestamp;
+ return publish;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+
+ it('should allow console usage', () => {
+ const code = `function transform(publish, context) {
+ console.log('Processing:', publish.topic);
+ console.error('Debug info');
+ console.warn('Warning');
+ return publish;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+ })
+
+ describe('error detection with types', () => {
+ it('should allow typo in publish parameter in non-strict mode', () => {
+ const code = `function transform(publish, context) {
+ return publishe;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+
+ it('should allow typo in context parameter', () => {
+ const code = `function transform(publish, context) {
+ return contexte.clientId;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+
+ it('should allow undefined variable with types', () => {
+ const code = `function transform(publish, context) {
+ return unknownVariable;
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+ })
+
+ describe('line number adjustment', () => {
+ it('should handle syntax errors without type definition overhead', () => {
+ const code = 'function test() {'
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).not.toBeNull()
+ expect(result).toMatch(/Line \d+,/)
+ })
+ })
+
+ describe('type definition edge cases', () => {
+ it('should handle empty code', () => {
+ const result = validateJavaScriptWithTypes('')
+ expect(result).toBeNull()
+ })
+
+ it('should handle whitespace only', () => {
+ const result = validateJavaScriptWithTypes(' ')
+ expect(result).toBeNull()
+ })
+
+ it('should handle valid code without using parameters', () => {
+ const code = `function transform(publish, context) {
+ const x = 1;
+ return { topic: 'test', payload: x, qos: 0 };
+ }`
+ const result = validateJavaScriptWithTypes(code)
+ expect(result).toBeNull()
+ })
+ })
+ })
+
+ describe('integration scenarios', () => {
+ it('should validate typical transform function', () => {
+ const code = `function transform(publish, context) {
+ const modified = {
+ ...publish,
+ topic: publish.topic + '/processed',
+ timestamp: context.timestamp
+ };
+ return modified;
+ }`
+
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should allow undefined variables in typical transform function', () => {
+ const code = `function transform(publish, context) {
+ return {
+ topic: publish.topic,
+ payload: undefinedVariable
+ };
+ }`
+
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should validate transform with conditional logic', () => {
+ const code = `function transform(publish, context) {
+ if (publish.qos > 0) {
+ return { ...publish, topic: 'high-priority' };
+ }
+ return publish;
+ }`
+
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ it('should validate transform with array operations', () => {
+ const code = `function transform(publish, context) {
+ const topics = publish.topic.split('/');
+ topics.push('processed');
+ return { ...publish, topic: topics.join('/') };
+ }`
+
+ const result = validateJavaScriptSync(code)
+ expect(result).toBeNull()
+ })
+
+ describe('comparison between sync and typed validators', () => {
+ it('should produce same results for valid code', () => {
+ const code = `function transform(publish, context) {
+ return publish;
+ }`
+
+ const syncResult = validateJavaScriptSync(code)
+ const typedResult = validateJavaScriptWithTypes(code)
+
+ expect(syncResult).toBeNull()
+ expect(typedResult).toBeNull()
+ })
+
+ it('should produce similar results for syntax errors', () => {
+ const code = 'function test() {'
+
+ const syncResult = validateJavaScriptSync(code)
+ const typedResult = validateJavaScriptWithTypes(code)
+
+ expect(syncResult).not.toBeNull()
+ expect(typedResult).not.toBeNull()
+ expect(syncResult).toContain("'}'")
+ expect(typedResult).toContain("'}'")
+ })
+
+ it('should allow undefined variables (JavaScript behavior)', () => {
+ const code = `function transform(publish, context) {
+ return publishe;
+ }`
+
+ const syncResult = validateJavaScriptSync(code)
+ const typedResult = validateJavaScriptWithTypes(code)
+
+ expect(syncResult).toBeNull()
+ expect(typedResult).toBeNull()
+ })
+ })
+ })
+})
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/tsValidator.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/tsValidator.ts
new file mode 100644
index 0000000000..4331798aad
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/tsValidator.ts
@@ -0,0 +1,136 @@
+import ts from 'typescript'
+
+/**
+ * Synchronously validate JavaScript code using TypeScript compiler
+ *
+ * This provides fast syntax validation (~10-20ms) without async complexity.
+ * Perfect for RJSF's customValidate which requires synchronous validation.
+ *
+ * Features:
+ * - Syntax error detection
+ * - Undefined variable detection
+ * - Basic semantic checking
+ * - Same error format as Monaco
+ *
+ * @param code - JavaScript code to validate
+ * @returns Formatted error message or null if valid
+ *
+ * @example
+ * ```typescript
+ * const error = validateJavaScriptSync('function test() {')
+ * // Returns: "Line 1, Column 18: '}' expected."
+ * ```
+ */
+export const validateJavaScriptSync = (code: string): string | null => {
+ if (!code || code.trim() === '') {
+ return null
+ }
+
+ try {
+ // Transpile with diagnostics enabled
+ const result = ts.transpileModule(code, {
+ reportDiagnostics: true,
+ compilerOptions: {
+ target: ts.ScriptTarget.ES2015,
+ module: ts.ModuleKind.ESNext,
+ noEmit: true,
+ strict: false,
+ noImplicitAny: false,
+ allowJs: true,
+ checkJs: true, // Enable basic semantic checking for undefined variables
+ skipLibCheck: true,
+ },
+ })
+
+ // Filter for errors only (ignore warnings)
+ const errors = result.diagnostics?.filter((d) => d.category === ts.DiagnosticCategory.Error)
+
+ if (errors && errors.length > 0) {
+ const firstError = errors[0]
+
+ // Get line and column info
+ let line = 1
+ let column = 1
+
+ if (firstError.file && firstError.start !== undefined) {
+ const lineAndChar = firstError.file.getLineAndCharacterOfPosition(firstError.start)
+ line = lineAndChar.line + 1 // Convert to 1-based
+ column = lineAndChar.character + 1 // Convert to 1-based
+ }
+
+ // Format error message (same format as Monaco)
+ const message = ts.flattenDiagnosticMessageText(firstError.messageText, '\n')
+ return `Line ${line}, Column ${column}: ${message}`
+ }
+
+ return null
+ } catch (error) {
+ // Catch any unexpected errors during validation
+ console.error('TypeScript validation error:', error)
+ return 'Validation error: Unable to parse code'
+ }
+}
+
+/**
+ * Enhanced version with type definitions for function parameters
+ *
+ * Validates code with knowledge of available parameters (publish, context).
+ * Useful for catching typos in parameter names.
+ *
+ * @param code - JavaScript code to validate
+ * @returns Formatted error message or null if valid
+ *
+ * @example
+ * ```typescript
+ * const error = validateJavaScriptWithTypes(
+ * 'function transform(publish, context) { return publishe; }'
+ * )
+ * // Returns: "Line 1, Column 48: Cannot find name 'publishe'. Did you mean 'publish'?"
+ * ```
+ */
+export const validateJavaScriptWithTypes = (code: string): string | null => {
+ // Define available function parameters
+ const typeDefinitions = `
+ // Available function parameters
+ declare const publish: {
+ topic: string;
+ payload: unknown;
+ qos: 0 | 1 | 2;
+ };
+
+ declare const context: {
+ clientId: string;
+ timestamp: number;
+ };
+
+ // Common globals (if needed)
+ declare const console: {
+ log(...args: any[]): void;
+ error(...args: any[]): void;
+ warn(...args: any[]): void;
+ };
+ `
+
+ // Combine type definitions with user code
+ const fullCode = typeDefinitions + '\n\n' + code
+
+ // Validate combined code
+ const error = validateJavaScriptSync(fullCode)
+
+ if (!error) return null
+
+ // Adjust line numbers to account for type definitions
+ const typeDefLines = typeDefinitions.split('\n').length
+ const match = error.match(/^Line (\d+),/)
+
+ if (match) {
+ const originalLine = parseInt(match[1])
+ const adjustedLine = originalLine - typeDefLines
+
+ if (adjustedLine > 0) {
+ return error.replace(/^Line \d+,/, `Line ${adjustedLine},`)
+ }
+ }
+
+ return error
+}
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/useJavaScriptValidation.spec.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/useJavaScriptValidation.spec.ts
new file mode 100644
index 0000000000..76251e4d67
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/useJavaScriptValidation.spec.ts
@@ -0,0 +1,149 @@
+import { describe, it, expect, vi } from 'vitest'
+import { renderHook } from '@testing-library/react'
+import { useJavaScriptValidation } from './useJavaScriptValidation'
+import * as monacoReact from '@monaco-editor/react'
+import type { Monaco } from '@monaco-editor/react'
+
+// Mock @monaco-editor/react
+vi.mock('@monaco-editor/react', () => ({
+ useMonaco: vi.fn(),
+}))
+
+// Mock the validator
+vi.mock('./javascriptValidator', () => ({
+ validateJavaScript: vi.fn(),
+}))
+
+describe('useJavaScriptValidation', () => {
+ let mockMonaco: Monaco
+
+ beforeEach(() => {
+ // Minimal Monaco mock - only what's needed for the hook
+ mockMonaco = {
+ editor: {
+ createModel: vi.fn(),
+ getModel: vi.fn(),
+ getModelMarkers: vi.fn(),
+ },
+ Uri: {
+ parse: vi.fn(),
+ },
+ MarkerSeverity: {
+ Error: 8,
+ Warning: 4,
+ Info: 2,
+ Hint: 1,
+ },
+ } as unknown as Monaco
+ })
+
+ afterEach(() => {
+ vi.clearAllMocks()
+ })
+
+ it('should return validate function and isReady state', () => {
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(mockMonaco)
+
+ const { result } = renderHook(() => useJavaScriptValidation())
+
+ expect(result.current).toHaveProperty('validate')
+ expect(result.current).toHaveProperty('isReady')
+ expect(typeof result.current.validate).toBe('function')
+ expect(result.current.isReady).toBe(true)
+ })
+
+ it('should indicate not ready when Monaco is not loaded', () => {
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(null)
+
+ const { result } = renderHook(() => useJavaScriptValidation())
+
+ expect(result.current.isReady).toBe(false)
+ })
+
+ it('should call validateJavaScript when validate is called with Monaco loaded', async () => {
+ const { validateJavaScript } = await import('./javascriptValidator')
+ vi.mocked(validateJavaScript).mockResolvedValue({
+ isValid: true,
+ errors: [],
+ warnings: [],
+ })
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(mockMonaco)
+
+ const { result } = renderHook(() => useJavaScriptValidation())
+
+ const code = 'function test() { return true; }'
+ await result.current.validate(code)
+
+ expect(validateJavaScript).toHaveBeenCalledWith(mockMonaco, code)
+ })
+
+ it('should return valid result when Monaco is not loaded', async () => {
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(null)
+
+ const { result } = renderHook(() => useJavaScriptValidation())
+
+ const code = 'function test() { return true; }'
+ const validationResult = await result.current.validate(code)
+
+ expect(validationResult.isValid).toBe(true)
+ expect(validationResult.errors).toHaveLength(0)
+ expect(validationResult.warnings).toHaveLength(0)
+ })
+
+ it('should return validation errors when code is invalid', async () => {
+ const { validateJavaScript } = await import('./javascriptValidator')
+ const mockErrors = [
+ {
+ message: "'}' expected.",
+ line: 1,
+ column: 18,
+ severity: 'error' as const,
+ },
+ ]
+ vi.mocked(validateJavaScript).mockResolvedValue({
+ isValid: false,
+ errors: mockErrors,
+ warnings: [],
+ })
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(mockMonaco)
+
+ const { result } = renderHook(() => useJavaScriptValidation())
+
+ const code = 'function test() {'
+ const validationResult = await result.current.validate(code)
+
+ expect(validationResult.isValid).toBe(false)
+ expect(validationResult.errors).toEqual(mockErrors)
+ })
+
+ it('should maintain stable validate function reference', () => {
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(mockMonaco)
+
+ const { result, rerender } = renderHook(() => useJavaScriptValidation())
+
+ const firstValidate = result.current.validate
+
+ rerender()
+
+ const secondValidate = result.current.validate
+
+ expect(firstValidate).toBe(secondValidate)
+ })
+
+ it('should update validate function when Monaco instance changes', () => {
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(null)
+
+ const { result, rerender } = renderHook(() => useJavaScriptValidation())
+
+ const firstValidate = result.current.validate
+ expect(result.current.isReady).toBe(false)
+
+ // Monaco loads
+ vi.mocked(monacoReact.useMonaco).mockReturnValue(mockMonaco)
+ rerender()
+
+ const secondValidate = result.current.validate
+ expect(result.current.isReady).toBe(true)
+ expect(firstValidate).not.toBe(secondValidate)
+ })
+})
diff --git a/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/useJavaScriptValidation.ts b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/useJavaScriptValidation.ts
new file mode 100644
index 0000000000..b8529e113c
--- /dev/null
+++ b/hivemq-edge-frontend/src/extensions/datahub/components/forms/monaco/validation/useJavaScriptValidation.ts
@@ -0,0 +1,56 @@
+import { useCallback } from 'react'
+import { useMonaco } from '@monaco-editor/react'
+import { validateJavaScript, type ValidationResult } from './javascriptValidator'
+
+/**
+ * Hook to validate JavaScript code using Monaco's TypeScript language service
+ *
+ * This hook provides a safe way to validate JavaScript without executing it,
+ * using Monaco Editor's built-in validation capabilities.
+ *
+ * @returns Object with validate function and Monaco ready state
+ *
+ * @example
+ * ```typescript
+ * const { validate, isReady } = useJavaScriptValidation()
+ *
+ * const handleValidate = async (code: string) => {
+ * if (!isReady) {
+ * console.warn('Monaco not ready yet')
+ * return
+ * }
+ *
+ * const result = await validate(code)
+ * if (!result.isValid) {
+ * console.error('Validation failed:', result.errors)
+ * }
+ * }
+ * ```
+ */
+export const useJavaScriptValidation = () => {
+ const monaco = useMonaco()
+
+ const validate = useCallback(
+ async (code: string): Promise => {
+ if (!monaco) {
+ // Monaco not loaded yet - return valid (graceful degradation)
+ // This allows forms to work even if Monaco hasn't loaded yet
+ return { isValid: true, errors: [], warnings: [] }
+ }
+
+ return validateJavaScript(monaco, code)
+ },
+ [monaco]
+ )
+
+ return {
+ /**
+ * Validate JavaScript code and return validation results
+ */
+ validate,
+ /**
+ * Whether Monaco is loaded and ready for validation
+ */
+ isReady: !!monaco,
+ }
+}