diff --git a/apps/admin-x-settings/src/components/settings/advanced/labs.tsx b/apps/admin-x-settings/src/components/settings/advanced/labs.tsx index b6eec972326..4891adbf5db 100644 --- a/apps/admin-x-settings/src/components/settings/advanced/labs.tsx +++ b/apps/admin-x-settings/src/components/settings/advanced/labs.tsx @@ -1,19 +1,24 @@ import BetaFeatures from './labs/beta-features'; import LabsBubbles from '../../../assets/images/labs-bg.svg'; +import PluginsManager from './labs/plugins'; import PrivateFeatures from './labs/private-features'; import React, {useState} from 'react'; import TopLevelGroup from '../../top-level-group'; import {Button, SettingGroupHeader, type Tab, TabView, withErrorBoundary} from '@tryghost/admin-x-design-system'; +import {getSettingValue} from '@tryghost/admin-x-framework/api/settings'; import {useAutoExpandable} from '../../../hooks/use-auto-expandable'; import {useGlobalData} from '../../providers/global-data-provider'; -type LabsTab = 'labs-private-features' | 'labs-beta-features'; +type LabsTab = 'labs-private-features' | 'labs-beta-features' | 'labs-plugins'; const Labs: React.FC<{ keywords: string[] }> = ({keywords}) => { const [selectedTab, setSelectedTab] = useState('labs-beta-features'); - const {config} = useGlobalData(); + const {config, settings} = useGlobalData(); const {isOpen, openManually, closeManually} = useAutoExpandable(keywords); + const labs = JSON.parse(getSettingValue(settings, 'labs') || '{}'); + const pluginsEnabled = labs.customCardPlugins === true; + const tabs = [ { id: 'labs-beta-features', @@ -24,6 +29,11 @@ const Labs: React.FC<{ keywords: string[] }> = ({keywords}) => { id: 'labs-private-features', title: 'Private features', contents: + }), + pluginsEnabled && ({ + id: 'labs-plugins', + title: 'Card Plugins', + contents: }) ].filter(Boolean) as Tab[]; @@ -50,7 +60,7 @@ const Labs: React.FC<{ keywords: string[] }> = ({keywords}) => { testId='labs' > {isOpen ? ( - + selectedTab={selectedTab} tabs={tabs} onTabChange={setSelectedTab} diff --git a/apps/admin-x-settings/src/components/settings/advanced/labs/plugins.tsx b/apps/admin-x-settings/src/components/settings/advanced/labs/plugins.tsx new file mode 100644 index 00000000000..0109fbe1cb9 --- /dev/null +++ b/apps/admin-x-settings/src/components/settings/advanced/labs/plugins.tsx @@ -0,0 +1,294 @@ +import React, {useCallback, useEffect, useRef, useState} from 'react'; +import {Button, ConfirmationModal, SettingGroupHeader, showToast} from '@tryghost/admin-x-design-system'; +import {useGlobalData} from '../../../providers/global-data-provider'; +import {getSettingValue} from '@tryghost/admin-x-framework/api/settings'; +import {getGhostPaths} from '@tryghost/admin-x-framework/helpers'; +import NiceModal from '@ebay/nice-modal-react'; +import DOMPurify from 'dompurify'; + +const DEFAULT_ICON = ''; + +function sanitizeIcon(rawIcon: string | undefined): string { + if (!rawIcon) return DEFAULT_ICON; + const clean = DOMPurify.sanitize(rawIcon, { + ALLOWED_TAGS: ['svg', 'path', 'circle', 'rect', 'line', 'polyline', 'polygon', 'g', 'defs', 'clipPath', 'mask', 'use'], + ALLOWED_ATTR: ['d', 'viewBox', 'fill', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'xmlns', 'width', 'height', 'transform', 'cx', 'cy', 'r', 'x', 'y', 'x1', 'y1', 'x2', 'y2', 'points', 'clip-path', 'id', 'href', 'opacity', 'style'] + }); + return clean || DEFAULT_ICON; +} + +type PluginCard = { + plugin: string; + pluginVersion: string; + name: string; + label: string; + icon: string; + fields: Array<{ + key: string; + type: string; + title: string; + default?: unknown; + }>; + template: string; +}; + +const PluginCardItem: React.FC<{ + card: PluginCard; + enabled: boolean; + onDelete: (name: string) => void; + onDownload: (name: string) => Promise; + deleting: boolean; +}> = ({card, enabled, onDelete, onDownload, deleting}) => { + return ( +
+
+
+
+

{card.label}

+ + {card.plugin} v{card.pluginVersion} + + {enabled && ( + Active + )} +
+

+ {card.fields.length} field{card.fields.length !== 1 ? 's' : ''}: {card.fields.map(f => f.title).join(', ')} +

+
+
+ + +
+
+ ); +}; + +const PluginsManager: React.FC = () => { + const {settings} = useGlobalData(); + const labs = JSON.parse(getSettingValue(settings, 'labs') || '{}'); + const isEnabled = labs.customCardPlugins === true; + const [plugins, setPlugins] = useState([]); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [uploading, setUploading] = useState(false); + const [deleting, setDeleting] = useState(null); + const fileInputRef = useRef(null); + + const fetchPlugins = useCallback(async () => { + setLoading(true); + setError(null); + try { + const response = await fetch('/ghost/api/admin/plugins/cards/', { + credentials: 'include' + }); + if (!response.ok) { + throw new Error(`HTTP ${response.status}`); + } + const data = await response.json(); + setPlugins(data.plugins?.flat() || []); + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to load plugins'); + } finally { + setLoading(false); + } + }, []); + + useEffect(() => { + if (!isEnabled) { + setPlugins([]); + return; + } + fetchPlugins(); + }, [isEnabled, fetchPlugins]); + + const handleUpload = async (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (!file) return; + + setUploading(true); + setError(null); + + try { + const formData = new FormData(); + formData.append('file', file); + + const response = await fetch('/ghost/api/admin/plugins/install', { + method: 'POST', + credentials: 'include', + body: formData + }); + + if (!response.ok) { + const data = await response.json().catch(() => ({})); + throw new Error(data.errors?.[0]?.message || `HTTP ${response.status}`); + } + + // Refresh the plugin list + await fetchPlugins(); + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to install plugin'); + } finally { + setUploading(false); + if (fileInputRef.current) { + fileInputRef.current.value = ''; + } + } + }; + + const handleDelete = async (name: string) => { + NiceModal.show(ConfirmationModal, { + title: `Delete plugin "${name}"?`, + prompt: 'This will remove all its files. Posts using this plugin\'s cards will be converted to static HTML.', + okColor: 'red', + okLabel: 'Delete', + onOk: async (modal) => { + setDeleting(name); + setError(null); + + try { + const response = await fetch(`/ghost/api/admin/plugins/${name}`, { + method: 'DELETE', + credentials: 'include' + }); + + if (!response.ok) { + const data = await response.json().catch(() => ({})); + throw new Error(data.errors?.[0]?.message || `HTTP ${response.status}`); + } + + await fetchPlugins(); + showToast({title: `Plugin "${name}" deleted`, type: 'success'}); + modal?.remove(); + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to delete plugin'); + modal?.remove(); + } finally { + setDeleting(null); + } + } + }); + }; + + const handleDownload = async (name: string) => { + const {apiRoot} = getGhostPaths(); + try { + const response = await fetch(`${apiRoot}/plugins/${name}/download/`, { + credentials: 'include' + }); + if (!response.ok) { + const data = await response.json().catch(() => ({})); + throw new Error(data.errors?.[0]?.message || `HTTP ${response.status}`); + } + const blob = await response.blob(); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `${name}.zip`; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to download plugin'); + } + }; + + if (!isEnabled) { + return null; + } + + return ( +
+
+ + +
+ + {loading && ( +
+
Loading plugins...
+
+ )} + + {error && ( +
+ {error} +
+ )} + + {!loading && !error && plugins.length === 0 && ( +
+
+ + + +
+

No plugins installed

+

+ Install card plugins (.zip) to extend the editor with custom content blocks. +

+
+ )} + + {!loading && !error && plugins.length > 0 && ( +
+ {plugins.map((card, index) => ( + + ))} +
+ )} +
+ ); +}; + +export default PluginsManager; diff --git a/apps/admin-x-settings/src/components/settings/advanced/labs/private-features.tsx b/apps/admin-x-settings/src/components/settings/advanced/labs/private-features.tsx index 6488c7ebdfc..04224ea7923 100644 --- a/apps/admin-x-settings/src/components/settings/advanced/labs/private-features.tsx +++ b/apps/admin-x-settings/src/components/settings/advanced/labs/private-features.tsx @@ -71,6 +71,10 @@ const features: Feature[] = [{ title: 'Gift links', description: 'Tokenized links that let anyone read a single gated post or page in full, no account required', flag: 'giftLinks' +}, { + title: 'Custom Card Plugins', + description: 'Allow installing card plugins that extend the editor with custom content blocks like review cards, comparison tables, and more.', + flag: 'customCardPlugins' }]; const AlphaFeatures: React.FC = () => { diff --git a/ghost/admin/app/components/koenig-lexical-editor.js b/ghost/admin/app/components/koenig-lexical-editor.js index a8b57274bc1..b8a482e8cb3 100644 --- a/ghost/admin/app/components/koenig-lexical-editor.js +++ b/ghost/admin/app/components/koenig-lexical-editor.js @@ -148,6 +148,41 @@ export default class KoenigLexicalEditor extends Component { contentKey = null; defaultLinks = null; + get pluginCards() { + console.log('[KoenigEditor] pluginCards getter called'); + try { + const labs = JSON.parse(this.settings.labs || '{}'); + console.log('[KoenigEditor] labs:', labs); + if (!labs.customCardPlugins) { + console.log('[KoenigEditor] customCardPlugins not enabled'); + return []; + } + // Return cached result if available + if (this._pluginCardsLoaded) { + console.log('[KoenigEditor] returning cached:', this._pluginCards?.length); + return this._pluginCards || []; + } + // Synchronous fetch using XMLHttpRequest + const xhr = new XMLHttpRequest(); + xhr.open('GET', '/ghost/api/admin/plugins/cards/', false); + xhr.withCredentials = true; + xhr.send(); + console.log('[KoenigEditor] XHR status:', xhr.status); + if (xhr.status === 200) { + const data = JSON.parse(xhr.responseText); + this._pluginCards = data.plugins?.flat() || []; + console.log('[KoenigEditor] loaded plugins:', this._pluginCards.length); + } + } catch (e) { + console.error('[KoenigEditor] error loading plugins:', e); + this._pluginCards = []; + } + // Cache the result even on failure so we don't retry the + // blocking synchronous XHR on every invocation + this._pluginCardsLoaded = true; + return this._pluginCards || []; + } + editorResource = this.koenig.resource; get pinturaJsUrl() { @@ -444,9 +479,10 @@ export default class KoenigLexicalEditor extends Component { siteUrl: this.config.getSiteUrl('/'), siteUuid: this.config.site_uuid, stripeEnabled: checkStripeEnabled(), // returns a boolean - visibilitySettings: getCardVisibilitySettings(props.cardConfig) + visibilitySettings: getCardVisibilitySettings(props.cardConfig), + pluginCards: this.pluginCards }; - const cardConfig = Object.assign({}, defaultCardConfig, props.cardConfig, {pinturaConfig: this.pinturaConfig, visibilitySettings: defaultCardConfig.visibilitySettings}); + const cardConfig = Object.assign({}, defaultCardConfig, props.cardConfig, {pinturaConfig: this.pinturaConfig, visibilitySettings: defaultCardConfig.visibilitySettings, pluginCards: this.pluginCards}); const KGEditorComponent = ({isInitInstance}) => { return ( diff --git a/ghost/core/content/plugins/.gitkeep b/ghost/core/content/plugins/.gitkeep new file mode 100644 index 00000000000..d143c93e4c2 --- /dev/null +++ b/ghost/core/content/plugins/.gitkeep @@ -0,0 +1 @@ +# Example plugins are available separately diff --git a/ghost/core/core/server/api/endpoints/card-plugins.js b/ghost/core/core/server/api/endpoints/card-plugins.js new file mode 100644 index 00000000000..5ee3e2f0499 --- /dev/null +++ b/ghost/core/core/server/api/endpoints/card-plugins.js @@ -0,0 +1,494 @@ +const fs = require('fs-extra'); +const os = require('os'); +const path = require('path'); +const zlib = require('zlib'); +const labs = require('../../../shared/labs'); +const security = require('@tryghost/security'); +const {compress} = require('@tryghost/zip'); +const getPluginLoader = require('../../services/card-plugins/loader'); +const errors = require('@tryghost/errors'); +const logging = require('@tryghost/logging'); + +function escapeAttr(value) { + return String(value ?? '') + .replace(/&/g, '&') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(//g, '>'); +} + +// --- ZIP reader (pure Node.js, for install endpoint) --- +// Reads local files only, no network operations +function readZipLocal(filePath) { + const data = fs.readFileSync(filePath); + + // Find End of Central Directory record + let eocdOffset = -1; + for (let i = data.length - 22; i >= 0; i--) { + if (data.readUInt32LE(i) === 0x06054b50) { + eocdOffset = i; + break; + } + } + if (eocdOffset === -1) { + throw new Error('Invalid ZIP file'); + } + + const centralDirOffset = data.readUInt32LE(eocdOffset + 16); + const numEntries = data.readUInt16LE(eocdOffset + 10); + + const entries = []; + let offset = centralDirOffset; + + for (let i = 0; i < numEntries; i++) { + if (data.readUInt32LE(offset) !== 0x02014b50) { + throw new Error('Invalid central directory'); + } + const compressedSize = data.readUInt32LE(offset + 20); + const uncompressedSize = data.readUInt32LE(offset + 24); + const nameLen = data.readUInt16LE(offset + 28); + const extraLen = data.readUInt16LE(offset + 30); + const commentLen = data.readUInt16LE(offset + 32); + const localHeaderOffset = data.readUInt32LE(offset + 42); + const compressionMethod = data.readUInt16LE(offset + 10); + + const name = data.slice(offset + 46, offset + 46 + nameLen).toString('utf8'); + + entries.push({ + name, + compressedSize, + uncompressedSize, + localHeaderOffset, + compressionMethod + }); + + offset += 46 + nameLen + extraLen + commentLen; + } + + return {data, entries}; +} + +function extractZipEntry(zip, entry, targetDir) { + const {data} = zip; + + // Read local file header + const localHeader = entry.localHeaderOffset; + if (data.readUInt32LE(localHeader) !== 0x04034b50) { + throw new Error('Invalid local file header'); + } + + const localNameLen = data.readUInt16LE(localHeader + 26); + const localExtraLen = data.readUInt16LE(localHeader + 28); + const dataOffset = localHeader + 30 + localNameLen + localExtraLen; + + const entryData = data.slice(dataOffset, dataOffset + entry.compressedSize); + + let uncompressed; + if (entry.compressionMethod === 0) { + // Stored (no compression) + uncompressed = entryData; + } else if (entry.compressionMethod === 8) { + // Deflated + const zlib = require('zlib'); + uncompressed = zlib.inflateRawSync(entryData); + } else { + throw new Error(`Unsupported compression method: ${entry.compressionMethod}`); + } + + const targetPath = path.join(targetDir, entry.name); + + // Prevent ZIP Slip: ensure the resolved path stays within targetDir + const resolvedTarget = path.resolve(targetPath); + const resolvedDir = path.resolve(targetDir); + if (!resolvedTarget.startsWith(resolvedDir + path.sep) && resolvedTarget !== resolvedDir) { + throw new Error(`Path traversal detected: ${entry.name}`); + } + + // Create directory if needed + if (entry.name.endsWith('/')) { + fs.mkdirSync(targetPath, {recursive: true}); + return; + } + + fs.mkdirSync(path.dirname(targetPath), {recursive: true}); + fs.writeFileSync(targetPath, uncompressed); +} + +/** + * Recursively walks the Lexical JSON tree and converts plugin-card nodes + * matching `pluginName` to standard `html` nodes, preserving the rendered + * content and metadata for potential re-conversion if the plugin is + * reinstalled. + * + * @returns {boolean} true if any nodes were modified + */ +function _convertPluginCardNodes(node, pluginName, cards) { + if (!node || typeof node !== 'object') return false; + + let modified = false; + + if (node.type === 'plugin-card' && node.pluginName === pluginName) { + // Match the node to its specific card definition. + // Only fall back to cards[0] for single-card plugins. + const cardName = node.cardName || ''; + let card = cards.find(c => c.name === cardName); + if (!card) { + if (cards.length === 1) { + card = cards[0]; + } else { + return false; + } + } + if (!card || !card.template) return false; + + const Handlebars = require('handlebars'); + const compiledTemplate = Handlebars.compile(card.template); + + // Render the card HTML from its payload using the plugin template. + // Keep raw payload separate for data-ghost-payload; apply preprocess + // to matched data for the template render (same as live renderer). + let rawPayload = {}; + try { + rawPayload = typeof node.payload === 'string' + ? JSON.parse(node.payload) + : (node.payload || {}); + } catch (e) { + rawPayload = {}; + } + + let renderPayload = {...rawPayload}; + if (card.preprocess) { + try { + const {createPreprocessor} = require('@tryghost/kg-default-nodes'); + const preprocess = createPreprocessor(card.preprocess); + if (preprocess) { + renderPayload = preprocess(renderPayload); + } + } catch (e) { + // If preprocess fails, continue with raw payload + } + } + + let renderedHtml; + try { + renderedHtml = compiledTemplate(renderPayload); + } catch (e) { + renderedHtml = `
Plugin card (render error: ${e.message})
`; + } + + // Add data attributes for re-conversion via plugin-card-parser + const payloadStr = escapeAttr(JSON.stringify(rawPayload)); + const tagMatch = renderedHtml.match(/<(\w+)([^>]*)>/); + if (tagMatch) { + const tagName = tagMatch[1]; + const existingAttrs = tagMatch[2] || ''; + const dataAttrs = ` data-ghost-plugin="${escapeAttr(pluginName)}" data-card-name="${escapeAttr(node.cardName || '')}" data-ghost-payload='${payloadStr}'`; + renderedHtml = renderedHtml.replace( + new RegExp(`<${tagName}([^>]*)>`), + `<${tagName}${existingAttrs}${dataAttrs}>` + ); + } + + // Preserve CSS and markers so the content still renders styled + const css = node.css || card.css || ''; + const styleTag = css ? `` : ''; + const fullHtml = `\n\n${styleTag}${renderedHtml}\n\n`; + + // Convert to an html node + node.type = 'html'; + node.html = fullHtml; + // Remove plugin-card-specific properties + delete node.pluginName; + delete node.cardName; + delete node.payload; + delete node.css; + delete node.template; + delete node.preprocess; + + return true; + } + + // Walk children (Lexical nodes have a `children` array) + if (Array.isArray(node.children)) { + for (const child of node.children) { + if (_convertPluginCardNodes(child, pluginName, cards)) { + modified = true; + } + } + } + + return modified; +} + +module.exports = { + docName: 'cardPlugins', + + browse: { + permissions: false, + async query(frame) { + if (!labs.isSet('customCardPlugins')) { + throw new errors.NotFoundError(); + } + + const loader = getPluginLoader(); + const cards = loader.getAllCards(); + + return cards; + } + }, + + read: { + permissions: false, + options: ['name'], + async query(frame) { + if (!labs.isSet('customCardPlugins')) { + throw new errors.NotFoundError(); + } + + const name = frame.data.name || frame.options.name; + const loader = getPluginLoader(); + const plugin = loader.getPlugin(name); + + if (!plugin) { + throw new errors.NotFoundError({message: `Plugin "${name}" not found`}); + } + + return plugin; + } + }, + + destroy: { + permissions: false, + options: ['name'], + async query(frame) { + if (!labs.isSet('customCardPlugins')) { + throw new errors.NotFoundError(); + } + + const name = frame.data.name || frame.options.name; + const loader = getPluginLoader(); + const plugin = loader.getPlugin(name); + + if (!plugin) { + throw new errors.NotFoundError({message: `Plugin "${name}" not found`}); + } + + const pluginPath = plugin.path; + + // --- Step 1: Convert plugin-card nodes to HTML in all posts --- + if (plugin.cards && plugin.cards.length > 0) { + try { + const models = require('../../models'); + const posts = await models.Post.findPage({ + filter: 'status:all', + limit: 'all', + columns: ['id', 'lexical', 'updated_at'] + }); + let convertedCount = 0; + + for (const post of posts.data) { + let lexical = post.get('lexical'); + if (!lexical) continue; + + let lexicalData; + try { + lexicalData = typeof lexical === 'string' + ? JSON.parse(lexical) + : lexical; + } catch (e) { + continue; + } + + const modified = _convertPluginCardNodes( + lexicalData, name, plugin.cards + ); + + if (modified) { + await models.Post.edit( + {lexical: JSON.stringify(lexicalData)}, + {id: post.id, context: {internal: true}} + ); + convertedCount++; + } + } + + if (convertedCount > 0) { + logging.info(`Converted ${convertedCount} post(s) from plugin "${name}" cards to static HTML`); + } + } catch (err) { + logging.error(`Failed to convert posts for plugin "${name}": ${err.message}`); + throw new errors.InternalServerError({message: `Cannot delete plugin "${name}": failed to convert posts. ${err.message}`}); + } + } + + // --- Step 2: Remove the plugin directory --- + fs.rmSync(pluginPath, {recursive: true, force: true}); + + // Invalidate the loader cache + loader.invalidate(); + + logging.info(`Plugin "${name}" deleted from ${pluginPath}`); + + return {deleted: true, name}; + } + }, + + download: { + headers: { + cacheInvalidate: false + }, + permissions: false, + options: ['name'], + query(frame) { + if (!labs.isSet('customCardPlugins')) { + throw new errors.NotFoundError(); + } + + const name = frame.options.name; + const loader = getPluginLoader(); + const plugin = loader.getPlugin(name); + + if (!plugin) { + throw new errors.NotFoundError({message: `Plugin "${name}" not found`}); + } + + // Same pattern as themes.download: compress to a temp file and stream it + return function downloadPlugin(_req, res, next) { + const zipName = name + '.zip'; + const zipBasePath = path.join(os.tmpdir(), security.identifier.uid(10)); + const zipPath = path.join(zipBasePath, zipName); + + fs.ensureDir(zipBasePath) + .then(() => compress(plugin.path, zipPath)) + .then((result) => { + res.set({ + 'Content-Disposition': `attachment; filename=${name}.zip`, + 'Content-Type': 'application/zip', + 'Content-Length': result.size + }); + const stream = fs.createReadStream(zipPath); + + function cleanup() { + fs.remove(zipBasePath).catch(() => {}); + } + + stream.on('error', (err) => { + cleanup(); + next(err); + }); + res.on('close', cleanup); + + stream.pipe(res); + }) + .catch(next); + }; + } + }, + + install: { + permissions: false, + async query(frame) { + if (!labs.isSet('customCardPlugins')) { + throw new errors.NotFoundError(); + } + + // Get the uploaded file (same pattern as theme upload) + const file = frame.file; + if (!file) { + throw new errors.ValidationError({message: 'No file uploaded'}); + } + + const loader = getPluginLoader(); + const pluginsPath = loader.pluginsPath; + + // Ensure plugins directory exists + if (!fs.existsSync(pluginsPath)) { + fs.mkdirSync(pluginsPath, {recursive: true}); + } + + // Read the ZIP file + let zip; + try { + zip = readZipLocal(file.path); + } catch (err) { + throw new errors.ValidationError({message: 'Invalid ZIP file: ' + err.message}); + } + + // Find plugin.json in the ZIP + const pluginJsonEntry = zip.entries.find(e => e.name.endsWith('plugin.json')); + if (!pluginJsonEntry) { + throw new errors.ValidationError({message: 'Invalid plugin: no plugin.json found in ZIP'}); + } + + // Extract and parse plugin.json + let pluginData; + try { + // Extract to a temp location first + const tmpDir = fs.mkdtempSync(path.join(require('os').tmpdir(), 'ghost-plugin-')); + extractZipEntry(zip, pluginJsonEntry, tmpDir); + const pluginJsonPath = path.join(tmpDir, pluginJsonEntry.name); + const pluginJsonContent = fs.readFileSync(pluginJsonPath, 'utf8'); + pluginData = JSON.parse(pluginJsonContent); + fs.rmSync(tmpDir, {recursive: true, force: true}); + } catch (err) { + throw new errors.ValidationError({message: 'Failed to parse plugin.json: ' + err.message}); + } + + if (!pluginData.name) { + throw new errors.ValidationError({message: 'Plugin name is required in plugin.json'}); + } + + // Reject path traversal characters in plugin name + if (/[./\\]/.test(pluginData.name)) { + throw new errors.ValidationError({message: 'Plugin name contains invalid characters'}); + } + + const pluginDir = path.join(pluginsPath, pluginData.name); + + // Check if plugin already exists + if (fs.existsSync(pluginDir)) { + throw new errors.ValidationError({message: `Plugin "${pluginData.name}" already exists. Delete it first.`}); + } + + // Extract all files to the plugin directory + try { + fs.mkdirSync(pluginDir, {recursive: true}); + for (const entry of zip.entries) { + // Strip the common root prefix from entry names. + // ZIPs created with `zip -r name.zip name/` have + // entries like "name/plugin.json", but we want to + // extract directly into the plugin directory. + const parts = entry.name.split('/'); + const strippedName = parts.length > 1 && parts[0] === pluginData.name + ? parts.slice(1).join('/') + : entry.name; + + if (strippedName) { + const destPath = path.join(pluginDir, strippedName); + fs.mkdirSync(path.dirname(destPath), {recursive: true}); + const zipEntry = {...entry, name: strippedName}; + extractZipEntry(zip, zipEntry, pluginDir); + } + } + } catch (err) { + fs.remove(pluginDir).catch(() => {}); + throw new errors.InternalServerError({message: 'Failed to extract plugin: ' + err.message}); + } + + // Reload the plugin loader + loader.invalidate(); + loader.load(); + + const installedPlugin = loader.getPlugin(pluginData.name); + if (!installedPlugin) { + fs.remove(pluginDir).catch(() => {}); + throw new errors.InternalServerError({message: 'Plugin installed but failed to load'}); + } + + logging.info(`Plugin "${pluginData.name}" installed to ${pluginDir}`); + + return installedPlugin; + } + } +}; diff --git a/ghost/core/core/server/api/endpoints/index.js b/ghost/core/core/server/api/endpoints/index.js index d902c532c64..986fd29348e 100644 --- a/ghost/core/core/server/api/endpoints/index.js +++ b/ghost/core/core/server/api/endpoints/index.js @@ -205,6 +205,10 @@ module.exports = { return apiFramework.pipeline(require('./featurebase'), localUtils); }, + get cardPlugins() { + return apiFramework.pipeline(require('./card-plugins'), localUtils); + }, + get serializers() { return require('./utils/serializers'); }, diff --git a/ghost/core/core/server/api/endpoints/utils/serializers/output/card-plugins.js b/ghost/core/core/server/api/endpoints/utils/serializers/output/card-plugins.js new file mode 100644 index 00000000000..a8d9a2d1bc5 --- /dev/null +++ b/ghost/core/core/server/api/endpoints/utils/serializers/output/card-plugins.js @@ -0,0 +1,27 @@ +const debug = require('@tryghost/debug')('api:endpoints:utils:serializers:output:plugins'); + +module.exports = { + all(response, apiConfig, frame) { + debug('all'); + + if (!response) { + return; + } + + // For the download endpoint, pass through the raw function + // (same pattern as themes.download) + if (apiConfig.method === 'download') { + frame.response = response; + return; + } + + // For all other endpoints, wrap in { plugins: [...] } + frame.response = {}; + + frame.response.plugins = Array.isArray(response) ? response : [response]; + + if (response.meta) { + frame.response.meta = response.meta; + } + } +}; diff --git a/ghost/core/core/server/api/endpoints/utils/serializers/output/index.js b/ghost/core/core/server/api/endpoints/utils/serializers/output/index.js index 3199b9a8c60..c61a2b0eb26 100644 --- a/ghost/core/core/server/api/endpoints/utils/serializers/output/index.js +++ b/ghost/core/core/server/api/endpoints/utils/serializers/output/index.js @@ -117,6 +117,10 @@ module.exports = { return require('./themes'); }, + get cardPlugins() { + return require('./card-plugins'); + }, + get site() { return require('./site'); }, diff --git a/ghost/core/core/server/services/card-plugins/index.js b/ghost/core/core/server/services/card-plugins/index.js new file mode 100644 index 00000000000..383ae76e7de --- /dev/null +++ b/ghost/core/core/server/services/card-plugins/index.js @@ -0,0 +1,24 @@ +const getPluginLoader = require('./loader'); + +module.exports = { + init() { + const loader = getPluginLoader(); + loader.load(); + }, + getAllCards() { + const loader = getPluginLoader(); + return loader.getAllCards(); + }, + getCard(pluginName, cardName) { + const loader = getPluginLoader(); + return loader.getCard(pluginName, cardName); + }, + getPlugin(name) { + const loader = getPluginLoader(); + return loader.getPlugin(name); + }, + invalidate() { + const loader = getPluginLoader(); + loader.invalidate(); + } +}; diff --git a/ghost/core/core/server/services/card-plugins/loader.js b/ghost/core/core/server/services/card-plugins/loader.js new file mode 100644 index 00000000000..8c426ab6c7b --- /dev/null +++ b/ghost/core/core/server/services/card-plugins/loader.js @@ -0,0 +1,194 @@ +const fs = require('fs'); +const path = require('path'); +const logging = require('@tryghost/logging'); + +const PLUGIN_FIELDS = ['name', 'version', 'cards']; + +class PluginLoader { + constructor(options = {}) { + this.pluginsPath = options.pluginsPath || this._getDefaultPluginsPath(); + this.plugins = new Map(); + this.loaded = false; + } + + _getDefaultPluginsPath() { + const config = require('../../../shared/config'); + return path.join(config.get('paths').contentPath, 'plugins'); + } + + load() { + if (this.loaded) { + return this.plugins; + } + + this.plugins.clear(); + + if (!fs.existsSync(this.pluginsPath)) { + logging.info('No plugins directory found, skipping plugin loading'); + this.loaded = true; + return this.plugins; + } + + const entries = fs.readdirSync(this.pluginsPath, {withFileTypes: true}); + + for (const entry of entries) { + if (!entry.isDirectory()) { + continue; + } + + const pluginDir = path.join(this.pluginsPath, entry.name); + const pluginJsonPath = path.join(pluginDir, 'plugin.json'); + + if (!fs.existsSync(pluginJsonPath)) { + logging.warn(`Plugin directory "${entry.name}" has no plugin.json, skipping`); + continue; + } + + try { + const pluginData = JSON.parse(fs.readFileSync(pluginJsonPath, 'utf8')); + const validationError = this._validatePlugin(pluginData, entry.name); + if (validationError) { + logging.error(`Plugin "${entry.name}" validation failed: ${validationError}`); + continue; + } + + const plugin = this._loadPlugin(pluginData, pluginDir); + this.plugins.set(plugin.name, plugin); + logging.info(`Loaded plugin: ${plugin.name} v${plugin.version}`); + } catch (err) { + logging.error(`Failed to load plugin "${entry.name}": ${err.message}`); + } + } + + this.loaded = true; + return this.plugins; + } + + _validatePlugin(data, dirName) { + for (const field of PLUGIN_FIELDS) { + if (!data[field]) { + return `Missing required field: ${field}`; + } + } + + if (data.name !== dirName) { + return `Plugin name "${data.name}" does not match directory name "${dirName}"`; + } + + if (!Array.isArray(data.cards) || data.cards.length === 0) { + return 'Plugin must define at least one card'; + } + + for (const card of data.cards) { + if (!card.name || !card.label || !Array.isArray(card.fields)) { + return `Card "${card.name || 'unknown'}" is missing required fields (name, label, fields)`; + } + } + + return null; + } + + _loadPlugin(data, pluginDir) { + const cards = data.cards.map(card => { + const templatePath = path.join(pluginDir, 'template.html'); + let template = ''; + if (fs.existsSync(templatePath)) { + template = fs.readFileSync(templatePath, 'utf8'); + } + + const cssPath = path.join(pluginDir, 'card.css'); + let css = ''; + if (fs.existsSync(cssPath)) { + css = fs.readFileSync(cssPath, 'utf8'); + } + + // Load optional preprocess.js for data transformations + const preprocessFile = card.preprocess || 'preprocess.js'; + const preprocessPath = path.join(pluginDir, preprocessFile); + + // Prevent path traversal: ensure the file is inside pluginDir + const resolvedPath = path.resolve(preprocessPath); + const resolvedDir = path.resolve(pluginDir); + if (!resolvedPath.startsWith(resolvedDir + path.sep) && resolvedPath !== resolvedDir) { + throw new Error(`Path traversal detected in preprocess: ${preprocessFile}`); + } + + let preprocess = ''; + if (fs.existsSync(resolvedPath)) { + preprocess = fs.readFileSync(resolvedPath, 'utf8'); + } + + return { + ...card, + template, + css, + preprocess + }; + }); + + return { + name: data.name, + version: data.version, + label: data.label || data.name, + description: data.description || '', + icon: data.icon || '', + cards, + path: pluginDir + }; + } + + getPlugin(name) { + if (!this.loaded) { + this.load(); + } + return this.plugins.get(name); + } + + getCard(pluginName, cardName) { + const plugin = this.getPlugin(pluginName); + if (!plugin) { + return null; + } + return plugin.cards.find(c => c.name === cardName) || null; + } + + getAllCards() { + if (!this.loaded) { + this.load(); + } + + const allCards = []; + for (const plugin of this.plugins.values()) { + for (const card of plugin.cards) { + allCards.push({ + plugin: plugin.name, + pluginVersion: plugin.version, + name: card.name, + label: card.label, + icon: plugin.icon, + fields: card.fields, + template: card.template, + css: card.css || '', + preprocess: card.preprocess || '' + }); + } + } + return allCards; + } + + invalidate() { + this.loaded = false; + this.plugins.clear(); + } +} + +let instance; + +module.exports = function getPluginLoader(options) { + if (!instance) { + instance = new PluginLoader(options); + } + return instance; +}; + +module.exports.PluginLoader = PluginLoader; diff --git a/ghost/core/core/server/services/koenig/node-renderers/index.js b/ghost/core/core/server/services/koenig/node-renderers/index.js index f6e7f16f141..791ac81f6fb 100644 --- a/ghost/core/core/server/services/koenig/node-renderers/index.js +++ b/ghost/core/core/server/services/koenig/node-renderers/index.js @@ -28,6 +28,7 @@ module.exports = { image: require('./image-renderer'), markdown: require('./markdown-renderer'), paywall: require('./paywall-renderer'), + 'plugin-card': require('./plugin-renderer'), product: require('./product-renderer'), signup: require('./signup-renderer'), toggle: require('./toggle-renderer'), diff --git a/ghost/core/core/server/services/koenig/node-renderers/plugin-renderer.js b/ghost/core/core/server/services/koenig/node-renderers/plugin-renderer.js new file mode 100644 index 00000000000..3128b3b2124 --- /dev/null +++ b/ghost/core/core/server/services/koenig/node-renderers/plugin-renderer.js @@ -0,0 +1,181 @@ +const {addCreateDocumentOption} = require('../render-utils/add-create-document-option'); +const getPluginLoader = require('../../card-plugins/loader'); + +function escapeAttr(value) { + return String(value ?? '') + .replace(/&/g, '&') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(//g, '>'); +} + +/** + * Prefixes CSS selectors with a namespace to prevent collisions between plugins. + */ +function scopeCss(css, namespace) { + if (!css || !namespace) return css; + // Strip comments before processing so /* ... */ isn't treated as a selector + const stripped = css.replace(/\/\*[\s\S]*?\*\//g, ''); + // Prefix each non-@rule selector with the namespace + return stripped.replace(/([^}]*?)\{/g, (match, selectors) => { + const trimmed = selectors.trim(); + if (!trimmed || trimmed.startsWith('@')) return match; + if (trimmed.includes(`.${namespace}`)) return match; + const scoped = selectors.split(',').map(s => { + const t = s.trim(); + if (!t || t.startsWith(':')) return s; + return `.${namespace} ${t}`; + }).join(',\n'); + return scoped + ' {'; + }); +} + +/** + * Parses the raw payload (object or JSON string) into a data object. + * The renderTemplate engine handles string→array conversion for #each, + * so no plugin-specific preprocessing is needed here. + */ +function parsePayload(raw) { + if (typeof raw === 'object' && raw !== null) { + return raw; + } + if (typeof raw === 'string') { + try { + return JSON.parse(raw || '{}'); + } catch { + try { + return JSON.parse((raw || '{}').replace(/\\"/g, '"')); + } catch { + return {}; + } + } + } + return {}; +} + +/** + * Adds data-ghost-* attributes to the root HTML element for re-import. + */ +function addDataAttributes(html, pluginName, cardName, payload) { + const payloadStr = JSON.stringify(payload) + .replace(/"/g, '"') + .replace(/'/g, '''); + + const tagMatch = html.match(/<(\w+)([^>]*)>/); + if (tagMatch) { + const tagName = tagMatch[1]; + const existingAttrs = tagMatch[2] || ''; + const escapedPlugin = escapeAttr(pluginName); + const escapedCard = escapeAttr(cardName); + const dataAttrs = ` data-ghost-plugin="${escapedPlugin}" data-card-name="${escapedCard}" data-ghost-payload='${payloadStr}'`; + return html.replace( + new RegExp(`<${tagName}([^>]*)>`), + `<${tagName}${existingAttrs}${dataAttrs}>` + ); + } + + return html; +} + +/** + * Server-side renderer for plugin-card nodes. + * + * Uses the plugin's Handlebars template (from plugin-loader) to render the + * card HTML from the payload. Falls back to pre-rendered node.html if the + * template is unavailable (e.g. plugin was deleted). + */ +function renderPluginNode(node, options = {}) { + addCreateDocumentOption(options); + const document = options.createDocument(); + + // Fetch CSS from plugin loader if not stored on the node + let css = node.css || ''; + let template = node.template || ''; + let card = null; + + if (node.pluginName && node.cardName) { + try { + const loader = getPluginLoader(); + card = loader.getCard(node.pluginName, node.cardName); + if (card) { + // Always use the latest from the plugin loader so + // CSS/template updates take effect without re-saving + if (card.css) { + css = card.css; + } + if (card.template) { + template = card.template; + } + } + } catch (err) { + // Graceful degradation + } + } + + // Keep raw payload for re-import via data attributes + const rawPayload = parsePayload(node.payload || '{}'); + + // Apply plugin-specific data transformations before rendering + // Deep copy so nested mutations in preprocess don't corrupt rawPayload + let renderPayload; + try { + renderPayload = JSON.parse(JSON.stringify(rawPayload)); + } catch { + renderPayload = {...rawPayload}; // Fallback to shallow copy + } + const preprocessSource = card?.preprocess || ''; + if (preprocessSource) { + try { + const {createPreprocessor} = require('@tryghost/kg-default-nodes'); + const preprocess = createPreprocessor(preprocessSource); + if (preprocess) { + renderPayload = preprocess(renderPayload); + } + } catch (err) { + // If preprocess fails, continue with raw payload + } + } + + // Render the card HTML from the template + payload. + // Uses the same renderTemplate engine as the client-side editor + // so both render identically and handle the same template syntax. + let renderedHtml; + + if (template) { + try { + const {renderTemplate} = require('@tryghost/kg-default-nodes'); + renderedHtml = renderTemplate(template, renderPayload); + } catch (err) { + renderedHtml = node.html || `
Render error: ${err.message}
`; + } + } else if (node.html) { + renderedHtml = node.html; + } else { + renderedHtml = '
Plugin card (no template)
'; + } + + // Wrap in namespace container so scoped CSS applies + const namespace = `plugin-${node.pluginName || 'unknown'}`; + renderedHtml = `
\n${renderedHtml}\n
`; + + // Add data attributes for re-import via plugin-card-parser. + // Store the RAW payload so the editor form gets the original data. + renderedHtml = addDataAttributes( + renderedHtml, + node.pluginName || '', + node.cardName || '', + rawPayload + ); + + const scopedCss = scopeCss(css, namespace); + const styleTag = scopedCss ? `` : ''; + const wrappedHtml = `\n\n${styleTag}${renderedHtml}\n\n`; + + const textarea = document.createElement('textarea'); + textarea.value = wrappedHtml; + + return {element: textarea, type: 'value'}; +} + +module.exports = renderPluginNode; diff --git a/ghost/core/core/server/web/api/endpoints/admin/routes.js b/ghost/core/core/server/web/api/endpoints/admin/routes.js index a8e4878ae2e..554fc3d5f7c 100644 --- a/ghost/core/core/server/web/api/endpoints/admin/routes.js +++ b/ghost/core/core/server/web/api/endpoints/admin/routes.js @@ -420,5 +420,16 @@ module.exports = function apiRoutes() { router.get('/search-index/tags', mw.authAdminApi, http(api.searchIndex.fetchTags)); router.get('/search-index/users', mw.authAdminApi, http(api.searchIndex.fetchUsers)); + // ## Custom Card Plugins + router.get('/plugins/cards', mw.authAdminApi, http(api.cardPlugins.browse)); + router.get('/plugins/:name/download', mw.authAdminApi, http(api.cardPlugins.download)); + router.get('/plugins/:name', mw.authAdminApi, http(api.cardPlugins.read)); + router.delete('/plugins/:name', mw.authAdminApi, http(api.cardPlugins.destroy)); + router.post('/plugins/install', + mw.authAdminApi, + apiMw.upload.single('file'), + http(api.cardPlugins.install) + ); + return router; }; diff --git a/ghost/core/core/shared/labs.js b/ghost/core/core/shared/labs.js index d9372f1f064..89b26125874 100644 --- a/ghost/core/core/shared/labs.js +++ b/ghost/core/core/shared/labs.js @@ -54,7 +54,8 @@ const PRIVATE_FEATURES = [ 'smarterCounts', 'llmsTxt', 'getHelperDeduplication', - 'giftLinks' + 'giftLinks', + 'customCardPlugins' ]; module.exports.GA_KEYS = [...GA_FEATURES]; diff --git a/ghost/core/package.json b/ghost/core/package.json index 2918b5e41ae..b1a539f799d 100644 --- a/ghost/core/package.json +++ b/ghost/core/package.json @@ -142,6 +142,7 @@ "@tryghost/validator": "0.2.22", "@tryghost/version": "2.2.3", "@tryghost/zip": "3.3.4", + "adm-zip": "catalog:", "body-parser": "1.20.5", "bookshelf": "1.2.0", "bookshelf-relations": "2.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 87e70962bcc..996b1ede36a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,14 +49,14 @@ catalogs: specifier: 7.120.4 version: 7.120.4 '@storybook/addon-docs': - specifier: 10.4.4 - version: 10.4.4 + specifier: 10.3.5 + version: 10.3.5 '@storybook/addon-links': - specifier: 10.4.4 - version: 10.4.4 + specifier: 10.3.5 + version: 10.3.5 '@storybook/react-vite': - specifier: 10.4.4 - version: 10.4.4 + specifier: 10.3.5 + version: 10.3.5 '@tailwindcss/postcss': specifier: 4.2.2 version: 4.2.2 @@ -73,8 +73,8 @@ catalogs: specifier: 14.3.1 version: 14.3.1 '@tryghost/api-framework': - specifier: 3.2.4 - version: 3.2.4 + specifier: 3.2.3 + version: 3.2.3 '@tryghost/color-utils': specifier: 0.2.19 version: 0.2.19 @@ -82,11 +82,11 @@ catalogs: specifier: 1.0.11 version: 1.0.11 '@tryghost/debug': - specifier: 2.2.3 - version: 2.2.3 + specifier: 2.2.1 + version: 2.2.1 '@tryghost/domain-events': - specifier: 3.2.5 - version: 3.2.5 + specifier: 3.2.3 + version: 3.2.3 '@tryghost/helpers': specifier: 1.1.106 version: 1.1.106 @@ -124,8 +124,8 @@ catalogs: specifier: 29.5.14 version: 29.5.14 '@types/node': - specifier: 22.19.20 - version: 22.19.20 + specifier: 22.19.19 + version: 22.19.19 '@types/react': specifier: 18.3.31 version: 18.3.31 @@ -148,8 +148,11 @@ catalogs: specifier: 4.7.0 version: 4.7.0 '@vitest/coverage-v8': - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.7 + version: 4.1.7 + adm-zip: + specifier: ^0.5.17 + version: 0.5.17 bson-objectid: specifier: 2.0.4 version: 2.0.4 @@ -175,8 +178,8 @@ catalogs: specifier: 2.0.3 version: 2.0.3 dompurify: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.8 + version: 3.4.8 dotenv: specifier: 17.4.2 version: 17.4.2 @@ -247,8 +250,8 @@ catalogs: specifier: 2.0.7 version: 2.0.7 storybook: - specifier: 10.4.4 - version: 10.4.4 + specifier: 10.3.5 + version: 10.3.5 supertest: specifier: 7.2.2 version: 7.2.2 @@ -256,14 +259,14 @@ catalogs: specifier: 4.2.2 version: 4.2.2 tsx: - specifier: 4.22.4 - version: 4.22.4 + specifier: 4.21.0 + version: 4.21.0 tw-animate-css: specifier: 1.4.0 version: 1.4.0 type-fest: - specifier: 5.7.0 - version: 5.7.0 + specifier: 5.6.0 + version: 5.6.0 typescript: specifier: 5.9.3 version: 5.9.3 @@ -277,18 +280,18 @@ catalogs: specifier: 4.5.0 version: 4.5.0 vitest: - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.7 + version: 4.1.7 zod: - specifier: 4.4.3 - version: 4.4.3 + specifier: 4.1.12 + version: 4.1.12 eslint9: '@eslint/js': - specifier: 9.39.4 - version: 9.39.4 + specifier: 9.37.0 + version: 9.37.0 eslint: - specifier: 9.39.4 - version: 9.39.4 + specifier: 9.37.0 + version: 9.37.0 react17: '@testing-library/react': specifier: 12.1.5 @@ -392,14 +395,11 @@ importers: specifier: 'catalog:' version: 3.3.1 knip: - specifier: 6.16.1 - version: 6.16.1 + specifier: 6.14.2 + version: 6.14.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) lint-staged: specifier: 17.0.7 version: 17.0.7 - node: - specifier: runtime:22.18.0 - version: runtime:22.18.0 nx: specifier: 22.7.5 version: 22.7.5(@swc/core@1.15.40(@swc/helpers@0.5.21)) @@ -410,20 +410,20 @@ importers: specifier: 13.0.2 version: 13.0.2 semver: - specifier: 7.8.4 - version: 7.8.4 + specifier: 7.7.4 + version: 7.7.4 typescript: specifier: 'catalog:' version: 5.9.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/activitypub: dependencies: '@hookform/resolvers': specifier: 5.4.0 - version: 5.4.0(react-hook-form@7.78.0(react@18.3.1)) + version: 5.4.0(react-hook-form@7.72.1(react@18.3.1)) '@radix-ui/react-form': specifier: 'catalog:' version: 0.1.9(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -441,7 +441,7 @@ importers: version: 2.1.1 dompurify: specifier: 'catalog:' - version: 3.4.9 + version: 3.4.8 html2canvas-objectfit-fix: specifier: 1.2.0 version: 1.2.0 @@ -452,8 +452,8 @@ importers: specifier: 'catalog:' version: 18.3.1(react@18.3.1) react-hook-form: - specifier: 7.78.0 - version: 7.78.0(react@18.3.1) + specifier: 7.72.1 + version: 7.72.1(react@18.3.1) react-router: specifier: 'catalog:' version: 7.14.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -465,7 +465,7 @@ importers: version: 10.1.1(react@18.3.1) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.1.12 devDependencies: '@playwright/test': specifier: 'catalog:' @@ -511,10 +511,10 @@ importers: version: 4.2.2 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/admin: dependencies: @@ -553,14 +553,14 @@ importers: version: 18.3.1(react@18.3.1) zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.1.12 devDependencies: '@eslint/js': specifier: catalog:eslint9 - version: 9.39.4 + version: 9.37.0 '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.2(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.2.2(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@tanstack/react-query': specifier: 'catalog:' version: 4.44.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -572,7 +572,7 @@ importers: version: 14.3.1(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/node': specifier: 'catalog:' - version: 22.19.20 + version: 22.19.19 '@types/react': specifier: 'catalog:' version: 18.3.31 @@ -581,19 +581,19 @@ importers: version: 18.3.7(@types/react@18.3.31) '@vitejs/plugin-react-swc': specifier: 4.1.0 - version: 4.1.0(@swc/helpers@0.5.21)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.0(@swc/helpers@0.5.21)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) eslint: specifier: catalog:eslint9 - version: 9.39.4(jiti@2.7.0) + version: 9.37.0(jiti@2.7.0) eslint-plugin-no-relative-import-paths: specifier: 1.6.1 version: 1.6.1 eslint-plugin-react-hooks: specifier: 'catalog:' - version: 5.2.0(eslint@9.39.4(jiti@2.7.0)) + version: 5.2.0(eslint@9.37.0(jiti@2.7.0)) eslint-plugin-react-refresh: specifier: 'catalog:' - version: 0.5.2(eslint@9.39.4(jiti@2.7.0)) + version: 0.5.2(eslint@9.37.0(jiti@2.7.0)) eslint-plugin-tailwindcss: specifier: 'catalog:' version: 4.0.0-beta.0(tailwindcss@4.2.2) @@ -602,13 +602,13 @@ importers: version: 17.6.0 jest-extended: specifier: 7.0.0 - version: 7.0.0(jest@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(typescript@5.9.3) + version: 7.0.0(jest@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(typescript@5.9.3) jsdom: specifier: 'catalog:' version: 29.1.1(@noble/hashes@1.8.0) msw: specifier: 'catalog:' - version: 2.14.6(@types/node@22.19.20)(typescript@5.9.3) + version: 2.14.6(@types/node@22.19.19)(typescript@5.9.3) sirv: specifier: 3.0.2 version: 3.0.2 @@ -620,16 +620,16 @@ importers: version: 5.9.3 typescript-eslint: specifier: 8.58.0 - version: 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + version: 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) vite: specifier: 'catalog:' - version: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/admin-toolbar: dependencies: @@ -651,7 +651,7 @@ importers: version: 11.7.6 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) apps/admin-x-design-system: dependencies: @@ -704,8 +704,8 @@ importers: specifier: 'catalog:' version: 2.1.1 react-colorful: - specifier: 5.7.0 - version: 5.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 5.6.1 + version: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-hot-toast: specifier: 'catalog:' version: 2.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -724,13 +724,13 @@ importers: version: 3.2.2(react@18.3.1) '@storybook/addon-docs': specifier: 'catalog:' - version: 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 10.3.5(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@storybook/addon-links': specifier: 'catalog:' - version: 10.4.4(@types/react@18.3.31)(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 10.3.5(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-vite': specifier: 'catalog:' - version: 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 10.3.5(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@tailwindcss/postcss': specifier: 'catalog:' version: 4.2.2 @@ -757,7 +757,7 @@ importers: version: 8.49.0(eslint@8.57.1)(typescript@5.9.3) '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) autoprefixer: specifier: 10.5.0 version: 10.5.0(postcss@8.5.15) @@ -805,7 +805,7 @@ importers: version: 22.0.0 storybook: specifier: 'catalog:' - version: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwindcss: specifier: 'catalog:' version: 4.2.2 @@ -817,13 +817,13 @@ importers: version: 13.12.0 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/admin-x-framework: dependencies: @@ -884,10 +884,10 @@ importers: version: 18.3.7(@types/react@18.3.31) '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) c8: specifier: 'catalog:' version: 11.0.0 @@ -914,22 +914,22 @@ importers: version: 2.14.6(@types/node@25.9.1)(typescript@5.9.3) type-fest: specifier: 'catalog:' - version: 5.7.0 + version: 5.6.0 typescript: specifier: 'catalog:' version: 5.9.3 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-css-injected-by-js: specifier: 3.5.2 - version: 3.5.2(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 3.5.2(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/admin-x-settings: dependencies: @@ -1047,7 +1047,7 @@ importers: version: link:../shade '@types/node': specifier: 'catalog:' - version: 22.19.20 + version: 22.19.19 '@types/react': specifier: 'catalog:' version: 18.3.31 @@ -1059,7 +1059,7 @@ importers: version: 13.15.10 '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) eslint: specifier: 'catalog:' version: 8.57.1 @@ -1080,10 +1080,10 @@ importers: version: 4.2.2 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/announcement-bar: dependencies: @@ -1096,10 +1096,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) concurrently: specifier: 'catalog:' version: 10.0.3 @@ -1114,13 +1114,13 @@ importers: version: 29.1.1(@noble/hashes@1.8.0) vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/comments-ui: dependencies: @@ -1162,7 +1162,7 @@ importers: version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 react: specifier: catalog:react17 version: 17.0.2 @@ -1190,10 +1190,10 @@ importers: version: 0.13.0 '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) autoprefixer: specifier: 10.5.0 version: 10.5.0(postcss@8.5.15) @@ -1211,7 +1211,7 @@ importers: version: 6.1.4 eslint-plugin-tailwindcss: specifier: catalog:tailwind3 - version: 3.18.3(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)) + version: 3.18.3(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) jsdom: specifier: 'catalog:' version: 29.1.1(@noble/hashes@1.8.0) @@ -1229,22 +1229,22 @@ importers: version: 22.0.0 tailwindcss: specifier: catalog:tailwind3 - version: 3.4.19(tsx@4.22.4)(yaml@2.9.0) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/portal: dependencies: '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 devDependencies: '@doist/react-interpolate': specifier: 2.2.2 @@ -1272,10 +1272,10 @@ importers: version: 8.49.0(eslint@8.57.1)(typescript@5.9.3) '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) concurrently: specifier: 'catalog:' version: 10.0.3 @@ -1284,7 +1284,7 @@ importers: version: 4.1.0(encoding@0.1.13) dompurify: specifier: 'catalog:' - version: 3.4.9 + version: 3.4.8 eslint: specifier: 'catalog:' version: 8.57.1 @@ -1302,16 +1302,16 @@ importers: version: 17.0.2(react@17.0.2) vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-css-injected-by-js: specifier: 3.5.2 - version: 3.5.2(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 3.5.2(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/posts: dependencies: @@ -1374,7 +1374,7 @@ importers: version: 13.12.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.1.12 devDependencies: '@playwright/test': specifier: 'catalog:' @@ -1405,7 +1405,7 @@ importers: version: 13.15.10 '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) eslint: specifier: 'catalog:' version: 8.57.1 @@ -1429,16 +1429,16 @@ importers: version: 4.2.2 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/shade: dependencies: '@hookform/resolvers': specifier: 5.4.0 - version: 5.4.0(react-hook-form@7.78.0(react@18.3.1)) + version: 5.4.0(react-hook-form@7.72.1(react@18.3.1)) '@number-flow/react': specifier: 0.6.0 version: 0.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1536,11 +1536,11 @@ importers: specifier: 'catalog:' version: 18.3.1(react@18.3.1) react-dropzone: - specifier: 14.4.1 - version: 14.4.1(react@18.3.1) + specifier: 14.2.3 + version: 14.2.3(react@18.3.1) react-hook-form: - specifier: 7.78.0 - version: 7.78.0(react@18.3.1) + specifier: 7.72.1 + version: 7.72.1(react@18.3.1) react-world-flags: specifier: 1.6.0 version: 1.6.0(react@18.3.1) @@ -1551,24 +1551,24 @@ importers: specifier: 'catalog:' version: 2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwind-merge: - specifier: 3.6.0 - version: 3.6.0 + specifier: 3.5.0 + version: 3.5.0 validator: specifier: 'catalog:' version: 13.12.0 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.1.12 devDependencies: '@storybook/addon-docs': specifier: 'catalog:' - version: 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 10.3.5(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@storybook/addon-links': specifier: 'catalog:' - version: 10.4.4(@types/react@18.3.31)(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 10.3.5(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-vite': specifier: 'catalog:' - version: 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 10.3.5(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@tailwindcss/postcss': specifier: 'catalog:' version: 4.2.2 @@ -1577,7 +1577,7 @@ importers: version: 14.3.1(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/node': specifier: 'catalog:' - version: 22.19.20 + version: 22.19.19 '@types/react-world-flags': specifier: 1.6.0 version: 1.6.0 @@ -1589,10 +1589,10 @@ importers: version: 8.49.0(eslint@8.57.1)(typescript@5.9.3) '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) c8: specifier: 'catalog:' version: 11.0.0 @@ -1606,8 +1606,8 @@ importers: specifier: 'catalog:' version: 0.5.2(eslint@8.57.1) eslint-plugin-storybook: - specifier: 10.4.4 - version: 10.4.4(eslint@8.57.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) + specifier: 10.3.5 + version: 10.3.5(eslint@8.57.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) eslint-plugin-tailwindcss: specifier: 'catalog:' version: 4.0.0-beta.0(tailwindcss@4.2.2) @@ -1625,7 +1625,7 @@ importers: version: 4.0.1 storybook: specifier: 'catalog:' - version: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwindcss: specifier: 'catalog:' version: 4.2.2 @@ -1634,7 +1634,7 @@ importers: version: 1.8.17 tsx: specifier: 'catalog:' - version: 4.22.4 + version: 4.21.0 tw-animate-css: specifier: 'catalog:' version: 1.4.0 @@ -1643,19 +1643,19 @@ importers: version: 5.9.3 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/signup-form: dependencies: '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 react: specifier: 'catalog:' version: 18.3.1 @@ -1668,16 +1668,16 @@ importers: version: 1.60.0 '@storybook/addon-docs': specifier: 'catalog:' - version: 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 10.3.5(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@storybook/addon-links': specifier: 'catalog:' - version: 10.4.4(@types/react@18.3.31)(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 10.3.5(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-vite': specifier: 'catalog:' - version: 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + version: 10.3.5(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@tailwindcss/line-clamp': specifier: 0.4.4 - version: 0.4.4(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)) + version: 0.4.4(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) '@tryghost/i18n': specifier: workspace:* version: link:../../ghost/i18n @@ -1689,7 +1689,7 @@ importers: version: 18.3.7(@types/react@18.3.31) '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) autoprefixer: specifier: 10.5.0 version: 10.5.0(postcss@8.5.15) @@ -1701,7 +1701,7 @@ importers: version: 8.57.1 eslint-plugin-tailwindcss: specifier: catalog:tailwind3 - version: 3.18.3(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)) + version: 3.18.3(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) jsdom: specifier: 'catalog:' version: 29.1.1(@noble/hashes@1.8.0) @@ -1713,25 +1713,25 @@ importers: version: 16.1.1(postcss@8.5.15) storybook: specifier: 'catalog:' - version: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwindcss: specifier: catalog:tailwind3 - version: 3.4.19(tsx@4.22.4)(yaml@2.9.0) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/sodo-search: dependencies: '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 '@tryghost/i18n': specifier: workspace:* version: link:../../ghost/i18n @@ -1753,10 +1753,10 @@ importers: version: 12.1.5(@types/react@18.3.31)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) concurrently: specifier: 'catalog:' version: 10.0.3 @@ -1774,16 +1774,16 @@ importers: version: 14.0.15 tailwindcss: specifier: catalog:tailwind3 - version: 3.4.19(tsx@4.22.4)(yaml@2.9.0) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) vite: specifier: 'catalog:' - version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) apps/stats: dependencies: @@ -1829,7 +1829,7 @@ importers: version: 29.5.14 '@types/node': specifier: 'catalog:' - version: 22.19.20 + version: 22.19.19 '@types/react': specifier: 'catalog:' version: 18.3.31 @@ -1844,7 +1844,7 @@ importers: version: 8.49.0(eslint@8.57.1)(typescript@5.9.3) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) dotenv: specifier: 'catalog:' version: 17.4.2 @@ -1868,13 +1868,13 @@ importers: version: 4.2.2 vite: specifier: 'catalog:' - version: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + version: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) vite-plugin-svgr: specifier: 'catalog:' - version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) e2e: devDependencies: @@ -1889,7 +1889,7 @@ importers: version: 1.60.0 '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 '@tryghost/logging': specifier: 4.2.1 version: 4.2.1 @@ -2318,8 +2318,8 @@ importers: ghost/core: dependencies: '@aws-sdk/client-s3': - specifier: 3.1066.0 - version: 3.1066.0 + specifier: 3.1064.0 + version: 3.1064.0 '@extractus/oembed-extractor': specifier: 3.2.1 version: 3.2.1(encoding@0.1.13) @@ -2336,14 +2336,14 @@ importers: specifier: 7.0.9 version: 7.0.9 '@tryghost/adapter-base-cache': - specifier: 0.1.26 - version: 0.1.26 + specifier: 0.1.25 + version: 0.1.25 '@tryghost/admin-api-schema': - specifier: 4.7.5 - version: 4.7.5 + specifier: 4.7.4 + version: 4.7.4 '@tryghost/api-framework': specifier: 'catalog:' - version: 3.2.4 + version: 3.2.3 '@tryghost/bookshelf-plugins': specifier: 2.2.4 version: 2.2.4 @@ -2361,10 +2361,10 @@ importers: version: 0.3.35 '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 '@tryghost/domain-events': specifier: 'catalog:' - version: 3.2.5 + version: 3.2.3 '@tryghost/email-mock-receiver': specifier: 2.1.0 version: 2.1.0 @@ -2381,8 +2381,8 @@ importers: specifier: workspace:* version: link:../i18n '@tryghost/image-transform': - specifier: 1.4.16 - version: 1.4.16 + specifier: 1.4.15 + version: 1.4.15 '@tryghost/job-manager': specifier: 1.0.9 version: 1.0.9 @@ -2429,8 +2429,8 @@ importers: specifier: 1.0.43 version: 1.0.43 '@tryghost/mongo-utils': - specifier: 0.6.4 - version: 0.6.4 + specifier: 0.6.3 + version: 0.6.3 '@tryghost/mw-error-handler': specifier: 1.0.13 version: 1.0.13 @@ -2438,8 +2438,8 @@ importers: specifier: 1.0.6 version: 1.0.6 '@tryghost/nodemailer': - specifier: 2.2.4 - version: 2.2.4(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8) + specifier: 2.2.3 + version: 2.2.3(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8) '@tryghost/nql': specifier: 'catalog:' version: 0.13.0 @@ -2450,35 +2450,35 @@ importers: specifier: workspace:* version: link:../parse-email-address '@tryghost/pretty-cli': - specifier: 3.2.3 - version: 3.2.3 + specifier: 3.2.1 + version: 3.2.1 '@tryghost/prometheus-metrics': specifier: 1.0.8 version: 1.0.8 '@tryghost/promise': - specifier: 2.2.3 - version: 2.2.3 + specifier: 2.2.1 + version: 2.2.1 '@tryghost/referrer-parser': - specifier: 0.1.19 - version: 0.1.19 + specifier: 0.1.17 + version: 0.1.17 '@tryghost/request': specifier: 1.0.17 version: 1.0.17 '@tryghost/root-utils': - specifier: 2.2.3 - version: 2.2.3 + specifier: 2.2.1 + version: 2.2.1 '@tryghost/security': specifier: 1.0.6 version: 1.0.6 '@tryghost/social-urls': - specifier: 0.1.63 - version: 0.1.63 + specifier: 0.1.62 + version: 0.1.62 '@tryghost/string': specifier: 'catalog:' version: 0.3.5 '@tryghost/tpl': - specifier: 2.2.3 - version: 2.2.3 + specifier: 2.2.1 + version: 2.2.1 '@tryghost/url-utils': specifier: 5.2.6 version: 5.2.6 @@ -2486,23 +2486,26 @@ importers: specifier: 0.2.22 version: 0.2.22 '@tryghost/version': - specifier: 2.2.3 - version: 2.2.3 + specifier: 2.2.1 + version: 2.2.1 '@tryghost/zip': - specifier: 3.3.4 - version: 3.3.4 + specifier: 3.3.2 + version: 3.3.2 + adm-zip: + specifier: 'catalog:' + version: 0.5.17 body-parser: specifier: 1.20.5 version: 1.20.5 bookshelf: specifier: 1.2.0 - version: 1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7)) + version: 1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7)) bookshelf-relations: specifier: 2.8.0 - version: 2.8.0(bookshelf@1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7))) + version: 2.8.0(bookshelf@1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7))) brute-knex: specifier: 4.0.1 - version: 4.0.1(express@4.22.2)(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7) + version: 4.0.1(express@4.22.2)(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7) bson-objectid: specifier: 'catalog:' version: 2.0.4 @@ -2559,7 +2562,7 @@ importers: version: 2.0.3 dompurify: specifier: 'catalog:' - version: 3.4.9 + version: 3.4.8 downsize-cjs: specifier: 1.1.2 version: 1.1.2 @@ -2591,8 +2594,8 @@ importers: specifier: 1.19.0 version: 1.19.0 file-type: - specifier: 21.3.4 - version: 21.3.4 + specifier: 16.5.4 + version: 16.5.4 form-data: specifier: 4.0.5 version: 4.0.5 @@ -2600,8 +2603,8 @@ importers: specifier: 'catalog:' version: 11.3.5 ghost-storage-base: - specifier: 2.0.0 - version: 2.0.0 + specifier: 1.1.2 + version: 1.1.2 glob: specifier: 'catalog:' version: 13.0.6 @@ -2658,7 +2661,7 @@ importers: version: 1.0.4 knex: specifier: 2.4.2 - version: 2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7) + version: 2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7) knex-migrator: specifier: 5.3.2 version: 5.3.2 @@ -2721,7 +2724,7 @@ importers: version: 2.1.1 mysql2: specifier: 3.22.5 - version: 3.22.5(@types/node@22.19.20) + version: 3.22.5(@types/node@22.19.19) nconf: specifier: 0.13.0 version: 0.13.0 @@ -2735,8 +2738,8 @@ importers: specifier: 2.2.0 version: 2.2.0 nodemailer: - specifier: 8.0.11 - version: 8.0.11 + specifier: 8.0.10 + version: 8.0.10 on-headers: specifier: 1.1.0 version: 1.1.0 @@ -2759,14 +2762,14 @@ importers: specifier: 1.2.2 version: 1.2.2 sanitize-html: - specifier: 2.17.5 - version: 2.17.5 + specifier: 2.17.4 + version: 2.17.4 semver: - specifier: 7.8.4 - version: 7.8.4 + specifier: 7.7.4 + version: 7.7.4 sharp: - specifier: 0.35.1 - version: 0.35.1 + specifier: 0.34.5 + version: 0.34.5 simple-dom: specifier: 1.4.0 version: 1.4.0 @@ -2783,14 +2786,14 @@ importers: specifier: 1.0.1 version: 1.0.1 terser: - specifier: 5.48.0 - version: 5.48.0 + specifier: 5.46.1 + version: 5.46.1 tiny-glob: specifier: 0.2.9 version: 0.2.9 type-fest: specifier: 'catalog:' - version: 5.7.0 + version: 5.6.0 ua-parser-js: specifier: 1.0.41 version: 1.0.41 @@ -2799,7 +2802,7 @@ importers: version: 1.0.1 zod: specifier: 'catalog:' - version: 4.4.3 + version: 4.1.12 devDependencies: '@actions/core': specifier: 3.0.1 @@ -2815,7 +2818,7 @@ importers: version: 2.1.0 '@types/bookshelf': specifier: 1.2.9 - version: 1.2.9(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7) + version: 1.2.9(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7) '@types/common-tags': specifier: 1.8.4 version: 1.8.4 @@ -2851,7 +2854,7 @@ importers: version: 10.0.10 '@types/node': specifier: 'catalog:' - version: 22.19.20 + version: 22.19.19 '@types/node-fetch': specifier: 2.6.13 version: 2.6.13 @@ -2859,8 +2862,8 @@ importers: specifier: 1.1.13 version: 1.1.13 '@types/nodemailer': - specifier: 8.0.1 - version: 8.0.1 + specifier: 8.0.0 + version: 8.0.0 '@types/on-headers': specifier: 1.0.4 version: 1.0.4 @@ -2881,7 +2884,7 @@ importers: version: 8.49.0(eslint@8.57.1)(typescript@5.9.3) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.7(vitest@4.1.7) bunyan: specifier: 1.8.15 version: 1.8.15 @@ -2911,10 +2914,10 @@ importers: version: 4.0.0 html-validate: specifier: 11.5.3 - version: 11.5.3(@jest/globals@29.7.0)(@vitest/expect@4.1.8)(jest-snapshot@30.3.0)(jest@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(vitest@4.1.8) + version: 11.5.3(@jest/globals@29.7.0)(@vitest/expect@4.1.7)(jest-snapshot@30.3.0)(jest@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(vitest@4.1.7) inquirer: specifier: 8.2.7 - version: 8.2.7(@types/node@22.19.20) + version: 8.2.7(@types/node@22.19.19) jwk-to-pem: specifier: 2.0.7 version: 2.0.7 @@ -2941,7 +2944,7 @@ importers: version: 8.5.15 postcss-cli: specifier: 11.0.1 - version: 11.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4) + version: 11.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0) qs: specifier: 6.15.2 version: 6.15.2 @@ -2959,7 +2962,7 @@ importers: version: 0.2.6 tsx: specifier: 'catalog:' - version: 4.22.4 + version: 4.21.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -2968,7 +2971,7 @@ importers: version: 13.12.0 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) optionalDependencies: '@tryghost/html-to-mobiledoc': specifier: 3.3.2 @@ -2981,7 +2984,7 @@ importers: dependencies: '@tryghost/debug': specifier: 'catalog:' - version: 2.2.3 + version: 2.2.1 i18next: specifier: 23.16.8 version: 23.16.8 @@ -3013,7 +3016,7 @@ importers: devDependencies: '@types/node': specifier: 'catalog:' - version: 22.19.20 + version: 22.19.19 '@typescript-eslint/parser': specifier: 'catalog:' version: 8.49.0(eslint@8.57.1)(typescript@5.9.3) @@ -3028,7 +3031,7 @@ importers: version: 11.7.6 tsx: specifier: 'catalog:' - version: 4.22.4 + version: 4.21.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -3101,72 +3104,72 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/checksums@3.1000.5': - resolution: {integrity: sha512-zOXUUnilC6lgCsQtp77p/QNPmRlTES9Xi6tlDwbR6kfC/kz5PCzZckgHWm5z+8DskdwuMAbFDq61x3zr10GEEQ==} + '@aws-sdk/checksums@3.1000.3': + resolution: {integrity: sha512-vkPd3NMJf6Gw4QjBBdiUdu2uo4P0HfHrx5+1hqjDYZhZAF4HWkMHXoQtxHQmDi/LyysUgTU5uNhcZLCkpF9LKg==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.1066.0': - resolution: {integrity: sha512-jfJTg6Xbyws8+YF5sVQXgCA01elkenGEYeX6+HQOovu9m/Td1Ln2xcY3lHKetVNltdArp5rykjNd56z7bnA9dw==} + '@aws-sdk/client-s3@3.1064.0': + resolution: {integrity: sha512-6OQhE4Qpt94oTw7ruBHE2E6/PS57alsCSdemMf4c3gBSUM0emoXRRykYffFSL56oluL49AZh/DLWRnQafynbLg==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-sesv2@3.1064.0': - resolution: {integrity: sha512-iPKTvvo39PNJpqQAAZe+rz74TODUY0CXlbJPX5YK2Mxp9t2RCjfE0OuklYTWUnmRfQpJcTjWPbRJW45T+MvYSQ==} + '@aws-sdk/client-sesv2@3.1053.0': + resolution: {integrity: sha512-I7FLyoQtf6Jv4fC++1DavM/HVknyb4Un8V5/uuVMd3AlvfsuprcPF0iLYce3bFjjoKKg8H2lC9uXKAPjwwgsqw==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.974.20': - resolution: {integrity: sha512-7sDi2B2N3mc3nf1nz6FyEx/FCrJ1N1QnBmraHHQNabFaeAh2IaOOLml48/rHOD1bICHgTRkbBgNTvUzEr5Z35g==} + '@aws-sdk/core@3.974.19': + resolution: {integrity: sha512-SMNfLCU/41xxfFaC5Slwy8V/f1FRhakvyeeMeDeIxqNF0DzhDlXsXnJDELJYke1EtnJbfzfilW7tvulGfxMY6A==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.46': - resolution: {integrity: sha512-+GPXVS2srMOlH74S+SmC1gVuP2TvUZ0siuC0onKO93q+udP+M72dmY8wJfVQ5CX9z/9X5A1HHwz5yRIGBtskvQ==} + '@aws-sdk/credential-provider-env@3.972.45': + resolution: {integrity: sha512-ZPsnLyrpDRmojKrBbJykASyLLVFkjyD+fWATeSuYgaqablijGOzxPxEKyrwUvNg+bgSQ7PkW2FTu65Xco19Gag==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.48': - resolution: {integrity: sha512-fA5loSdlocacRxyUXtpoHSMuk5rsIKRDzQYVMnMxjcmFeZshaJlJ8lymy/hYKji6sne/UmNGj5pxuEs6kq/Qcg==} + '@aws-sdk/credential-provider-http@3.972.47': + resolution: {integrity: sha512-1XdgHDIPbARHuzZXM7ouzIbSUZFU9dTi9k+ryMhiZU4QCam4dvwOyUEFjEHNxAZehCYUIOmsSUZ2un6BIgUkWg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.53': - resolution: {integrity: sha512-ZfdhIOR41q8TcWEnUac+gCOb+O2LBWdHLmjedXpXz4IEFW2ppNuFcm6p0sMTavpM+zD5TYfpH5Gp7guRyqSgsQ==} + '@aws-sdk/credential-provider-ini@3.972.51': + resolution: {integrity: sha512-f8sRTVyM+9BbzQKPlUP9dVVpgNEu65jFckNAAGzRfCrlaSi5AWUbCKEHIMcIYokv8pWblSKEqHkqKYZtwINnhw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.52': - resolution: {integrity: sha512-9hu2oR0qH7Fst5Tzdx+UWxm+w5zCXtErTLtOOW5hwwQc170CLwOeniRxyFY6s9mHfGEfC5zFukNBdKBwJR8mhQ==} + '@aws-sdk/credential-provider-login@3.972.50': + resolution: {integrity: sha512-NHHsKoMhw6UylSU0XDnDc87+IQW8tRBTIe6vnOX12GSIlBDtoce6bSzONleIglCyu8d3H9bmTSfk+sIN5yh3WA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.55': - resolution: {integrity: sha512-zMGLa/dhESVqmCD7mmIFFKSwSFrJGScvCXcjvBZEVOOMauFS5JRQvLTMukFpMEFWiV6dTAlsen2ATDBulLPtbg==} + '@aws-sdk/credential-provider-node@3.972.53': + resolution: {integrity: sha512-z/JJ8Qvf2GiTn4bw+x8k7wQjxmPpNsiwZ7ls/h1cZHikrSpS0+65lB+lafnXZlxv1lqH4k6rQwh+2UsycC662g==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.46': - resolution: {integrity: sha512-VUoNFBIjWrUN8NbFiQiuxQEgFjvziAlBRPK+ddh27aj65gk0BYu6bLZnrdrNZwpW6vAihtSUtEMQ1PUJ32QRPA==} + '@aws-sdk/credential-provider-process@3.972.45': + resolution: {integrity: sha512-QMJXjTGLmHE4Ie03T5H4hHOLfcvMc9DaODO6b5dgte3S8ECf5bBuHUJW4cQREcYZyRkOU8iymqtiBxqF4icxZg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.52': - resolution: {integrity: sha512-nb2/n4o/HQf+FVpVbZe9vCTFngmuDoIsltMgLAtjixaKzvzhB4J8WSDFyWgnErgLHk55ctWH+I4PU+LIHhyffg==} + '@aws-sdk/credential-provider-sso@3.972.50': + resolution: {integrity: sha512-pQ9ww4G53gwHlon1NMz25JhaBo13E9Jv+VVgjh39C/yzvby+xhSnEOb+VDYShKNCh1TbttMF/5CFCHkZrIqOcA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.52': - resolution: {integrity: sha512-lKj6aRSGbqLmpYmM24bY7a1Xmfcq2vkE3hv8CSPYfc1yCu0BPu/XEJ1L4Fm61MsU6ULLNSG8UGsffNoFUBjESA==} + '@aws-sdk/credential-provider-web-identity@3.972.50': + resolution: {integrity: sha512-9DbaPaT2aMbz18wtSpq9HVBErjBQwxykqTFgG6n8Bn05GN68mITz+G1869ekYx0mVT/BDjETj5czz/3cPgLwxA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.974.30': - resolution: {integrity: sha512-OaIhub+3yTgfFWPzKO8OzOZFIMUoJaiS5v67y3spQg7SoULGoMx4jKVBbE+uhnzkiZXQ+rEDS0RqrK4/aD1yJw==} + '@aws-sdk/middleware-flexible-checksums@3.974.28': + resolution: {integrity: sha512-XkHArJreL8hnpKrBTlnwrIcynZT4kDiAF6BF/z7AVxV7VUvojrjL2RzeK8QLVNyfzkEJGIYBKoufOIOSSpd6nQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.51': - resolution: {integrity: sha512-keQgcIUTcHL0Qn7guhsuLaxQU36r9norCrxgaPH4DNCwon4TPtXdI/UdYuycl9vj3Dlwc3YR1dfL3U+6iIwJ6w==} + '@aws-sdk/middleware-sdk-s3@3.972.49': + resolution: {integrity: sha512-9CQoJfMZMqGJVBqFO/C8Gwke6WM7CLskQBiAjGU5LyXsVtqhymAATfqFnIa87Dw23ssfgGzqBHpSSwSchldFXw==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.997.20': - resolution: {integrity: sha512-IYJuLpXp2DEILVQpQOy0PMpkftv0AHEOCn52o0atyOaumA0CdWQ3klPyXdViGYLbNpESsVFMVybvHUeZAuiGxA==} + '@aws-sdk/nested-clients@3.997.18': + resolution: {integrity: sha512-xBWrodBvW5SHCZV11UZUJG0pSHkLCEREIBoNbff1C1sacOUCmxJnTCPE80sCGLCtqgXg98I2MQJe2z28tcZSsw==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.34': - resolution: {integrity: sha512-mx1L5qlumSOt/nKM3BFaHE2HVkWwz0i4Bw0pyYO42FfX/FeLlo8YI6csC0gSPprEk6fTIqI+CZN9RwUwKd5krQ==} + '@aws-sdk/signature-v4-multi-region@3.996.33': + resolution: {integrity: sha512-Hn0RThJEbyOZWV2PV9Z4YD3nitGPxybmyU17dSe9b61WOBcKnqS0WTtM3c1zyZq9WnGiyrfi/i+UBPUk7cM8Ug==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1066.0': - resolution: {integrity: sha512-UqEUJq7dqa44hneLDUcX7UJy95cg8YqEWyakRpvIPnrNS3Mq+UlQHgCDGu5pvwAPtlIW4qcYbvW6reG6++FyvA==} + '@aws-sdk/token-providers@3.1064.0': + resolution: {integrity: sha512-sjI+iA4JtgeckBgKwPQF7KzWillRoNDmtpiM0TRa0syiAKFHKUSf84kPXSO3+gA7aMMSxrcxzOM2oPSecaJvEA==} engines: {node: '>=20.0.0'} '@aws-sdk/types@3.973.12': @@ -3895,9 +3898,6 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@borewit/text-codec@0.2.2': - resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} - '@bramus/specificity@2.4.2': resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} hasBin: true @@ -4315,21 +4315,12 @@ packages: '@emnapi/core@1.4.5': resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.0': - resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==} - '@emnapi/runtime@1.4.5': resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} - '@emnapi/wasi-threads@1.0.4': resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} @@ -4863,6 +4854,10 @@ packages: resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.16.0': + resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.17.0': resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4879,6 +4874,10 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.37.0': + resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.39.4': resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5089,145 +5088,70 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-darwin-arm64@0.35.1': - resolution: {integrity: sha512-T15JRWOubQ3f5+GxnWeIvo47u5qV0M9HBgJhT+f2gE1e9e6OhR6K73Re52Hm80qWcu1DNb3GweKmpr/MnuP2Ow==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [darwin] - '@img/sharp-darwin-x64@0.34.5': resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-darwin-x64@0.35.1': - resolution: {integrity: sha512-t1CPD0cr7XCHjwUj6tQ5MC0pCi866I+gUW6zbUX4aFPnKd1DFBtk0M+gWcjX8VeEzgfCNiSiNTVFZ6b7kvdbnQ==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [darwin] - - '@img/sharp-freebsd-wasm32@0.35.1': - resolution: {integrity: sha512-MBSQXqNPThW9EcZ905H6N4sEdX5EwZEYzGx5EBq9ncDCGJALMiY1xPFJxNdzuB1iBjLOpIfxajM6YxdvwmQSLA==} - engines: {node: '>=20.9.0'} - os: [freebsd] - '@img/sharp-libvips-darwin-arm64@1.2.4': resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.3.0': - resolution: {integrity: sha512-EKbmBKtyTH+GPFDRw2TgK2oV6hyxxlJVIar4hoTYSNmIwipgMFdxPQqR392GmfdsPGWga0mCFN1cCKjRb9cljw==} - cpu: [arm64] - os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.3.0': - resolution: {integrity: sha512-Pl2OmOvrJ42adUllESxBsG54PfXLo1OYg9i3c5/5Ln/qJ0gZuTM9YMhQJPIbXqwidLRc/c2zuHt4RsrymmNv7A==} - cpu: [x64] - os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.4': resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm64@1.3.0': - resolution: {integrity: sha512-C0SqjoFKnszqa44EQ7xoaT48nnO0lOyXEULfXMWi8krrjOPGYkeK30Okzla6ATbBYsyZ0ySinK0FVkpv3DwzfQ==} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.3.0': - resolution: {integrity: sha512-A8UpHoUDW4DwnXoV6+q3C1s7QLRAHtPDEjWuNZjwHMyoCNZnm0GeNN8ls9f/bsEYTRQRW96C/n34XJQHJ2fT7A==} - cpu: [arm] - os: [linux] - libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.3.0': - resolution: {integrity: sha512-WOpkVxAjFd369iaIzEgNRreFD+gWdUMIGD5zplhNKNeqS6mm5dac3q2AFyCBmzYoAdouzZvRBgxy4z8QHZb4/A==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-riscv64@1.3.0': - resolution: {integrity: sha512-DRWw0mOHusrCCuw2rqP87oLg6PGlkomVDFqw2hIwsSfwWpu4k3XLcBPaKKl6ct/GtL/cwNkgwjV/tc0Mqht3VA==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.3.0': - resolution: {integrity: sha512-9APy+nFWhHS+kzLgWZfLcyrUd7YqnAQVa4BPOo4xkoHpdoktOAPG4cEr9+Jpl0TtqfVmcMJimNL5qNTyyOHZNA==} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.3.0': - resolution: {integrity: sha512-y9RNUYDe2A1UAdhLyfeOodGRszQdaEoe4nfOpp/sNVPl2CWIcUyFaDoCh4vPLPxu19803j2naLqZup2WxDXCLA==} - cpu: [x64] - os: [linux] - libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-arm64@1.3.0': - resolution: {integrity: sha512-cC1wkC0Mlucd0KSiGrLkJnB/ZqPvZCntc/Lk7ZnYO5ZSbF2euNek4Xvxafojq+wN1q/W0eprdpUIjUr/EV2PBg==} - cpu: [arm64] - os: [linux] - libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.3.0': - resolution: {integrity: sha512-LiYMhUZicB1QG//+RvmYZpXJO8fYRENfp+MZUCnG9aw+AKvGAy9gPaCnuwsPcBFs8EV66M0NNxj9VHcNklE8zw==} - cpu: [x64] - os: [linux] - libc: [musl] - '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5235,13 +5159,6 @@ packages: os: [linux] libc: [glibc] - '@img/sharp-linux-arm64@0.35.1': - resolution: {integrity: sha512-ErCRyGU7LeoaFBZ0xW8hhLlXzhAg80sc4vxePB86qvtEvW1jEhhmbiNBP4oEzZfPMnu6HwHXfzD2W2kBU+RnCw==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5249,13 +5166,6 @@ packages: os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.35.1': - resolution: {integrity: sha512-jygmR02PpCYypt7xB7nst1vqjZp/BpRA/Kf9nK7qRponJ/KrLPaZWEG4G15z1d2FZ6XqI+T0350ha3RSnKx24A==} - engines: {node: '>=20.9.0'} - cpu: [arm] - os: [linux] - libc: [glibc] - '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5263,13 +5173,6 @@ packages: os: [linux] libc: [glibc] - '@img/sharp-linux-ppc64@0.35.1': - resolution: {integrity: sha512-LUWZ2+r2UoLCd8j0RLCwQ4gL6w47+Y7igxtVnPIDXOOEjV86LpBkAHq5VpJeg+GHbw0KN/JWlPJOdZjyZnFqFQ==} - engines: {node: '>=20.9.0'} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5277,13 +5180,6 @@ packages: os: [linux] libc: [glibc] - '@img/sharp-linux-riscv64@0.35.1': - resolution: {integrity: sha512-i7x6J3mwF4JgT0sM4V4WlAWdJ0bucPtA9rzO1bTji1n5qgBq/W5nn87RvOQPleuuxahNoLdTngByD8/vDDLArw==} - engines: {node: '>=20.9.0'} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5291,13 +5187,6 @@ packages: os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.35.1': - resolution: {integrity: sha512-0zSaTUjTF0kIWTSYxD4EG/nvCU4jez53+3RdURtoY3HvbXtIQ98W90JnrGz/oLRFuEnfIy9+7xeq883euc0ZWw==} - engines: {node: '>=20.9.0'} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5305,13 +5194,6 @@ packages: os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.35.1': - resolution: {integrity: sha512-NbJD4mWdeyrNQKluO/tR/wBDOelcowSVGNBWxI0e3ZtlXc6F/UOVKDj1MLD4zl3oHTuvKW3s+MA9N54YTldAYw==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5319,13 +5201,6 @@ packages: os: [linux] libc: [musl] - '@img/sharp-linuxmusl-arm64@0.35.1': - resolution: {integrity: sha512-VoW2sQCWI+0YIKQEmWJ8vzaQjTg9wIyfkFpvEfAS2h43X6iHu7GTk1hhOgB4IpSzCHe8UwQZIcx7b81VTaOrJA==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5333,63 +5208,29 @@ packages: os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.35.1': - resolution: {integrity: sha512-LjBoSd/c5JU0/K5MwzDMlgsSRP2bPn98JQGFFQAOLQ0bU/1z4ekxUdSKY9BmlwSh/cA+OrvpgsWqfZyYfVHBRw==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [linux] - libc: [musl] - '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-wasm32@0.35.1': - resolution: {integrity: sha512-PCQUoQdZyE8tp3HpbevuihfUmgSP4qWI0FGEPWoeXqaS+cUrFfemabHQiebUmUmlUhCuNnQMxGrQ+CPqK4hnxg==} - engines: {node: '>=20.9.0'} - - '@img/sharp-webcontainers-wasm32@0.35.1': - resolution: {integrity: sha512-xU2ml2bU2OPxYVvW2A6ae4M1g5QKyhKG06P4FAt+YEaFQQO0919Qx+XxIZEUuWTMoDViLpMws2/dQwoe/VcA6A==} - engines: {node: '>=20.9.0'} - cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.5': resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] - '@img/sharp-win32-arm64@0.35.1': - resolution: {integrity: sha512-IkmHwuFhYpd3bTsN5SAahjwhiAcyXPooBt8vEUgxY3T0IP70sSJ0nU1xiPzZY8AH/OB1XpV3j8aZSVSOSfTbdA==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [win32] - '@img/sharp-win32-ia32@0.34.5': resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-ia32@0.35.1': - resolution: {integrity: sha512-wQahqCi9MD8Yxzg4gVM4fNrZxh+r6vD55PyIg+WJPaM5ZRUyF35iQpwJCuma3r6viU9/8Pxlc+XHV+woVa6nCQ==} - engines: {node: ^20.9.0} - cpu: [ia32] - os: [win32] - '@img/sharp-win32-x64@0.34.5': resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - '@img/sharp-win32-x64@0.35.1': - resolution: {integrity: sha512-WzBtkYtZHATLPe8XRharxZXxQ9cdLrQWHiwxt+BJ5rBsisQrKeeV86ErxPSVhcG6xCEuNhs0SqLpWr7XDa2k6w==} - engines: {node: '>=20.9.0'} - cpu: [x64] - os: [win32] - '@inquirer/ansi@2.0.6': resolution: {integrity: sha512-I/INw4sHGlVZ/afZOckpLiDP9SmbMl1g/GCqeHjLw1Afw/0PlRs2tRFgTGWmdI0hoNuWZn3y2iHNmG1vyECyQQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} @@ -5892,366 +5733,241 @@ packages: '@otplib/preset-v11@12.0.1': resolution: {integrity: sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==} - '@oxc-parser/binding-android-arm-eabi@0.127.0': - resolution: {integrity: sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [android] - - '@oxc-parser/binding-android-arm-eabi@0.133.0': - resolution: {integrity: sha512-l/44caGse+VpnY9gx0yvvc5QnnG3yG1FO3KZgYvNL1GZrfK86zIwAOgGEVlxDyRymzrU/KHiblPFpevKOmJmUA==} + '@oxc-parser/binding-android-arm-eabi@0.130.0': + resolution: {integrity: sha512-h/xYU8/7ADWzVSf5I+YalLpj33LOy9CI/zgbJNIZ5eunRBG+Czqa3lZsvuPHHf3rOt6z1c5+UzoxjbAzAvhwVw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.127.0': - resolution: {integrity: sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==} + '@oxc-parser/binding-android-arm64@0.130.0': + resolution: {integrity: sha512-oFWFJrsGv9siFM4HjMqKNB7IuIZD/SMmZdCXl8xyx7lDplGvPKyewpOo272rSWgMXe2Wx7bWI0Yj+gkHv4qbeg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-android-arm64@0.133.0': - resolution: {integrity: sha512-KUHmPMziLBp4u+zbrLdB7iWS7KshuZe+RAp7ELnY9SI9nNXBZ+dp8fiBqWOxhXqn+FQg3a4UcQhwmsJOKV8Jjg==} + '@oxc-parser/binding-darwin-arm64@0.130.0': + resolution: {integrity: sha512-sGUzupdTplK9jQg7eJZ878HfEgQjJNBc6dAYVWJ9W5aU+J8rLfRJhTVsKThiu1pNwm6Y1qKCcbC6WhNWSXR3Ig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] - os: [android] - - '@oxc-parser/binding-darwin-arm64@0.127.0': - resolution: {integrity: sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@oxc-parser/binding-darwin-arm64@0.133.0': - resolution: {integrity: sha512-q8dWmnU/8ea2tga9w2f1PinQ5rcMPDUGkF64T189b65YMjUomET4oy5oRldOr4AwOQkneOG/Zttnz1Dvrc62wg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@oxc-parser/binding-darwin-x64@0.127.0': - resolution: {integrity: sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.133.0': - resolution: {integrity: sha512-cOKeIELIB2bJnCKwqx4Rdj+1Lss/U6uCbLxRySZrhyOOQa1flKhwZFjEHRHxk8fU1NKmhK5OnTdPQ4CpjuFuVw==} + '@oxc-parser/binding-darwin-x64@0.130.0': + resolution: {integrity: sha512-PsB4cdCISbC00Uy8eiD8bc2AkGWjZqrSrJnkBFuG2ptrrf6mZ2F5gLFSjOAVMMgZPg8B1D7OydJwLWSfyI2Plg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.127.0': - resolution: {integrity: sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@oxc-parser/binding-freebsd-x64@0.133.0': - resolution: {integrity: sha512-OpaSv4pW3KgFrMYQxTaS0aOE4T1DQF3qZE/4B6uqqv1KgPWWd4UQhJALi8PJPX1RRV5K7ThKXRfF7qGg2+3l1A==} + '@oxc-parser/binding-freebsd-x64@0.130.0': + resolution: {integrity: sha512-DgABp3l38hS77JbXCV4qk1+n6DPym5u8zzwuweokezm2tX194nDSJDENbDRECxVsiNbprKATLbk+Z5wlHT0OHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': - resolution: {integrity: sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-parser/binding-linux-arm-gnueabihf@0.133.0': - resolution: {integrity: sha512-JGK1wlGrGwxBIlVSF7KWTX1/ru6BEtf28fRROztDRkLfiW+Kxa4onnriezMIiogfn9hVw2KzYcKiLjkLR2ns8A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': - resolution: {integrity: sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': + resolution: {integrity: sha512-4Kn3CTEmwFrzhTSC/JuUW16qovmaMdX7jeSKbL8w0pLtLww7To1a2XJi9Z5uD8QWUkfUHhqfV+VD6dVzBnWzoA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.133.0': - resolution: {integrity: sha512-yuZO533Ftonxn/iyoqQzURzLQHMspvsIyfiCSNi1t/ER4eIQaR0SsmUOUm5b/lmSig7IWIUa5/BrbEkAPwcilQ==} + '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': + resolution: {integrity: sha512-D35KZM3F4rRu1uAFKyBlg3Gaf/ybCjyaPR1hfgvk5ex8NtcTmRgc0JgSighEyNg96TPrFhemFba68SZuxaha8w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.127.0': - resolution: {integrity: sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@oxc-parser/binding-linux-arm64-gnu@0.133.0': - resolution: {integrity: sha512-hvpbqT5pN2rR+3+xtWeizwfR/aZ0vGceg6TqYMl+ToxMpk9/tmnX7kSvQnfEUkoua8mhogzvIKsAkn0wxgblBA==} + '@oxc-parser/binding-linux-arm64-gnu@0.130.0': + resolution: {integrity: sha512-Q9o7oVlo955KHwS8l1u0bCzIx+JsZUA3XToLXC+MsMhye/9LeBQbt84nh120cl2XLy+TEzvugYDiHShg5yaX6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-musl@0.127.0': - resolution: {integrity: sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@oxc-parser/binding-linux-arm64-musl@0.133.0': - resolution: {integrity: sha512-wJQGamIosQBoJHW9+S5XxrtKRo3eyJxsnS1XCPrqN0LHi8uw1pTqqTfn3t/NVuvbBg7Pumn4ez9Eidgcn0xbEg==} + '@oxc-parser/binding-linux-arm64-musl@0.130.0': + resolution: {integrity: sha512-EiJ/gC0ljbcwVpycC8YWw6ggMbtsPX8XMOt0mPx0aqWeMsNR+L9m05Flbvd5T+GlivG+GkSWQL7tM9SRFpM/dw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': - resolution: {integrity: sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@oxc-parser/binding-linux-ppc64-gnu@0.133.0': - resolution: {integrity: sha512-Koaz32/O5+abIfrNGdyndgRvdOZ9jEf5/z3Ep9h3h2QWpdDiUQpVwgH0OcMXCs+l9aXxPLtkupqyVig9W6FDKw==} + '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': + resolution: {integrity: sha512-b+h/lsLLurp756dMGizNs5uPaJfyEdWrTcV5t8M609jWm1DEHB1StpRXCkyvwtkJx3m+qL5BNQ0dEKan/4yGFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': - resolution: {integrity: sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@oxc-parser/binding-linux-riscv64-gnu@0.133.0': - resolution: {integrity: sha512-R4vOjWzxhnNWHnVLeiB6jNuIifdy9vcMXZGPc7StXcxBovI+U2zg1QhZ9o8OjV80oGivs1lX5NfPLzk4IPqlRA==} + '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': + resolution: {integrity: sha512-O19Cil83XAyjEFfo8WhkMwY58ALqZ7ckjGL+25mjMIuF84urWBeANH0FC8B8BsSSygWU3/1aY3ADdDbp+wlBnw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-musl@0.127.0': - resolution: {integrity: sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - libc: [musl] - - '@oxc-parser/binding-linux-riscv64-musl@0.133.0': - resolution: {integrity: sha512-iwgBNUTHiMdxARLYuM0SBlnYeb19iw1Ea5M+4ERZupCsBMLArti6FyZ6UfFjJxIiTDr2oW2DGQFxlQVQ/dW9rA==} + '@oxc-parser/binding-linux-riscv64-musl@0.130.0': + resolution: {integrity: sha512-BgXRVC0+83n3YzCscLQjj6nbyeBIVeZYPTI4fFMAE4WNm2+4RXhWp03IVizL7esIz36kgmT48aebk1iM+cs8sw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-s390x-gnu@0.127.0': - resolution: {integrity: sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@oxc-parser/binding-linux-s390x-gnu@0.133.0': - resolution: {integrity: sha512-ZwZNo8FZmB/gVfboQl+wXilBigGl+6nQQs+nITOeAP/HcAOjiHl6XZJL9F/KXNEspODQcbjAiyjUbeCJd9a0fA==} + '@oxc-parser/binding-linux-s390x-gnu@0.130.0': + resolution: {integrity: sha512-6tJz0xvnGhsokE7N1WlUSBXibpYmT9xSJFS1Ce41Km/+8gQvdlW8MLhRv8PD0L7ix8vRG0FDDepp3jdOFzdVdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.127.0': - resolution: {integrity: sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@oxc-parser/binding-linux-x64-gnu@0.133.0': - resolution: {integrity: sha512-govCvWx1dBlED3uu4qXctxpRcouu9I8Kn+DBktGCl760JtlGJzc9l/OmPJKlYWSbrRqKkMZehNeZ/4Wfma7uSA==} + '@oxc-parser/binding-linux-x64-gnu@0.130.0': + resolution: {integrity: sha512-9aCWj83dp3heTQGmGnZGdIWgxjZrr/7VQ0TGFHH5PKByxJKF2Hcr4qvaSUHhhGEa3MSsDjTL1YDP8RAgdL5/Cg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-musl@0.127.0': - resolution: {integrity: sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==} + '@oxc-parser/binding-linux-x64-musl@0.130.0': + resolution: {integrity: sha512-afXt87aZBqrUVli8TB/I8H1G50RDWcwirjWtXGXYqJ2ZqWEiErH7V72j3LUSDZaivmtu2OLX0KQ/mbhP81mr7A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-x64-musl@0.133.0': - resolution: {integrity: sha512-ssTlpXD5Mq9uCssDJPzlRWqBt4Y7Zzd9i+XZhWmK/9Y6KUIuAxVYTYiI8lxcGWi0+3/Cz4A8q9UrD4NK9Y2j7g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@oxc-parser/binding-openharmony-arm64@0.127.0': - resolution: {integrity: sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@oxc-parser/binding-openharmony-arm64@0.133.0': - resolution: {integrity: sha512-51aByfXhPtLEdWG4a2Ihdw6cPWV1ei1AarALpFdDP8MLWDLE2NuUMgbo3DERR2Kt8fT/ok1GUvBiLxVGke9uUQ==} + '@oxc-parser/binding-openharmony-arm64@0.130.0': + resolution: {integrity: sha512-I0NCrZV/YZuCGWgqwNN/GO/iXlLF2z+Wgc7u+Aa9N4P51oYeIa0XT+zVBUne4csO9GqxskXgI4g8JzzWGRpfOw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.127.0': - resolution: {integrity: sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - - '@oxc-parser/binding-wasm32-wasi@0.133.0': - resolution: {integrity: sha512-2e16tkKp+wDO2GTAmXfxbBcCmGEaFPIJEIRBBmVKNVXSc8/fJsSIaBGyFTPHM9ST5GNWgJcYIt94rDTks+PLwA==} + '@oxc-parser/binding-wasm32-wasi@0.130.0': + resolution: {integrity: sha512-sJgQkGaBX0WJvPUDfwciex6IcTk5O5NLQ1bhEb6f3nBruh1GshKMRSMt2bxZlYrgBzjyBbJzsnO+InPG0bg+fA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.127.0': - resolution: {integrity: sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@oxc-parser/binding-win32-arm64-msvc@0.133.0': - resolution: {integrity: sha512-KPTNDKbxH1cglrqTyVeXHb4Pk4oksz8EcE1/v8zqU7N4UXbiHfA/IwtXZ2U77fnRAWBbgVkl/lZbL7o3hRdejg==} + '@oxc-parser/binding-win32-arm64-msvc@0.130.0': + resolution: {integrity: sha512-bjcma99sQrNh6RY4mPO9yTkfxql6TDFoN3HWdK31RCKXwNhcDgJXW/l8PUtzKNiQ+9vpKJfJtQq+LklBuxSOBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.127.0': - resolution: {integrity: sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==} + '@oxc-parser/binding-win32-ia32-msvc@0.130.0': + resolution: {integrity: sha512-hRYbv6HhpSTzT4xTiIkadLI7upLQxuOdLPR/9nL1fTjwhgutBTPXrwaAPb/jTFVx6/8C7Jb5HcUKhmNwloTbFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.133.0': - resolution: {integrity: sha512-Una1bNYv9zCavQrfnDR9wuZVB3itLjCEH4Oz7i6CwAJN/Xq9b+zbbcxmvdkKvvJt4Ngc/MBmIYlbLo3zS4TQ0A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ia32] - os: [win32] - - '@oxc-parser/binding-win32-x64-msvc@0.127.0': - resolution: {integrity: sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@oxc-parser/binding-win32-x64-msvc@0.133.0': - resolution: {integrity: sha512-kjBhCiOGSYTwDJQuuZa7a94JbP8htWu7J0X1KwH74kV2K5eYf6eyJRYmkpCDvr0XEL8tMxYI4WU1VekblFCLgg==} + '@oxc-parser/binding-win32-x64-msvc@0.130.0': + resolution: {integrity: sha512-RBpA9TsRucJq6HNVNCFF1iKg+QeTkLdZf7hi4xaOGCPvMZWvDHjQgSOEZMUpuW4JNciHbxNhLEYmz5CVygjVGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxc-project/types@0.127.0': - resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} + '@oxc-project/types@0.130.0': + resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} - '@oxc-project/types@0.133.0': - resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} - - '@oxc-resolver/binding-android-arm-eabi@11.20.0': - resolution: {integrity: sha512-IjfWOXRgJFNdORDl+Uf1aibNgZY2guOD3zmOhx1BGVb/MIiqlFTdmjpQNplSN58lhWehnX4UNqC3QwpUo8pjJg==} + '@oxc-resolver/binding-android-arm-eabi@11.19.1': + resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.20.0': - resolution: {integrity: sha512-QqslZAuFQG8Q9xm7JuIn8JUbvywhSBMVhuQHtYW+auirZJloS41oxUUaBXk7uUhZJgp44c5zQLeVvmFaDQB+2Q==} + '@oxc-resolver/binding-android-arm64@11.19.1': + resolution: {integrity: sha512-oolbkRX+m7Pq2LNjr/kKgYeC7bRDMVTWPgxBGMjSpZi/+UskVo4jsMU3MLheZV55jL6c3rNelPl4oD60ggYmqA==} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.20.0': - resolution: {integrity: sha512-MUcavykj2ewlR+kc5arpg4tC2RvzJkUxWtNv74pf7lcNk00GpIpN43vXMj+j6r4eMmfZhlb8hueKoIb8e9kAGQ==} + '@oxc-resolver/binding-darwin-arm64@11.19.1': + resolution: {integrity: sha512-nUC6d2i3R5B12sUW4O646qD5cnMXf2oBGPLIIeaRfU9doJRORAbE2SGv4eW6rMqhD+G7nf2Y8TTJTLiiO3Q/dQ==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.20.0': - resolution: {integrity: sha512-BGB16nRUK5Etiv//ihPyzj8Lj1px0mhh4YIfe0FDf045ywknfSm0GEbiRESpr6Q4K82AvnyaRIhhluHByvS4bg==} + '@oxc-resolver/binding-darwin-x64@11.19.1': + resolution: {integrity: sha512-cV50vE5+uAgNcFa3QY1JOeKDSkM/9ReIcc/9wn4TavhW/itkDGrXhw9jaKnkQnGbjJ198Yh5nbX/Gr2mr4Z5jQ==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.20.0': - resolution: {integrity: sha512-JZgtePaqj3qmD5XFHJaSLWzHRxQu0LaPkdoM1KJXYADvAaa83ijXHclV3ej3CueeW0wxfIAbGCZVP45J0CA7uQ==} + '@oxc-resolver/binding-freebsd-x64@11.19.1': + resolution: {integrity: sha512-xZOQiYGFxtk48PBKff+Zwoym7ScPAIVp4c14lfLxizO2LTTTJe5sx9vQNGrBymrf/vatSPNMD4FgsaaRigPkqw==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.20.0': - resolution: {integrity: sha512-hOQ/p3ry3v3SchUBXicrrnszaI/UmYzM4wtS4RGfwgVUX7a+HbyQSzJ5aOzu+o6XZkFkS3ZXN4PZAzhOb77OSg==} + '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + resolution: {integrity: sha512-lXZYWAC6kaGe/ky2su94e9jN9t6M0/6c+GrSlCqL//XO1cxi5lpAhnJYdyrKfm0ZEr/c7RNyAx3P7FSBcBd5+A==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.20.0': - resolution: {integrity: sha512-2ArPksaw0AqeuGBfoS715VF+JvJQAhD2niWgjE5hVO+L+nAfikVQopvngCMX9x4BD8itWoQ3dnikrQyl5Ho5Jg==} + '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + resolution: {integrity: sha512-veG1kKsuK5+t2IsO9q0DErYVSw2azvCVvWHnfTOS73WE0STdLLB7Q1bB9WR+yHPQM76ASkFyRbogWo1GR1+WbQ==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.20.0': - resolution: {integrity: sha512-0bJnmYFp62JdZ4nVMDUZ/C58BCZOCcqgKtnUlp7L9Ojf/czIN+3j72YlLPeWLkzlr6SlYvIQA4SGV/HyO0d+qg==} + '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + resolution: {integrity: sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-arm64-musl@11.20.0': - resolution: {integrity: sha512-wKHHzPKZo7Ufhv/Bt6yxT7FOgnIgW4gwXcJUipkShGp68W3wGVqvr1Sr0fY65lN0Oy6y41+g2kIDvkgZaMMUkw==} + '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + resolution: {integrity: sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-ppc64-gnu@11.20.0': - resolution: {integrity: sha512-RN8goF7Ie0B79L4i4G6OeBocTgSC56vJbQ65VJje+oXnldVpLnOU7j/AQ/dP94TcCS+Yh6WG8u3Qt4ETteXFNQ==} + '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + resolution: {integrity: sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-gnu@11.20.0': - resolution: {integrity: sha512-5l1yU6/xQEqLZRzxqmMxJfWPslpwCmBsdDGaBvABPehxquCXDC7dd7oraNdKSJUMDXSM7VvVj8H2D2FTjU7oWw==} + '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + resolution: {integrity: sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-musl@11.20.0': - resolution: {integrity: sha512-xHEvkbgz6UC+A3JOyDQy76LkUaxsNSfIr3/GV8slwZsnuooJiIB34gzJfsyvR4JdCYNUUPsRJc/w/oWkODu+hg==} + '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + resolution: {integrity: sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-s390x-gnu@11.20.0': - resolution: {integrity: sha512-aWPDUUmSeyHvlW+SoEUd+JIJsQhVhu6a5tBpDRMu058naPAchTgAVGCFy35zjbnFlt0i8hLWziff6HX0D3LU4g==} + '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + resolution: {integrity: sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-gnu@11.20.0': - resolution: {integrity: sha512-x2YeSimvhJjKLVD8KSu8f/rqU1potcdEMkApIPJqjZWN7c2Fpt4g2X32WDg1p+XDAmyT7nuQGe0vnhvXeLbH+g==} + '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + resolution: {integrity: sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-musl@11.20.0': - resolution: {integrity: sha512-kcRLEIxpZefeYfLChjpgFf3ilBzRDZ+yobMrpRsQlSrxuFGtm3U6PMU7AaEpMqo3NfDGVyJJseAjnRLzMFHjwQ==} + '@oxc-resolver/binding-linux-x64-musl@11.19.1': + resolution: {integrity: sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==} cpu: [x64] os: [linux] libc: [musl] - '@oxc-resolver/binding-openharmony-arm64@11.20.0': - resolution: {integrity: sha512-HHcfnApSZGtKhTiHqe8OZruOZe5XuFQH5/E0Yhj3u8fnFvzkM4/k6WjacUf4SvA0SPEAbfbgYmVPuo0VX/fIBQ==} + '@oxc-resolver/binding-openharmony-arm64@11.19.1': + resolution: {integrity: sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==} cpu: [arm64] os: [openharmony] - '@oxc-resolver/binding-wasm32-wasi@11.20.0': - resolution: {integrity: sha512-Tn0y1XOFYHNfK1wp1Z5QK8Rcld/bsOwRISQXfqAZ5IBpv8Gz1IvV39fUWNprqNdRizgcvFhOzWwFun2zkJsyBg==} + '@oxc-resolver/binding-wasm32-wasi@11.19.1': + resolution: {integrity: sha512-w8UCKhX826cP/ZLokXDS6+milN8y4X7zidsAttEdWlVoamTNf6lhBJldaWr3ukTDiye7s4HRcuPEPOXNC432Vg==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.20.0': - resolution: {integrity: sha512-qPi25YNPe4YenS8MgsQU2+bIFHxxpLx1LVna2444cEHqNPhNjvWf9zqj4aWE43H9LpAsTmkkAlA3eL5ElBU3mA==} + '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + resolution: {integrity: sha512-nJ4AsUVZrVKwnU/QRdzPCCrO0TrabBqgJ8pJhXITdZGYOV28TIYystV1VFLbQ7DtAcaBHpocT5/ZJnF78YJPtQ==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.20.0': - resolution: {integrity: sha512-Wb14jWEW8huH6It9F6sXd9vrYmIS7pMrgkU6sxpLxkP+9z+wRgs71hUEhRpcn8FOXAFa27FVWfY2tRpbfTzfLw==} + '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + resolution: {integrity: sha512-EW+ND5q2Tl+a3pH81l1QbfgbF3HmqgwLfDfVithRFheac8OTcnbXt/JxqD2GbDkb7xYEqy1zNaVFRr3oeG8npA==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.19.1': + resolution: {integrity: sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw==} cpu: [x64] os: [win32] @@ -8145,39 +7861,32 @@ packages: engines: {node: '>=0.10.0', npm: '>2.7.0'} os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - '@storybook/addon-docs@10.4.4': - resolution: {integrity: sha512-yPshCvtmQTq52T2sXuXgjy7B/QbhA/WIZxLYggptNjBL8BJMvbOfp9bAfCKh7+KpRWGqDZ6Y6tWL1Q48Wj3vtw==} + '@storybook/addon-docs@10.3.5': + resolution: {integrity: sha512-WuHbxia/o5TX4Rg/IFD0641K5qId/Nk0dxhmAUNoFs5L0+yfZUwh65XOBbzXqrkYmYmcVID4v7cgDRmzstQNkA==} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.4.4 - peerDependenciesMeta: - '@types/react': - optional: true + storybook: ^10.3.5 - '@storybook/addon-links@10.4.4': - resolution: {integrity: sha512-sWydPWLgduT24p/NJ/hXHcHsPlAyzQP+cOtCGliSI989K9yBP/TOL3A8sz7LIDfukI9DVAsylPhJ1jDSiAEI1w==} + '@storybook/addon-links@10.3.5': + resolution: {integrity: sha512-Xe2wCGZ+hpZ0cDqAIBHk+kPc8nODNbu585ghd5bLrlYJMDVXoNM/fIlkrLgjIDVbfpgeJLUEg7vldJrn+FyOLw==} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.4.4 + storybook: ^10.3.5 peerDependenciesMeta: - '@types/react': - optional: true react: optional: true - '@storybook/builder-vite@10.4.4': - resolution: {integrity: sha512-VyuZ4mEvhhVXjJa1qXMWKH8ohnas0rgEuJDf6u4aJ54XeENFebPUEAHde1Qo2PflJ4rUdVdXieOZzKbYwP5RAQ==} + '@storybook/builder-vite@10.3.5': + resolution: {integrity: sha512-i4KwCOKbhtlbQIbhm53+Kk7bMnxa0cwTn1pxmtA/x5wm1Qu7FrrBQV0V0DNjkUqzcSKo1CjspASJV/HlY0zYlw==} peerDependencies: - storybook: ^10.4.4 + storybook: ^10.3.5 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - '@storybook/csf-plugin@10.4.4': - resolution: {integrity: sha512-1mzZyAwVUmAcw4WEUsJDVdSupkJf+Kf/f5uNAs4RzlBXA75P8YRkDKAb2EoMwsB5URiXFi9XoeAN/vWke0G6+w==} + '@storybook/csf-plugin@10.3.5': + resolution: {integrity: sha512-qlEzNKxOjq86pvrbuMwiGD/bylnsXk1dg7ve0j77YFjEEchqtl7qTlrXvFdNaLA89GhW6D/EV6eOCu/eobPDgw==} peerDependencies: esbuild: '*' rollup: '*' - storybook: ^10.4.4 + storybook: ^10.3.5 vite: '*' webpack: '*' peerDependenciesMeta: @@ -8199,42 +7908,29 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@storybook/react-dom-shim@10.4.4': - resolution: {integrity: sha512-y6SObmoW78AydE6VfKQSUmCkuqiaMPy9LgMpMdMEyWfJ/pSxBDMIKycr9dlRMJP1cvNgByaJgrusWtA46ndSQw==} + '@storybook/react-dom-shim@10.3.5': + resolution: {integrity: sha512-Gw8R7XZm0zSUH0XAuxlQJhmizsLzyD6x00KOlP6l7oW9eQHXGfxg3seNDG3WrSAcW07iP1/P422kuiriQlOv7g==} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@types/react-dom': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.4.4 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + storybook: ^10.3.5 - '@storybook/react-vite@10.4.4': - resolution: {integrity: sha512-hXw1c9Jq2eFzwmJ3u9phmszbHoPjwPLYjcR1Grd6Xbe2g3bReGH35urm/fTZ0HNdjXAgQlUaXp2bWw6vz0BHQw==} + '@storybook/react-vite@10.3.5': + resolution: {integrity: sha512-UB5sJHeh26bfd8sNMx2YPGYRYmErIdTRaLOT28m4bykQIa1l9IgVktsYg/geW7KsJU0lXd3oTbnUjLD+enpi3w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.4.4 + storybook: ^10.3.5 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - '@storybook/react@10.4.4': - resolution: {integrity: sha512-6K5/uHrvjswrueyVpUt6IWGuSgYCMtMOYyVs86XJZYqKBV3Pv7nGsGNH7YSMLAVQBZW4CQqm2etd5Op0GHY9Kg==} + '@storybook/react@10.3.5': + resolution: {integrity: sha512-tpLTLaVGoA6fLK3ReyGzZUricq7lyPaV2hLPpj5wqdXLV/LpRtAHClUpNoPDYSBjlnSjL81hMZijbkGC3mA+gw==} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@types/react-dom': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.4.4 + storybook: ^10.3.5 typescript: '>= 4.9.x' peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true typescript: optional: true @@ -8680,10 +8376,6 @@ packages: react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tokenizer/inflate@0.4.1': - resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} - engines: {node: '>=18'} - '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -8691,14 +8383,14 @@ packages: resolution: {integrity: sha512-VyMVKRrpHTT8PnotUeV8L/mDaMwD5DaAKCFLP73zAqAtvF0FCqky+Ki7BYbFCYQmqFyTe9316Ed5zS70QUR9eg==} engines: {node: '>= 10'} - '@tryghost/adapter-base-cache@0.1.26': - resolution: {integrity: sha512-p4w4ZR+3dOQeRTkNNCwWvZViBs6kx2AqyHee7Dldvpj6/Qf/+s1vXRnYJfEODzmit65M41oBgIAEplYHHQ0V1g==} + '@tryghost/adapter-base-cache@0.1.25': + resolution: {integrity: sha512-ISUGu5iyV/40ve26nanmuvo1HOahqyiqxTHFTOslKH1KpVh3+WHE9tyoUtiDCzha9i7NSTuYqbFTOaIyGU2zxg==} - '@tryghost/admin-api-schema@4.7.5': - resolution: {integrity: sha512-k8XWP5g6hwpe3DcxhujBVHrDSkUSZ1nedR/TBony3TMbqNCMi4v40HkOhXiryAZ/ENDcmlKj/ZLzYDgG6cb0ww==} + '@tryghost/admin-api-schema@4.7.4': + resolution: {integrity: sha512-vSVVBTUOKLdsTwUkEXPyhi8yo/GC9EpStVbTk9YN1iC0cGDloFDQ3Kb3aXScLhxcLCMa8TOGBDS+o/kXON0b4A==} - '@tryghost/api-framework@3.2.4': - resolution: {integrity: sha512-Otz6uxGsedTsDqQIw62sQ8pmDpiaLMyvsSvCWUBUc44eMix5LFjZ1FMxKl2jXettj6tfMa04+Qz0p71zW/g/Qg==} + '@tryghost/api-framework@3.2.3': + resolution: {integrity: sha512-esFUvEI5z3i6khBLePa/av5GddK16FbArZL9d2EM8CNuNTPHir3lql/y+QE37D+a6Czx73GmgL0C86H3efbt/A==} '@tryghost/bookshelf-collision@2.2.4': resolution: {integrity: sha512-2SV1QZkvXiYBXEWSvCeDc5YuHM7fRRcT2N8z/RHpOmDYyWHslmrdKuWb+jJOhIeRmO+oH0pYC4Nk9haQI2dgIg==} @@ -8760,14 +8452,17 @@ packages: '@tryghost/debug@2.2.0': resolution: {integrity: sha512-/fcOMvRzbRDJrBbuGKfb+XXnA7iUJIuigLt4K9I6zYIbTnqbIrnpQ3kwxEM0/f3Wc+bNYUqtAHxsfjeYQBSPaQ==} + '@tryghost/debug@2.2.1': + resolution: {integrity: sha512-DDBU8UA/23DENO4nFRZmiLAMu6XBxbtTmHJBYa/LbhIHIlwsdWSvnaiCDrSn+Fnasuw1kte5pk9mLBkXw0TPvA==} + '@tryghost/debug@2.2.2': resolution: {integrity: sha512-tt/3adfzn1V9VFgpcQBjkxBTzIHxjjp6Xv3J6QF9webTPaq1o3YdHE+hMCNuPDIJXBmVWVgiPZxrHgv71BkWuw==} '@tryghost/debug@2.2.3': resolution: {integrity: sha512-twS9SJX83BgbmB62VJBKMLCpG3QAvA6/9OgWH1p/L3rtqiQ5RGVQPmbhEiswWxtIP3PBY9UyETIB/msCnLozXA==} - '@tryghost/domain-events@3.2.5': - resolution: {integrity: sha512-/35ZUlvdMBJRZDUmseW/xqvD8+apKFxzWUsqxh+OTQrEI4X1gAXqU4caCvcZAenRfMQWSgIlSKqPPFXoA7TDYQ==} + '@tryghost/domain-events@3.2.3': + resolution: {integrity: sha512-jQEJXWXypY5ekrU8+l2tj9H9onfBfHNjcOd0pXlfmZ7GjXJA0/ijtL2iUcbE7OaPKgQkNK/3Eroh8uTf64ouxQ==} '@tryghost/elasticsearch@3.0.29': resolution: {integrity: sha512-WGfoGbPXzX7SYPKeD7naYyoF8Lc7KruQPixFSJGLciRQ3wkrZQANQIguD4nA71upp0dhsT4D4aWP296VfJxuPw==} @@ -8805,8 +8500,8 @@ packages: '@tryghost/http-stream@2.2.1': resolution: {integrity: sha512-bTW5CdDHbLiSoCjfFI5knV3sWfY98+8huiuan6zick5ikd+A16IhhDtyOcF2WXPxBUiwHyZzD9Y7utM3pfvovQ==} - '@tryghost/image-transform@1.4.16': - resolution: {integrity: sha512-9JCxWud8LrQNUb6Ec5vXau2Ue7JpIK4VKTdFPEbZW04h1d5cKBckZFTFWdHQJl2TLlOMqWkuWFCd2xMnS9x67w==} + '@tryghost/image-transform@1.4.15': + resolution: {integrity: sha512-Fo2j++Xg7jVtsNXvsErEcFOESDIqW+Akf97Z+4qQVTKA2zamOKFS+qUmYsBDK0Rw5i/NyXj08EzFYDH031BJMQ==} '@tryghost/jest-snapshot@2.1.0': resolution: {integrity: sha512-oOi91KgOVnHzMgFTM6yEBA2jjpVBx0tbE1HJYmmoQ6UYt0rB7giUg1fMFcEvbfXu2DAng1mYKQysrf8EJfHslQ==} @@ -8891,6 +8586,9 @@ packages: '@tryghost/mongo-knex@0.9.5': resolution: {integrity: sha512-etO6Kz8a1dgMV6yapD2C2JsoeLrUjkIoIUdXrkV9ELHQsMjMhtI2SAUnMV9AcLhxv0P7h8UWWD2rlNBwo8JJig==} + '@tryghost/mongo-utils@0.6.3': + resolution: {integrity: sha512-BOgflEMywUXnTxXqOPuppFRD50IuIERAt06UEsyGTLRI6GSuO18BDygo72UpMHtM+NspGM0jPc1eQOeVvUJNAw==} + '@tryghost/mongo-utils@0.6.4': resolution: {integrity: sha512-4ZGl9QXoMTQb9qb5HGjMjVLkV39FO0F/0cM4Z3i/9gUXXfdmGZwPdcAMBRT7oRhqng3/4uSRpvQ/Rk0oASM+kg==} @@ -8900,8 +8598,8 @@ packages: '@tryghost/mw-vhost@1.0.6': resolution: {integrity: sha512-FKoSdBw5+fZNbzC58LD3ZLbMEj2UI5+4XOnEau7xINuYBP/c4wN0TXHuJT8y6H1wnYvO4Qu9L+PwHxe1yHBA+Q==} - '@tryghost/nodemailer@2.2.4': - resolution: {integrity: sha512-sYFbDS6ceS72qXVeHiE+23Si+JwfDo3Gx+UcGLfmXPR+mW5VvkehoL1QFg/VOKv6mB2kA2Dknk2lPmJuQAw3Jw==} + '@tryghost/nodemailer@2.2.3': + resolution: {integrity: sha512-91t/mVCpY9XvHIdNZIib5L5qbeFKlV6NuwdwbCgq2DyURf+mzKKVgJMPiYmqFKPa1bI+CZTHGG2zfkP8ktkJcA==} '@tryghost/nql-lang@0.6.5': resolution: {integrity: sha512-13Loz2yH7GCMAfpVawD6KNWNPIVTc4STnP+MeCwbrWg8htv/CPOB0u+i9Eap0qEi8h6TC2aoOvbQV0EvjidQaQ==} @@ -8912,12 +8610,12 @@ packages: '@tryghost/nql@0.13.0': resolution: {integrity: sha512-Aa2vJBPBK5WltmO4ifkeNNG/XedmyeN9B0CT4HLHEIjUARc8wKKntzmRtzSJCSL5moyX40vJ95yTnUNwA1wxew==} + '@tryghost/pretty-cli@3.2.1': + resolution: {integrity: sha512-FpghCxZU8ZGgcMDhlI12oUM6krTVFKL1vUQSuqyheHMcViy8Kx+ZXYQl1n6ycA+BOaJAkYwYr+di7WAGiqMxqA==} + '@tryghost/pretty-cli@3.2.2': resolution: {integrity: sha512-S0W7UW3wRWquLVg0zQ/UfTy1pMM1NnSJkJB2hNMqWWnzLqSdk9yadCNfal0dsQh0QT/5XpAWKir5Mtzt04oQLQ==} - '@tryghost/pretty-cli@3.2.3': - resolution: {integrity: sha512-Yiz1voyrS3zxgnE2/gZQJX8roUy4O0tHHUEoi8nvkFztYO6N9hyi08uPe5onjJI8DE9WR/sCKglhxn3mimqklg==} - '@tryghost/pretty-stream@0.2.5': resolution: {integrity: sha512-2bc5mk+7BAOt/mrcbjTsmUQhTKqysbIDOUUThSemPVbnij6487DhaRbnYWZW2IGKfAucrEO3h6TTm3kfioKJSw==} @@ -8930,11 +8628,14 @@ packages: '@tryghost/promise@0.3.8': resolution: {integrity: sha512-ppcnLBWczpbo4sQcGWtjEA82kdZMv4NFF2MvZRi1MBP4lSOSgh9A636eUxlB1/FpIG+D5ixq84xlY4QJMqW2kA==} - '@tryghost/promise@2.2.3': - resolution: {integrity: sha512-16iSlwcIeQzbPEOBvvR4bfBe/hb6XGXg6/IcoYh6zootyt10I38//IGYf73MJvaGAvQu12JYMC8nIlpXzp1UTA==} + '@tryghost/promise@2.2.1': + resolution: {integrity: sha512-4v4jjMvEQCc3IN/NU+CyH04p491D/ngTJhUmHl4CC03It+3jUDhOiv4X+hlSMnto79ye+Oc/SygXXoQRe9rM2A==} - '@tryghost/referrer-parser@0.1.19': - resolution: {integrity: sha512-soTSDmrU/jgXkevJaoCp6H2fw2R0r2dPhYDf2ws4ikR+etlYlp3Onw+IEuhase2M/WuyDJU12f/h7WuJISYzNQ==} + '@tryghost/promise@2.2.2': + resolution: {integrity: sha512-n4kYcbH3nLfkJY3t4Y0irvr4/F4+H/NQykn5yygig0F6nXWXih+wCX7MgSXGeakGEky6kVBIrqdVf07wTfuYeA==} + + '@tryghost/referrer-parser@0.1.17': + resolution: {integrity: sha512-CsAmY3bHnXxcAqC07ZK3CMvEgGmJjoKabMnuyeMlhPHidtGRfVc3JQ/hQZkjU0QFSt4hp7tKnV0h5rRZG+X0mQ==} engines: {node: '>=16.0.0'} '@tryghost/request@1.0.17': @@ -8949,6 +8650,9 @@ packages: '@tryghost/root-utils@2.2.0': resolution: {integrity: sha512-xqjlS197TqhKmAZpLrnkHbpxHzL3iHdw7Pd2sBXc/LJOHTvMFXJ1QAwjDY87OIREZIthg/t+LsCo8PpE9uaAsA==} + '@tryghost/root-utils@2.2.1': + resolution: {integrity: sha512-vMAS8fk9fOZL4JVSmDlwXkPr48n4ofEhDRq95GOCO8FMHod75JGdOBus08diAv97ca6VYcpT4LmkFecQZOub/A==} + '@tryghost/root-utils@2.2.2': resolution: {integrity: sha512-bRly1o+Ve0rAbPM53zN6aRoC6trWymb/PYOXY4pqfdfvdFLZrS//CWoMC+qcjV7cU3FcmoFlZhnl7ZgHqqHVaA==} @@ -8961,8 +8665,8 @@ packages: '@tryghost/server@3.0.2': resolution: {integrity: sha512-qqLy2QoimSd33oiuRPJe7aro7arwd/0osSoVYX7FvR8vhBAES67howYdorBz/gKCLS13y+2ppkQrAgXR/dOMTA==} - '@tryghost/social-urls@0.1.63': - resolution: {integrity: sha512-TBbs65r2V39y4nWWGgE+TNDTdX7HL1bfa7Q+UAqHxrMaoZYFjd3N9GbrkvPuSR9+wFqDNlMrJZlx9uawz0tqmg==} + '@tryghost/social-urls@0.1.62': + resolution: {integrity: sha512-ii5DDsZEqOsoj2rs3JwPbdtH3geqZgXR/YOOXoVYA7VEnu6IITX08Pk3rDmDqbICTIWPDejzoT8hCo88q18F4Q==} '@tryghost/string@0.2.21': resolution: {integrity: sha512-ILG3h+I432rlgD46tHrugkxEnJ8mh73JxKco4B/uIlBDv5evZjq9psIXt595ZA0Q8DuKMQKZUeVZYV9GBLA1eQ==} @@ -8983,6 +8687,12 @@ packages: '@tryghost/tpl@2.2.0': resolution: {integrity: sha512-6OFCFHNzJxbZ0HXiLIAKJz5OkT6cdZId19m6UZ2+xN8oBg14iZwhoHoBWCzKNDrFN53t3N5JHM3oa/WtoB+BKw==} + '@tryghost/tpl@2.2.1': + resolution: {integrity: sha512-QxMGABOsxAcWTs/pDn6jH6Bv2MJhrmqiBAGGf87Maz1whLv2VgjKY0wSZf7xEx8FoL5TZrUH1AgV//DjTGFSrA==} + + '@tryghost/tpl@2.2.2': + resolution: {integrity: sha512-IC45KOZ6OdFrEMIxMGIS0RXFT8iQ70+8GchHmjbCj9g/VLy6NbT5j3gPejSZbbndKnd2ojCm1dJa8o0x5c15gw==} + '@tryghost/tpl@2.2.3': resolution: {integrity: sha512-OSd+b5RNwPwWxDLlGO/1D0jRb5Xy/dx55rGzSb66+/OauVH5tI4pJVgpavo+W4FjH1cnccVBLjDyaX8Xc1eScg==} @@ -8998,8 +8708,8 @@ packages: '@tryghost/validator@3.1.1': resolution: {integrity: sha512-GIBONNQs7BP7FEKf8XxDk+roLVf86rQle3YWbe4IajqAcHoto952RAARwSAvYOhmqroBfX2++9BAyXEER+Ys9Q==} - '@tryghost/validator@3.1.4': - resolution: {integrity: sha512-xHLD9iek3zeINSy0ZYjVbzQMDgCSGEIzcuT1WUR9+zSBOmQzAXMfvykfn5ppglMroIOUJ4V9OIWcimybQ57BSQ==} + '@tryghost/validator@3.1.3': + resolution: {integrity: sha512-vtOkD3DWRTmSqCpDuW2RzoaXap53qBFSK5D+1p8kXNjxyAXylqAYR+2J4uQPCqq6z58Wx11IfpT/GW9O5k6qPg==} '@tryghost/version@0.1.38': resolution: {integrity: sha512-kVaM7eijFRrBLZLDbmiFxHQ/shmAg5UQ9yM4s9GZN4M3OWY34UHNmjoSOniOHnA5E8fYNA8A3IFmS3FW910xYg==} @@ -9007,18 +8717,18 @@ packages: '@tryghost/version@2.2.0': resolution: {integrity: sha512-PpARp1KQb2Iu0dTAe+oamLrWgQTrEDi0CqGd/NwXR/lWS0nmEmaIZEib/wqk0dRDtIj/kgGU+9Z1I+Mxj2WvfA==} - '@tryghost/version@2.2.3': - resolution: {integrity: sha512-o3ZLYlhmkOvLRhumnul0DbQPKUtf/MZGshzvTBMK+zuSYsqeTbyQAGoxuET07snwJW2t9qebqArOg2+j1nCLsQ==} + '@tryghost/version@2.2.1': + resolution: {integrity: sha512-cWqV91qVKrXwNb3czfV/eJox0+7SICE1E4qgVzkifXlp1METsYW2mAsutvdjhXqiHBb8UbRNWQQEGq9yNzVJHg==} '@tryghost/webhook-mock-receiver@2.1.0': resolution: {integrity: sha512-Cka5SW4igfgbGv33fFyEjkgt1HCA3lNhKCL88ThsDCw3/9ROxKQLcHMB+S7SNcewIDfsS5kI2INHtD+1Tbp/BA==} + '@tryghost/zip@3.3.2': + resolution: {integrity: sha512-Zg+kJfQzwPb6ntRrYfVEl1jpBNTNWAFKdCccOhdCi+GYdm0DZUNOglWxVkYltLmn7lo668qPAfFOhvnpjEPiTw==} + '@tryghost/zip@3.3.3': resolution: {integrity: sha512-+j4jgeoz3JKtMF2pHZCg8MdiJe9X1Hh1VGHZnR03lf2+sXruqob8V4khxbjdRYBwU6OqCuhLcn60qQJnUvjmIg==} - '@tryghost/zip@3.3.4': - resolution: {integrity: sha512-VBpjokl+4iTueQfkHFWS18GNMPONgx8g2MMVDYPr2Dgi33Gv0qfbBN655cw8b8K3tYVQMxFPCyqDCOsQw2Anyw==} - '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -9285,8 +8995,8 @@ packages: '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@22.19.20': - resolution: {integrity: sha512-6tELRwSDYWW9EdZhbeZmYGZ1/7Djkt+Ah3/ScEYT9cDord7UJzasR/4D3VONg9tQI5CDp+/CZC1AXj2pCFOvpw==} + '@types/node@22.19.19': + resolution: {integrity: sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==} '@types/node@24.12.4': resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} @@ -9297,8 +9007,8 @@ packages: '@types/node@9.6.61': resolution: {integrity: sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==} - '@types/nodemailer@8.0.1': - resolution: {integrity: sha512-PxpaInm8V1JQDd4j0ds5HfvWQk8JupS1C0Picb96QJsrrRDjBH+DlK7L4ZdNSqNULhiZRQHc40nLVShaGxXAMw==} + '@types/nodemailer@8.0.0': + resolution: {integrity: sha512-fyf8jWULsCo0d0BuoQ75i6IeoHs47qcqxWc7yUdUcV0pOZGjUTTOvwdG1PRXUDqN/8A64yQdQdnA2pZgcdi+cA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -9661,11 +9371,11 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vitest/coverage-v8@4.1.8': - resolution: {integrity: sha512-lt3kovsyHwYe00wq4D1ti0Z974fWj4NLp6siqiyEufUpyFwK9Yhi7rBhac9JL5aA0zoMrJqc4vYPZRUnI7l7nw==} + '@vitest/coverage-v8@4.1.7': + resolution: {integrity: sha512-qsYPeXc5Q9dFLd1i8Ap+Bx8sQgcp+rFVQo4R0dDsWNBzl26ldVF1qOO+RL24K7FDrR6pA+50XedRLSoSG24bVQ==} peerDependencies: - '@vitest/browser': 4.1.8 - vitest: 4.1.8 + '@vitest/browser': 4.1.7 + vitest: 4.1.7 peerDependenciesMeta: '@vitest/browser': optional: true @@ -9673,11 +9383,11 @@ packages: '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/expect@4.1.8': - resolution: {integrity: sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==} + '@vitest/expect@4.1.7': + resolution: {integrity: sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==} - '@vitest/mocker@4.1.8': - resolution: {integrity: sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==} + '@vitest/mocker@4.1.7': + resolution: {integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -9690,26 +9400,26 @@ packages: '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/pretty-format@4.1.8': - resolution: {integrity: sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==} + '@vitest/pretty-format@4.1.7': + resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==} - '@vitest/runner@4.1.8': - resolution: {integrity: sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==} + '@vitest/runner@4.1.7': + resolution: {integrity: sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==} - '@vitest/snapshot@4.1.8': - resolution: {integrity: sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==} + '@vitest/snapshot@4.1.7': + resolution: {integrity: sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==} '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/spy@4.1.8': - resolution: {integrity: sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==} + '@vitest/spy@4.1.7': + resolution: {integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==} '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vitest/utils@4.1.8': - resolution: {integrity: sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==} + '@vitest/utils@4.1.7': + resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -9923,6 +9633,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + adm-zip@0.5.17: + resolution: {integrity: sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==} + engines: {node: '>=12.0'} + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -10101,10 +9815,6 @@ packages: resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} engines: {node: '>= 14'} - archiver@8.0.0: - resolution: {integrity: sha512-fV1orZfsnPn9BaSByR/qE67rJCLJEy2Ox5bq7nJh+jquWaNh6Sfec75kJ2T6PtdGUbPQlrVoSVCEOa5SdiTQ1g==} - engines: {node: '>=18'} - are-we-there-yet@1.1.7: resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} deprecated: This package is no longer supported. @@ -11725,10 +11435,6 @@ packages: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} - compress-commons@7.0.1: - resolution: {integrity: sha512-g0S8KAD8qf4+V//pr3BfB1aBnARLXNz2Gx+jmHU0LEriUuoQUOPOulVquHKTJ8+EAIIO7fhseNDr9wK5Q9FKBQ==} - engines: {node: '>=18'} - compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -12222,10 +11928,6 @@ packages: resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} engines: {node: '>= 14'} - crc32-stream@7.0.1: - resolution: {integrity: sha512-IBWsY8xznyQrcHn8h4bC8/4ErNke5elzgG8GcqF4RFPw6aHkWWRc7Tgw6upjaTX/CT/yQgqYENkxYsTYN+hW2g==} - engines: {node: '>=18'} - create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -12899,8 +12601,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.4.9: - resolution: {integrity: sha512-4dPSRMRDqHvs0V4YDFCsaIZo4if5u0xM+llyxiM2fwuZFdKArUBAF3VtI2+n8NKg9P870WMdYk0UhqQNoWXbfQ==} + dompurify@3.4.8: + resolution: {integrity: sha512-yb1cEmaOum7wFvOCSQxyfgVlv5D47Rc30iZWoMpbDIWTnJ6grDDQyu2KFJzB2k7u0pMuJcQ1zphH//fFnw2tjQ==} domutils@1.5.1: resolution: {integrity: sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==} @@ -13804,11 +13506,11 @@ packages: peerDependencies: eslint: '>=7.7.0' - eslint-plugin-storybook@10.4.4: - resolution: {integrity: sha512-RqEDQJRaeTdfSDRO9W2sKui4oLax6cSuKU/6vFXbiyEmyaACktkQce9DYEf2i5+MZ07y/X/1G0UZeY+WrPQlIg==} + eslint-plugin-storybook@10.3.5: + resolution: {integrity: sha512-rEFkfU3ypF44GpB4tiJ9EFDItueoGvGi3+weLHZax2ON2MB7VIDsxdSUGvIU5tMURg+oWYlpzCyLm4TpDq2deA==} peerDependencies: eslint: '>=8' - storybook: ^10.4.4 + storybook: ^10.3.5 eslint-plugin-tailwindcss@3.18.3: resolution: {integrity: sha512-lqjNX7mt1Ip2qR236hvhbZ9ff2TFLUWou+tBHz82SA1nWFzOZSoEOI+9UBZmuf2977r2MMp9/y3/broyz8AYig==} @@ -13884,6 +13586,16 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true + eslint@9.37.0: + resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + eslint@9.39.4: resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -14222,13 +13934,13 @@ packages: resolution: {integrity: sha512-l0rOL3aKkoi6ea7MNZe6OHgqYYpn48Qfflr8Pe9G9JPPTx5A+sfboK91ZufzIs59/lPqh351l0eb6iKU9J5oGg==} engines: {node: '>=4'} - file-selector@2.1.2: - resolution: {integrity: sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==} + file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} engines: {node: '>= 12'} - file-type@21.3.4: - resolution: {integrity: sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==} - engines: {node: '>=20'} + file-type@16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} + engines: {node: '>=10'} file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -14651,9 +14363,8 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - ghost-storage-base@2.0.0: - resolution: {integrity: sha512-K4bVe03ErETEMmINEaaGCS3wQXliRWA7c9pTJZiOoRyvdrRaBPhmrl6i25aU6dX7c4dTbEXKmBlpfdgdBdDcIg==} - engines: {node: ^22.13.1 || ^24.0.0} + ghost-storage-base@1.1.2: + resolution: {integrity: sha512-5NG3cm7dbb5RPFcviNlXJuwIN5ydDEaMEY5+ixrMAYspRLLEtAAtUYF+YDkBfpJc86aopqMshcszvwDzE7QCnA==} git-hooks-list@1.0.3: resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} @@ -16297,8 +16008,8 @@ packages: tedious: optional: true - knip@6.16.1: - resolution: {integrity: sha512-TKMn1rxgH6h9vXR9Y0B+Cq7AdPTr9EI02IwoT65NzqYUkvoDQAaJ/aPybiFpAhZ1px6cNYYwXf86iHkBgzCo9w==} + knip@6.14.2: + resolution: {integrity: sha512-Vg3JhIINjZew1I7qAFI4UHemW1mc4azP/BxJvsq9eGDfxpGO7oVCuD/bsWkog9TO/ZwwJeAeOMFZ1kd9jnY9+Q==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -17610,137 +17321,6 @@ packages: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} - node@runtime:22.18.0: - resolution: - type: variations - variants: - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-e7da8wj8n2PlaJaODvDhYAuxBavi0q+ZIXrHLpok/9A= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-aix-ppc64.tar.gz - targets: - - cpu: ppc64 - os: aix - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-LBKRPLpnr3fe2KOZ3z/ZHC5/hijHB52kC7n/M78A38A= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-darwin-arm64.tar.gz - targets: - - cpu: arm64 - os: darwin - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-nIqh5f9XgLOMwRNOImPYTi9DCOuEwCUV468zk2ygLNw= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-darwin-x64.tar.gz - targets: - - cpu: x64 - os: darwin - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-1BXu6pCi/bYMZt04ayWKy/xNH6RyCo313qc2n7283e4= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-linux-arm64.tar.gz - targets: - - cpu: arm64 - os: linux - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-V4MJFFgdw2QOjZU3i3bGkQhg9CUxlZ5OiOtEXgzZgrA= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-linux-armv7l.tar.gz - targets: - - cpu: armv7l - os: linux - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-OPlly6pecw29Oxr+iVz9uG2pY3FHSCfQXYR9M4oMnJc= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-linux-ppc64le.tar.gz - targets: - - cpu: ppc64le - os: linux - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-81eLDnzfJHBF9u63Zv69dJQpVDUhYRAstgQKTUw7TDw= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-linux-s390x.tar.gz - targets: - - cpu: s390x - os: linux - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-oucDcl2Gg76Gu12pZ7+CcvRRi9rxDyE4nissnq6ujIo= - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-linux-x64.tar.gz - targets: - - cpu: x64 - os: linux - - resolution: - archive: zip - bin: - node: node.exe - integrity: sha256-Ajr7PSXEx9EMtuuKZIZcNHtW1LB+ZpBgbQIRMKkZImM= - prefix: node-v22.18.0-win-arm64 - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-win-arm64.zip - targets: - - cpu: arm64 - os: win32 - - resolution: - archive: zip - bin: - node: node.exe - integrity: sha256-yV2KfhyZ5mnMCMnxF24GjB9QhHw3kI/LjDW2JII2ZRE= - prefix: node-v22.18.0-win-x64 - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-win-x64.zip - targets: - - cpu: x64 - os: win32 - - resolution: - archive: zip - bin: - node: node.exe - integrity: sha256-8uVGNF9ynY6CyCoIjmFudt8UMwxT08/su6tR94PwjPQ= - prefix: node-v22.18.0-win-x86 - type: binary - url: https://nodejs.org/download/release/v22.18.0/node-v22.18.0-win-x86.zip - targets: - - cpu: x86 - os: win32 - - resolution: - archive: tarball - bin: - node: bin/node - integrity: sha256-8AOkYGjujcJYFF/2j1LQaVHM+Xu5NM5GEUMiZTrTXHk= - type: binary - url: https://unofficial-builds.nodejs.org/download/release/v22.18.0/node-v22.18.0-linux-x64-musl.tar.gz - targets: - - cpu: x64 - os: linux - libc: musl - version: 22.18.0 - hasBin: true - nodemailer-mailgun-transport@2.1.5: resolution: {integrity: sha512-hF7POkaxFgMvYEd5aHLaQJI2511ld+aQlQi7JH6bGjhjlZ33cIbTB9PimlIrLu5XC3z76Kde6e65OIwL9lOdTA==} @@ -17751,8 +17331,8 @@ packages: resolution: {integrity: sha512-BLFuSth7QtHOkBzyqTehWWyub0NTRDuK2Q2SQfnGLsrJnzyU+Yeh4WpV1eZGuARFj1xQJHIdnTuJZLP+b9R1GQ==} engines: {node: '>=6.0.0'} - nodemailer@8.0.11: - resolution: {integrity: sha512-nrO/pDAUKl+wXX+lx16tDLbnm0fW6sK/x8mgohaCpg+CdCEl482bD4tCuAZk2DyliruiNTIZxRCoWkDqJEnAiA==} + nodemailer@8.0.8: + resolution: {integrity: sha512-p+XsnzXGdtIHXUu2ugxdfG+eX2nehsGhMjW9h0CWj1BhE30hrFz0kh0yIM0/VjUgVsRrDj+80ZO+I1nSkGE4tA==} engines: {node: '>=6.0.0'} nodemon@3.1.14: @@ -18029,16 +17609,12 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-parser@0.127.0: - resolution: {integrity: sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==} + oxc-parser@0.130.0: + resolution: {integrity: sha512-X0PJ+NmOok8qP3vK9uaW431ngkdM9UPEK7KG466urtIL2+EYTEgbZK2yqe2MWKJKBjRlFweP/pJPx0x9muMEVw==} engines: {node: ^20.19.0 || >=22.12.0} - oxc-parser@0.133.0: - resolution: {integrity: sha512-661RSx+ZcjBmjBYid+Fpp/2F5EbtildpeoZh5HdgnGs+jZ03nqQEQW8yGkt4BGyOC3OMPDQQRl8M5kqD2/g6jw==} - engines: {node: ^20.19.0 || >=22.12.0} - - oxc-resolver@11.20.0: - resolution: {integrity: sha512-CblytBiV/a/ZXY34dsVU2NxhIOxMXst8CvDCtyBelVITgd7PLrKzbEbA6oKLdPjvDKDzCiW48qzmzZ+mYaqn+g==} + oxc-resolver@11.19.1: + resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} @@ -18337,6 +17913,10 @@ packages: resolution: {integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==} engines: {node: '>= 0.10'} + peek-readable@4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + engines: {node: '>=8'} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -19383,8 +18963,8 @@ packages: resolution: {integrity: sha512-aJHwaTbbLjYcbMmzD/6xQ785vbEs8TTwoUg/Y/+faSk0TxPcsUxFk9bwsYRyDJID/krm1ZATBn3U+JSP1Vv2Bg==} engines: {node: '>=8'} - react-colorful@5.7.0: - resolution: {integrity: sha512-fuesYIemttah97XmsIHmz4OORDHiSFzyc9HMAIrCHJou2jaRQmL8cFJ76K4zQhhj8jzwOBlOi4BaGTjjOZCfTg==} + react-colorful@5.6.1: + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -19414,8 +18994,8 @@ packages: peerDependencies: react: ^18.3.1 - react-dropzone@14.4.1: - resolution: {integrity: sha512-QDuV76v3uKbHiH34SpwifZ+gOLi1+RdsCO1kl5vxMT4wW8R82+sthjvBw4th3NHF/XX6FBsqDYZVNN+pnhaw0g==} + react-dropzone@14.2.3: + resolution: {integrity: sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==} engines: {node: '>= 10.13'} peerDependencies: react: '>= 16.8 || 18.0.0' @@ -19426,8 +19006,8 @@ packages: peerDependencies: react: '>=16.13.1' - react-hook-form@7.78.0: - resolution: {integrity: sha512-EEZqc+N23moyzTlz61Pj+JvcXo76ICkpfOZo8JZw+sM4+wLQGh6nI2Ms+PdMOYNluFu0ghlM7B8mCzhRYtJCnA==} + react-hook-form@7.72.1: + resolution: {integrity: sha512-RhwBoy2ygeVZje+C+bwJ8g0NjTdBmDlJvAUHTxRjTmSUKPYsKfMphkS2sgEMotsY03bP358yEYlnUeZy//D9Ig==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -19564,13 +19144,13 @@ packages: resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readable-web-to-node-stream@3.0.4: + resolution: {integrity: sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==} + engines: {node: '>=8'} + readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdir-glob@3.0.0: - resolution: {integrity: sha512-AhNB2KgKeVJr16nK9LLZbJNWnYoT23ZrumNKFDebHBdkC8KHSqWo871JAUhoWC/RtjEVdqNMFpM6qrwRbaUqpw==} - engines: {node: '>=18'} - readdirp@2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} @@ -20018,8 +19598,8 @@ packages: deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added hasBin: true - sanitize-html@2.17.5: - resolution: {integrity: sha512-ZmU1joGRrvoyctKIiuwUxqR6moLoU2Wk+2bMccN6f7UwhAmwYDvWziqPxRDDN2Qip62NqnIrVrT9akbL6Wretg==} + sanitize-html@2.17.4: + resolution: {integrity: sha512-2HW7v2ol/uAM7sX4hbD8Z59OGWmAPrvjL8E71UWlBcj6m+kcF6ilQBLny+cIgY214QJeJT5tQuxKKqX0SQqjGQ==} sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -20102,16 +19682,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.3: - resolution: {integrity: sha512-wnilbGyMxzbY7dNOl7jpKbLSjcfeweJWU5j4+u5qW+6/wuGD9KzIGOyZnQVSBM9E7DtWaaH3CyHkppYrKYoxwg==} - engines: {node: '>=10'} - hasBin: true - - semver@7.8.4: - resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} - engines: {node: '>=10'} - hasBin: true - send@0.19.2: resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} @@ -20179,10 +19749,6 @@ packages: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.35.1: - resolution: {integrity: sha512-lW979AMi+ESidzMv/Lnv+F9bknzLyxLqFI05Sm433vOeRcltgxQmXpnfOOFIAlKtwXU/ksupm2srQoFCkR214g==} - engines: {node: '>=20.9.0'} - shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -20495,20 +20061,14 @@ packages: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} - storybook@10.4.4: - resolution: {integrity: sha512-Nn0qFRxU5fyABa6dGRftfL3lz0Y+HkKOaAkfytF8S4Q2K6Szwwq7TwPAEs3Wsj8hBQbYhsobrKADcPsyXQpJaA==} + storybook@10.3.5: + resolution: {integrity: sha512-uBSZu/GZa9aEIW3QMGvdQPMZWhGxSe4dyRWU8B3/Vd47Gy/XLC7tsBxRr13txmmPOEDHZR94uLuq0H50fvuqBw==} hasBin: true peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 prettier: ^2 || ^3 - vite-plus: ^0.1.15 peerDependenciesMeta: - '@types/react': - optional: true prettier: optional: true - vite-plus: - optional: true stream-browserify@2.0.2: resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} @@ -20671,9 +20231,9 @@ packages: strnum@2.3.0: resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} - strtok3@10.3.5: - resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} - engines: {node: '>=18'} + strtok3@6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} + engines: {node: '>=10'} structured-source@4.0.0: resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==} @@ -20833,8 +20393,8 @@ packages: peerDependencies: tailwindcss: ^3.3.0 || ^4.0.0 || ^4.0.0-beta - tailwind-merge@3.6.0: - resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} + tailwind-merge@3.5.0: + resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} tailwindcss@3.4.19: resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} @@ -20952,8 +20512,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - terser@5.48.0: - resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} hasBin: true @@ -21106,9 +20666,9 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - token-types@6.1.2: - resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} - engines: {node: '>=14.16'} + token-types@4.2.1: + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} + engines: {node: '>=10'} tooltip.js@1.3.3: resolution: {integrity: sha512-XWWuy/dBdF/F/YpRE955yqBZ4VdLfiTAUdOqoU+wJm6phJlMpEzl/iYHZ+qJswbeT9VG822bNfsETF9wzmoy5A==} @@ -21201,7 +20761,6 @@ packages: tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} - deprecated: unmaintained hasBin: true peerDependencies: typescript: ^5.0.0 @@ -21226,8 +20785,8 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsx@4.22.4: - resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==} + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} engines: {node: '>=18.0.0'} hasBin: true @@ -21283,8 +20842,8 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.7.0: - resolution: {integrity: sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==} + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} engines: {node: '>=20'} type-is@1.6.18: @@ -21358,10 +20917,6 @@ packages: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} engines: {node: '>= 0.8'} - uint8array-extras@1.5.0: - resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} - engines: {node: '>=18'} - unbash@3.0.0: resolution: {integrity: sha512-FeFPZ/WFT0mbRCuydiZzpPFlrYN8ZUpphQKoq4EeElVIYjYyGzPMxQR/simUwCOJIyVhpFk4RbtyO7RuMpMnHA==} engines: {node: '>=14'} @@ -21806,20 +21361,20 @@ packages: yaml: optional: true - vitest@4.1.8: - resolution: {integrity: sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==} + vitest@4.1.7: + resolution: {integrity: sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.8 - '@vitest/browser-preview': 4.1.8 - '@vitest/browser-webdriverio': 4.1.8 - '@vitest/coverage-istanbul': 4.1.8 - '@vitest/coverage-v8': 4.1.8 - '@vitest/ui': 4.1.8 + '@vitest/browser-playwright': 4.1.7 + '@vitest/browser-preview': 4.1.7 + '@vitest/browser-webdriverio': 4.1.7 + '@vitest/coverage-istanbul': 4.1.7 + '@vitest/coverage-v8': 4.1.7 + '@vitest/ui': 4.1.7 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -22259,12 +21814,8 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zip-stream@7.0.5: - resolution: {integrity: sha512-dSvYKdvLsAHCDqPOhIwk/q5CvuWtTB3Dgpoe0uVEFjTzIOAmsQpprX25InCvrvJsirEbu1OHyy67n/kAj1Sw/w==} - engines: {node: '>=18'} - - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zod@4.1.12: + resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} zrender@5.6.1: resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} @@ -22394,27 +21945,27 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/checksums@3.1000.5': + '@aws-sdk/checksums@3.1000.3': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.974.20 + '@aws-sdk/core': 3.974.19 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/client-s3@3.1066.0': + '@aws-sdk/client-s3@3.1064.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-node': 3.972.55 - '@aws-sdk/middleware-flexible-checksums': 3.974.30 - '@aws-sdk/middleware-sdk-s3': 3.972.51 - '@aws-sdk/signature-v4-multi-region': 3.996.34 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/credential-provider-node': 3.972.53 + '@aws-sdk/middleware-flexible-checksums': 3.974.28 + '@aws-sdk/middleware-sdk-s3': 3.972.49 + '@aws-sdk/signature-v4-multi-region': 3.996.33 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/fetch-http-handler': 5.4.6 @@ -22422,13 +21973,13 @@ snapshots: '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/client-sesv2@3.1064.0': + '@aws-sdk/client-sesv2@3.1053.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-node': 3.972.55 - '@aws-sdk/signature-v4-multi-region': 3.996.34 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/credential-provider-node': 3.972.53 + '@aws-sdk/signature-v4-multi-region': 3.996.33 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/fetch-http-handler': 5.4.6 @@ -22436,7 +21987,7 @@ snapshots: '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/core@3.974.20': + '@aws-sdk/core@3.974.19': dependencies: '@aws-sdk/types': 3.973.12 '@aws-sdk/xml-builder': 3.972.29 @@ -22447,17 +21998,17 @@ snapshots: bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.46': + '@aws-sdk/credential-provider-env@3.972.45': dependencies: - '@aws-sdk/core': 3.974.20 + '@aws-sdk/core': 3.974.19 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.48': + '@aws-sdk/credential-provider-http@3.972.47': dependencies: - '@aws-sdk/core': 3.974.20 + '@aws-sdk/core': 3.974.19 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/fetch-http-handler': 5.4.6 @@ -22465,92 +22016,92 @@ snapshots: '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.53': + '@aws-sdk/credential-provider-ini@3.972.51': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-env': 3.972.46 - '@aws-sdk/credential-provider-http': 3.972.48 - '@aws-sdk/credential-provider-login': 3.972.52 - '@aws-sdk/credential-provider-process': 3.972.46 - '@aws-sdk/credential-provider-sso': 3.972.52 - '@aws-sdk/credential-provider-web-identity': 3.972.52 - '@aws-sdk/nested-clients': 3.997.20 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/credential-provider-env': 3.972.45 + '@aws-sdk/credential-provider-http': 3.972.47 + '@aws-sdk/credential-provider-login': 3.972.50 + '@aws-sdk/credential-provider-process': 3.972.45 + '@aws-sdk/credential-provider-sso': 3.972.50 + '@aws-sdk/credential-provider-web-identity': 3.972.50 + '@aws-sdk/nested-clients': 3.997.18 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-login@3.972.52': + '@aws-sdk/credential-provider-login@3.972.50': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.20 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/nested-clients': 3.997.18 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-node@3.972.55': + '@aws-sdk/credential-provider-node@3.972.53': dependencies: - '@aws-sdk/credential-provider-env': 3.972.46 - '@aws-sdk/credential-provider-http': 3.972.48 - '@aws-sdk/credential-provider-ini': 3.972.53 - '@aws-sdk/credential-provider-process': 3.972.46 - '@aws-sdk/credential-provider-sso': 3.972.52 - '@aws-sdk/credential-provider-web-identity': 3.972.52 + '@aws-sdk/credential-provider-env': 3.972.45 + '@aws-sdk/credential-provider-http': 3.972.47 + '@aws-sdk/credential-provider-ini': 3.972.51 + '@aws-sdk/credential-provider-process': 3.972.45 + '@aws-sdk/credential-provider-sso': 3.972.50 + '@aws-sdk/credential-provider-web-identity': 3.972.50 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-process@3.972.46': + '@aws-sdk/credential-provider-process@3.972.45': dependencies: - '@aws-sdk/core': 3.974.20 + '@aws-sdk/core': 3.974.19 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.52': + '@aws-sdk/credential-provider-sso@3.972.50': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.20 - '@aws-sdk/token-providers': 3.1066.0 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/nested-clients': 3.997.18 + '@aws-sdk/token-providers': 3.1064.0 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/credential-provider-web-identity@3.972.52': + '@aws-sdk/credential-provider-web-identity@3.972.50': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.20 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/nested-clients': 3.997.18 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.974.30': + '@aws-sdk/middleware-flexible-checksums@3.974.28': dependencies: - '@aws-sdk/checksums': 3.1000.5 + '@aws-sdk/checksums': 3.1000.3 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.51': + '@aws-sdk/middleware-sdk-s3@3.972.49': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/signature-v4-multi-region': 3.996.34 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/signature-v4-multi-region': 3.996.33 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.997.20': + '@aws-sdk/nested-clients@3.997.18': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/signature-v4-multi-region': 3.996.34 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/signature-v4-multi-region': 3.996.33 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/fetch-http-handler': 5.4.6 @@ -22558,17 +22109,17 @@ snapshots: '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.34': + '@aws-sdk/signature-v4-multi-region@3.996.33': dependencies: '@aws-sdk/types': 3.973.12 '@smithy/signature-v4': 5.4.6 '@smithy/types': 4.14.3 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1066.0': + '@aws-sdk/token-providers@3.1064.0': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.20 + '@aws-sdk/core': 3.974.19 + '@aws-sdk/nested-clients': 3.997.18 '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 @@ -23481,8 +23032,6 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@borewit/text-codec@0.2.2': {} - '@bramus/specificity@2.4.2': dependencies: css-tree: 3.2.1 @@ -23870,7 +23419,7 @@ snapshots: npm-git-info: 1.0.3 rimraf: 3.0.2 rsvp: 4.8.5 - semver: 7.8.4 + semver: 7.7.4 silent-error: 1.1.1 transitivePeerDependencies: - '@babel/core' @@ -24023,7 +23572,7 @@ snapshots: calculate-cache-key-for-tree: 2.0.0 ember-cli-babel: 7.26.11 ember-cli-version-checker: 5.1.2 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -24032,7 +23581,7 @@ snapshots: '@embroider/shared-internals': 3.0.2 broccoli-funnel: 3.0.8 common-ancestor-path: 1.0.1 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -24062,7 +23611,7 @@ snapshots: pkg-up: 2.0.0 resolve: 1.22.12 resolve-package-path: 1.2.7 - semver: 7.8.4 + semver: 7.7.4 strip-bom: 3.0.0 typescript-memoize: 1.1.1 walk-sync: 1.1.4 @@ -24083,7 +23632,7 @@ snapshots: ember-cli-babel: 7.26.11 lodash: 4.18.1 resolve: 1.22.12 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - bufferutil - canvas @@ -24097,7 +23646,7 @@ snapshots: ember-cli-babel: 7.26.11 lodash: 4.18.1 resolve: 1.22.12 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -24110,7 +23659,7 @@ snapshots: find-up: 5.0.0 lodash: 4.18.1 resolve: 1.22.12 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -24123,7 +23672,7 @@ snapshots: find-up: 5.0.0 lodash: 4.18.1 resolve: 1.22.12 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -24134,7 +23683,7 @@ snapshots: lodash: 4.18.1 pkg-up: 3.1.0 resolve-package-path: 1.2.7 - semver: 7.8.4 + semver: 7.7.4 typescript-memoize: 1.1.1 '@embroider/shared-internals@1.8.3': @@ -24145,7 +23694,7 @@ snapshots: js-string-escape: 1.0.1 lodash: 4.18.1 resolve-package-path: 4.0.3 - semver: 7.8.4 + semver: 7.7.4 typescript-memoize: 1.1.1 '@embroider/shared-internals@2.9.0': @@ -24160,7 +23709,7 @@ snapshots: minimatch: 3.1.5 pkg-entry-points: 1.1.1 resolve-package-path: 4.0.3 - semver: 7.8.4 + semver: 7.7.4 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color @@ -24177,7 +23726,7 @@ snapshots: minimatch: 3.1.5 pkg-entry-points: 1.1.1 resolve-package-path: 4.0.3 - semver: 7.8.4 + semver: 7.7.4 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color @@ -24195,7 +23744,7 @@ snapshots: pkg-entry-points: 1.1.1 resolve-package-path: 4.0.3 resolve.exports: 2.0.3 - semver: 7.8.4 + semver: 7.7.4 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color @@ -24219,30 +23768,14 @@ snapshots: '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 - '@emnapi/core@1.9.2': - dependencies: - '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 - '@emnapi/runtime@1.11.0': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.4.5': dependencies: tslib: 2.8.1 - '@emnapi/runtime@1.9.2': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.0.4': dependencies: tslib: 2.8.1 @@ -24554,6 +24087,11 @@ snapshots: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.37.0(jiti@2.7.0))': + dependencies: + eslint: 9.37.0(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))': dependencies: eslint: 9.39.4(jiti@2.7.0) @@ -24573,6 +24111,10 @@ snapshots: dependencies: '@eslint/core': 0.17.0 + '@eslint/core@0.16.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 @@ -24607,6 +24149,8 @@ snapshots: '@eslint/js@8.57.1': {} + '@eslint/js@9.37.0': {} + '@eslint/js@9.39.4': {} '@eslint/object-schema@2.1.7': {} @@ -24818,10 +24362,10 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@hookform/resolvers@5.4.0(react-hook-form@7.78.0(react@18.3.1))': + '@hookform/resolvers@5.4.0(react-hook-form@7.72.1(react@18.3.1))': dependencies: '@standard-schema/utils': 0.3.0 - react-hook-form: 7.78.0(react@18.3.1) + react-hook-form: 7.72.1(react@18.3.1) '@html-next/vertical-collection@3.0.0(@babel/core@7.29.7)': dependencies: @@ -24873,207 +24417,103 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true - '@img/sharp-darwin-arm64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.3.0 - optional: true - '@img/sharp-darwin-x64@0.34.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.2.4 optional: true - '@img/sharp-darwin-x64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.3.0 - optional: true - - '@img/sharp-freebsd-wasm32@0.35.1': - dependencies: - '@img/sharp-wasm32': 0.35.1 - optional: true - '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true - '@img/sharp-libvips-darwin-arm64@1.3.0': - optional: true - '@img/sharp-libvips-darwin-x64@1.2.4': optional: true - '@img/sharp-libvips-darwin-x64@1.3.0': - optional: true - '@img/sharp-libvips-linux-arm64@1.2.4': optional: true - '@img/sharp-libvips-linux-arm64@1.3.0': - optional: true - '@img/sharp-libvips-linux-arm@1.2.4': optional: true - '@img/sharp-libvips-linux-arm@1.3.0': - optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': optional: true - '@img/sharp-libvips-linux-ppc64@1.3.0': - optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true - '@img/sharp-libvips-linux-riscv64@1.3.0': - optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': optional: true - '@img/sharp-libvips-linux-s390x@1.3.0': - optional: true - '@img/sharp-libvips-linux-x64@1.2.4': optional: true - '@img/sharp-libvips-linux-x64@1.3.0': - optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.3.0': - optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.3.0': - optional: true - '@img/sharp-linux-arm64@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.2.4 optional: true - '@img/sharp-linux-arm64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.3.0 - optional: true - '@img/sharp-linux-arm@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.2.4 optional: true - '@img/sharp-linux-arm@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.3.0 - optional: true - '@img/sharp-linux-ppc64@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-ppc64': 1.2.4 optional: true - '@img/sharp-linux-ppc64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.3.0 - optional: true - '@img/sharp-linux-riscv64@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true - '@img/sharp-linux-riscv64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.3.0 - optional: true - '@img/sharp-linux-s390x@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true - '@img/sharp-linux-s390x@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.3.0 - optional: true - '@img/sharp-linux-x64@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.2.4 optional: true - '@img/sharp-linux-x64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.3.0 - optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true - '@img/sharp-linuxmusl-arm64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.3.0 - optional: true - '@img/sharp-linuxmusl-x64@0.34.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.2.4 optional: true - '@img/sharp-linuxmusl-x64@0.35.1': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.3.0 - optional: true - '@img/sharp-wasm32@0.34.5': dependencies: '@emnapi/runtime': 1.10.0 optional: true - '@img/sharp-wasm32@0.35.1': - dependencies: - '@emnapi/runtime': 1.11.0 - optional: true - - '@img/sharp-webcontainers-wasm32@0.35.1': - dependencies: - '@img/sharp-wasm32': 0.35.1 - optional: true - '@img/sharp-win32-arm64@0.34.5': optional: true - '@img/sharp-win32-arm64@0.35.1': - optional: true - '@img/sharp-win32-ia32@0.34.5': optional: true - '@img/sharp-win32-ia32@0.35.1': - optional: true - '@img/sharp-win32-x64@0.34.5': optional: true - '@img/sharp-win32-x64@0.35.1': - optional: true - '@inquirer/ansi@2.0.6': {} - '@inquirer/confirm@6.1.0(@types/node@22.19.20)': + '@inquirer/confirm@6.1.0(@types/node@22.19.19)': dependencies: - '@inquirer/core': 11.2.0(@types/node@22.19.20) - '@inquirer/type': 4.0.6(@types/node@22.19.20) + '@inquirer/core': 11.2.0(@types/node@22.19.19) + '@inquirer/type': 4.0.6(@types/node@22.19.19) optionalDependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 '@inquirer/confirm@6.1.0(@types/node@25.9.1)': dependencies: @@ -25082,17 +24522,17 @@ snapshots: optionalDependencies: '@types/node': 25.9.1 - '@inquirer/core@11.2.0(@types/node@22.19.20)': + '@inquirer/core@11.2.0(@types/node@22.19.19)': dependencies: '@inquirer/ansi': 2.0.6 '@inquirer/figures': 2.0.6 - '@inquirer/type': 4.0.6(@types/node@22.19.20) + '@inquirer/type': 4.0.6(@types/node@22.19.19) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 4.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 '@inquirer/core@11.2.0(@types/node@25.9.1)': dependencies: @@ -25106,18 +24546,18 @@ snapshots: optionalDependencies: '@types/node': 25.9.1 - '@inquirer/external-editor@1.0.3(@types/node@22.19.20)': + '@inquirer/external-editor@1.0.3(@types/node@22.19.19)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 '@inquirer/figures@2.0.6': {} - '@inquirer/type@4.0.6(@types/node@22.19.20)': + '@inquirer/type@4.0.6(@types/node@22.19.19)': optionalDependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 '@inquirer/type@4.0.6(@types/node@25.9.1)': optionalDependencies: @@ -25377,19 +24817,19 @@ snapshots: '@types/yargs': 17.0.35 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: glob: 13.0.6 react-docgen-typescript: 2.4.0(typescript@5.9.3) - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) optionalDependencies: typescript: 5.9.3 - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: glob: 13.0.6 react-docgen-typescript: 2.4.0(typescript@5.9.3) - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) optionalDependencies: typescript: 5.9.3 @@ -25612,13 +25052,6 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': - dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@tybys/wasm-util': 0.10.2 - optional: true - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -25642,7 +25075,7 @@ snapshots: '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.8.4 + semver: 7.7.4 optional: true '@npmcli/move-file@1.1.2': @@ -25760,197 +25193,135 @@ snapshots: '@otplib/plugin-crypto': 12.0.1 '@otplib/plugin-thirty-two': 12.0.1 - '@oxc-parser/binding-android-arm-eabi@0.127.0': - optional: true - - '@oxc-parser/binding-android-arm-eabi@0.133.0': - optional: true - - '@oxc-parser/binding-android-arm64@0.127.0': - optional: true - - '@oxc-parser/binding-android-arm64@0.133.0': - optional: true - - '@oxc-parser/binding-darwin-arm64@0.127.0': + '@oxc-parser/binding-android-arm-eabi@0.130.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.133.0': + '@oxc-parser/binding-android-arm64@0.130.0': optional: true - '@oxc-parser/binding-darwin-x64@0.127.0': + '@oxc-parser/binding-darwin-arm64@0.130.0': optional: true - '@oxc-parser/binding-darwin-x64@0.133.0': + '@oxc-parser/binding-darwin-x64@0.130.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.127.0': + '@oxc-parser/binding-freebsd-x64@0.130.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.133.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.133.0': + '@oxc-parser/binding-linux-arm64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': + '@oxc-parser/binding-linux-arm64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.133.0': + '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.127.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.133.0': + '@oxc-parser/binding-linux-riscv64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.127.0': + '@oxc-parser/binding-linux-s390x-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.133.0': + '@oxc-parser/binding-linux-x64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': + '@oxc-parser/binding-linux-x64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.133.0': + '@oxc-parser/binding-openharmony-arm64@0.130.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-gnu@0.133.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-musl@0.127.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-musl@0.133.0': - optional: true - - '@oxc-parser/binding-linux-s390x-gnu@0.127.0': - optional: true - - '@oxc-parser/binding-linux-s390x-gnu@0.133.0': - optional: true - - '@oxc-parser/binding-linux-x64-gnu@0.127.0': - optional: true - - '@oxc-parser/binding-linux-x64-gnu@0.133.0': - optional: true - - '@oxc-parser/binding-linux-x64-musl@0.127.0': - optional: true - - '@oxc-parser/binding-linux-x64-musl@0.133.0': - optional: true - - '@oxc-parser/binding-openharmony-arm64@0.127.0': - optional: true - - '@oxc-parser/binding-openharmony-arm64@0.133.0': - optional: true - - '@oxc-parser/binding-wasm32-wasi@0.127.0': - dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - optional: true - - '@oxc-parser/binding-wasm32-wasi@0.133.0': + '@oxc-parser/binding-wasm32-wasi@0.130.0': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.127.0': - optional: true - - '@oxc-parser/binding-win32-arm64-msvc@0.133.0': + '@oxc-parser/binding-win32-arm64-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + '@oxc-parser/binding-win32-ia32-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.133.0': + '@oxc-parser/binding-win32-x64-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.127.0': - optional: true - - '@oxc-parser/binding-win32-x64-msvc@0.133.0': - optional: true + '@oxc-project/types@0.130.0': {} - '@oxc-project/types@0.127.0': {} - - '@oxc-project/types@0.133.0': {} - - '@oxc-resolver/binding-android-arm-eabi@11.20.0': + '@oxc-resolver/binding-android-arm-eabi@11.19.1': optional: true - '@oxc-resolver/binding-android-arm64@11.20.0': + '@oxc-resolver/binding-android-arm64@11.19.1': optional: true - '@oxc-resolver/binding-darwin-arm64@11.20.0': + '@oxc-resolver/binding-darwin-arm64@11.19.1': optional: true - '@oxc-resolver/binding-darwin-x64@11.20.0': + '@oxc-resolver/binding-darwin-x64@11.19.1': optional: true - '@oxc-resolver/binding-freebsd-x64@11.20.0': + '@oxc-resolver/binding-freebsd-x64@11.19.1': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.20.0': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.20.0': + '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.20.0': + '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.20.0': + '@oxc-resolver/binding-linux-arm64-musl@11.19.1': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.20.0': + '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.20.0': + '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.20.0': + '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.20.0': + '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.20.0': + '@oxc-resolver/binding-linux-x64-gnu@11.19.1': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.20.0': + '@oxc-resolver/binding-linux-x64-musl@11.19.1': optional: true - '@oxc-resolver/binding-openharmony-arm64@11.20.0': + '@oxc-resolver/binding-openharmony-arm64@11.19.1': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.20.0': + '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.20.0': + '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.20.0': + '@oxc-resolver/binding-win32-x64-msvc@11.19.1': optional: true '@paralleldrive/cuid2@2.3.1': @@ -27984,92 +27355,87 @@ snapshots: '@stdlib/utils-constructor-name': 0.2.3 '@stdlib/utils-global': 0.2.3 - '@storybook/addon-docs@10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/addon-docs@10.3.5(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.3.31)(react@18.3.1) - '@storybook/csf-plugin': 10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + '@storybook/csf-plugin': 10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-dom-shim': 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@storybook/react-dom-shim': 10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(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) - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - optionalDependencies: - '@types/react': 18.3.31 transitivePeerDependencies: - - '@types/react-dom' + - '@types/react' - esbuild - rollup - vite - webpack - '@storybook/addon-docs@10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/addon-docs@10.3.5(@types/react@18.3.31)(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.3.31)(react@18.3.1) - '@storybook/csf-plugin': 10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + '@storybook/csf-plugin': 10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-dom-shim': 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@storybook/react-dom-shim': 10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(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) - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - optionalDependencies: - '@types/react': 18.3.31 transitivePeerDependencies: - - '@types/react-dom' + - '@types/react' - esbuild - rollup - vite - webpack - '@storybook/addon-links@10.4.4(@types/react@18.3.31)(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@storybook/addon-links@10.3.5(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@storybook/global': 5.0.0 - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@types/react': 18.3.31 react: 18.3.1 - '@storybook/builder-vite@10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/builder-vite@10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: - '@storybook/csf-plugin': 10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/csf-plugin': 10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/builder-vite@10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/builder-vite@10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: - '@storybook/csf-plugin': 10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/csf-plugin': 10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/csf-plugin@10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/csf-plugin@10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: esbuild: 0.28.0 rollup: 4.60.4 - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) webpack: 5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15) - '@storybook/csf-plugin@10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/csf-plugin@10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: esbuild: 0.28.0 rollup: 4.60.4 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) webpack: 5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15) '@storybook/global@5.0.0': {} @@ -28079,75 +27445,66 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-dom-shim@10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@storybook/react-dom-shim@10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.31 - '@types/react-dom': 18.3.7(@types/react@18.3.31) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-vite@10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/react-vite@10.3.5(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@storybook/builder-vite': 10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) - '@storybook/react': 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) + '@storybook/builder-vite': 10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + '@storybook/react': 10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) empathic: 2.0.1 magic-string: 0.30.21 react: 18.3.1 react-docgen: 8.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.12 - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tsconfig-paths: 4.2.0 - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - esbuild - rollup - supports-color - typescript - webpack - '@storybook/react-vite@10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': + '@storybook/react-vite@10.3.5(esbuild@0.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@rollup/pluginutils': 5.3.0(rollup@4.60.4) - '@storybook/builder-vite': 10.4.4(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) - '@storybook/react': 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) + '@storybook/builder-vite': 10.3.5(esbuild@0.28.0)(rollup@4.60.4)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15)) + '@storybook/react': 10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) empathic: 2.0.1 magic-string: 0.30.21 react: 18.3.1 react-docgen: 8.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.12 - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tsconfig-paths: 4.2.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - esbuild - rollup - supports-color - typescript - webpack - '@storybook/react@10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)': + '@storybook/react@10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 10.4.4(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@storybook/react-dom-shim': 10.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 react-docgen: 8.0.3 react-docgen-typescript: 2.4.0(typescript@5.9.3) react-dom: 18.3.1(react@18.3.1) - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@types/react': 18.3.31 - '@types/react-dom': 18.3.7(@types/react@18.3.31) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -28299,9 +27656,9 @@ snapshots: '@tabby_ai/hijri-converter@1.0.5': {} - '@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0))': + '@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0))': dependencies: - tailwindcss: 3.4.19(tsx@4.22.4)(yaml@2.9.0) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.9.0) '@tailwindcss/node@4.2.2': dependencies: @@ -28372,12 +27729,12 @@ snapshots: postcss: 8.5.15 tailwindcss: 4.2.2 - '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 tailwindcss: 4.2.2 - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) '@tanstack/query-core@4.44.0': {} @@ -28590,20 +27947,13 @@ snapshots: react-dom: 17.0.2(react@17.0.2) use-sync-external-store: 1.6.0(react@17.0.2) - '@tokenizer/inflate@0.4.1': - dependencies: - debug: 4.4.3(supports-color@5.5.0) - token-types: 6.1.2 - transitivePeerDependencies: - - supports-color - '@tokenizer/token@0.3.0': {} '@tootallnate/once@3.0.1': {} - '@tryghost/adapter-base-cache@0.1.26': {} + '@tryghost/adapter-base-cache@0.1.25': {} - '@tryghost/admin-api-schema@4.7.5': + '@tryghost/admin-api-schema@4.7.4': dependencies: '@tryghost/errors': 1.3.13 ajv: 8.20.0 @@ -28612,13 +27962,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@tryghost/api-framework@3.2.4': + '@tryghost/api-framework@3.2.3': dependencies: - '@tryghost/debug': 2.2.3 + '@tryghost/debug': 2.2.2 '@tryghost/errors': 1.3.13 - '@tryghost/promise': 2.2.3 - '@tryghost/tpl': 2.2.3 - '@tryghost/validator': 3.1.4 + '@tryghost/promise': 2.2.2 + '@tryghost/tpl': 2.2.2 + '@tryghost/validator': 3.1.3 lodash: 4.18.1 transitivePeerDependencies: - supports-color @@ -28730,6 +28080,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@tryghost/debug@2.2.1': + dependencies: + '@tryghost/root-utils': 2.2.1 + debug: 4.4.3(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + '@tryghost/debug@2.2.2': dependencies: '@tryghost/root-utils': 2.2.2 @@ -28744,7 +28101,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tryghost/domain-events@3.2.5': {} + '@tryghost/domain-events@3.2.3': {} '@tryghost/elasticsearch@3.0.29': dependencies: @@ -28831,7 +28188,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tryghost/image-transform@1.4.16': + '@tryghost/image-transform@1.4.15': dependencies: '@tryghost/errors': 1.3.13 fs-extra: 11.3.5 @@ -29047,6 +28404,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@tryghost/mongo-utils@0.6.3': + dependencies: + lodash: 4.18.1 + '@tryghost/mongo-utils@0.6.4': dependencies: lodash: 4.18.1 @@ -29064,11 +28425,11 @@ snapshots: '@tryghost/mw-vhost@1.0.6': {} - '@tryghost/nodemailer@2.2.4(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8)': + '@tryghost/nodemailer@2.2.3(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8)': dependencies: - '@aws-sdk/client-sesv2': 3.1064.0 + '@aws-sdk/client-sesv2': 3.1053.0 '@tryghost/errors': 1.3.13 - nodemailer: 8.0.10 + nodemailer: 8.0.8 nodemailer-mailgun-transport: 2.1.5(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8) nodemailer-stub-transport: 1.1.0 transitivePeerDependencies: @@ -29152,12 +28513,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@tryghost/pretty-cli@3.2.2': + '@tryghost/pretty-cli@3.2.1': dependencies: chalk: 5.6.2 sywac: 1.3.0 - '@tryghost/pretty-cli@3.2.3': + '@tryghost/pretty-cli@3.2.2': dependencies: chalk: 5.6.2 sywac: 1.3.0 @@ -29186,9 +28547,11 @@ snapshots: '@tryghost/promise@0.3.8': {} - '@tryghost/promise@2.2.3': {} + '@tryghost/promise@2.2.1': {} + + '@tryghost/promise@2.2.2': {} - '@tryghost/referrer-parser@0.1.19': {} + '@tryghost/referrer-parser@0.1.17': {} '@tryghost/request@1.0.17': dependencies: @@ -29222,6 +28585,11 @@ snapshots: caller: 1.1.0 find-root: 1.1.0 + '@tryghost/root-utils@2.2.1': + dependencies: + caller: 1.1.0 + find-root: 1.1.0 + '@tryghost/root-utils@2.2.2': dependencies: caller: 1.1.0 @@ -29245,7 +28613,7 @@ snapshots: - '@75lb/nature' - supports-color - '@tryghost/social-urls@0.1.63': {} + '@tryghost/social-urls@0.1.62': {} '@tryghost/string@0.2.21': dependencies: @@ -29267,6 +28635,10 @@ snapshots: '@tryghost/tpl@2.2.0': {} + '@tryghost/tpl@2.2.1': {} + + '@tryghost/tpl@2.2.2': {} + '@tryghost/tpl@2.2.3': {} '@tryghost/url-utils@5.2.4': @@ -29309,10 +28681,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@tryghost/validator@3.1.4': + '@tryghost/validator@3.1.3': dependencies: '@tryghost/errors': 1.3.13 - '@tryghost/tpl': 2.2.3 + '@tryghost/tpl': 2.2.2 lodash: 4.18.1 moment-timezone: 0.5.45 validator: 13.15.35 @@ -29322,23 +28694,23 @@ snapshots: '@tryghost/version@0.1.38': dependencies: '@tryghost/root-utils': 0.3.38 - semver: 7.8.4 + semver: 7.7.4 '@tryghost/version@2.2.0': dependencies: '@tryghost/root-utils': 2.2.0 semver: 7.7.4 - '@tryghost/version@2.2.3': + '@tryghost/version@2.2.1': dependencies: - '@tryghost/root-utils': 2.2.3 - semver: 7.8.3 + '@tryghost/root-utils': 2.2.1 + semver: 7.8.1 '@tryghost/webhook-mock-receiver@2.1.0': dependencies: p-wait-for: 6.0.0 - '@tryghost/zip@3.3.3': + '@tryghost/zip@3.3.2': dependencies: '@tryghost/errors': 1.3.13 archiver: 7.0.1 @@ -29349,10 +28721,10 @@ snapshots: - react-native-b4a - supports-color - '@tryghost/zip@3.3.4': + '@tryghost/zip@3.3.3': dependencies: '@tryghost/errors': 1.3.13 - archiver: 8.0.0 + archiver: 7.0.1 extract-zip: 2.0.1 transitivePeerDependencies: - bare-abort-controller @@ -29403,12 +28775,12 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 25.9.1 - '@types/bookshelf@1.2.9(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7)': + '@types/bookshelf@1.2.9(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7)': dependencies: '@types/bluebird': 3.5.42 '@types/create-error': 0.3.33 '@types/lodash': 4.17.24 - knex: 0.21.21(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7) + knex: 0.21.21(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7) transitivePeerDependencies: - mssql - mysql @@ -29686,7 +29058,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.19.20': + '@types/node@22.19.19': dependencies: undici-types: 6.21.0 @@ -29700,7 +29072,7 @@ snapshots: '@types/node@9.6.61': {} - '@types/nodemailer@8.0.1': + '@types/nodemailer@8.0.0': dependencies: '@types/node': 25.9.1 @@ -29893,15 +29265,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3))(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/type-utils': 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.58.0 - eslint: 9.39.4(jiti@2.7.0) + eslint: 9.37.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -29945,14 +29317,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.58.0 '@typescript-eslint/types': 8.58.0 '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.4(jiti@2.7.0) + eslint: 9.37.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -30053,13 +29425,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.58.0 '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.4(jiti@2.7.0) + eslint: 9.37.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -30081,7 +29453,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.49.0 debug: 4.4.3(supports-color@5.5.0) minimatch: 9.0.9 - semver: 7.8.4 + semver: 7.7.4 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -30096,7 +29468,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@5.5.0) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.7.4 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -30111,7 +29483,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3(supports-color@5.5.0) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.7.4 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -30126,7 +29498,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3(supports-color@5.5.0) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.7.4 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -30155,13 +29527,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.37.0(jiti@2.7.0)) '@typescript-eslint/scope-manager': 8.58.0 '@typescript-eslint/types': 8.58.0 '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - eslint: 9.39.4(jiti@2.7.0) + eslint: 9.37.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -30226,15 +29598,15 @@ snapshots: '@ungap/structured-clone@1.3.1': {} - '@vitejs/plugin-react-swc@4.1.0(@swc/helpers@0.5.21)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitejs/plugin-react-swc@4.1.0(@swc/helpers@0.5.21)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.35 '@swc/core': 1.15.40(@swc/helpers@0.5.21) - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) @@ -30242,11 +29614,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) @@ -30254,11 +29626,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitejs/plugin-react@4.7.0(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) @@ -30266,14 +29638,14 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.1.8(vitest@4.1.8)': + '@vitest/coverage-v8@4.1.7(vitest@4.1.7)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.8 + '@vitest/utils': 4.1.7 ast-v8-to-istanbul: 1.0.2 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -30282,7 +29654,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@3.2.4': dependencies: @@ -30292,59 +29664,59 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/expect@4.1.8': + '@vitest/expect@4.1.7': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/spy': 4.1.7 + '@vitest/utils': 4.1.7 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.8(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitest/mocker@4.1.7(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.8 + '@vitest/spy': 4.1.7 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.14.6(@types/node@22.19.20)(typescript@5.9.3) - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + msw: 2.14.6(@types/node@22.19.19)(typescript@5.9.3) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitest/mocker@4.1.7(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.8 + '@vitest/spy': 4.1.7 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.14.6(@types/node@25.9.1)(typescript@5.9.3) - vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitest/mocker@4.1.7(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.8 + '@vitest/spy': 4.1.7 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.14.6(@types/node@25.9.1)(typescript@5.9.3) - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/pretty-format@4.1.8': + '@vitest/pretty-format@4.1.7': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.8': + '@vitest/runner@4.1.7': dependencies: - '@vitest/utils': 4.1.8 + '@vitest/utils': 4.1.7 pathe: 2.0.3 - '@vitest/snapshot@4.1.8': + '@vitest/snapshot@4.1.7': dependencies: - '@vitest/pretty-format': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/pretty-format': 4.1.7 + '@vitest/utils': 4.1.7 magic-string: 0.30.21 pathe: 2.0.3 @@ -30352,7 +29724,7 @@ snapshots: dependencies: tinyspy: 4.0.4 - '@vitest/spy@4.1.8': {} + '@vitest/spy@4.1.7': {} '@vitest/utils@3.2.4': dependencies: @@ -30360,9 +29732,9 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@vitest/utils@4.1.8': + '@vitest/utils@4.1.7': dependencies: - '@vitest/pretty-format': 4.1.8 + '@vitest/pretty-format': 4.1.7 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -30628,6 +30000,8 @@ snapshots: acorn@8.16.0: {} + adm-zip@0.5.17: {} + agent-base@6.0.2: dependencies: debug: 4.4.3(supports-color@5.5.0) @@ -30808,22 +30182,6 @@ snapshots: - bare-buffer - react-native-b4a - archiver@8.0.0: - dependencies: - async: 3.2.6 - buffer-crc32: 1.0.0 - is-stream: 4.0.1 - lazystream: 1.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - readdir-glob: 3.0.0 - tar-stream: 3.2.0 - zip-stream: 7.0.5 - transitivePeerDependencies: - - bare-abort-controller - - bare-buffer - - react-native-b4a - are-we-there-yet@1.1.7: dependencies: delegates: 1.0.0 @@ -31866,22 +31224,22 @@ snapshots: raw-body: 1.1.7 safe-json-parse: 1.0.1 - bookshelf-relations@2.8.0(bookshelf@1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7))): + bookshelf-relations@2.8.0(bookshelf@1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7))): dependencies: '@tryghost/debug': 0.1.40 '@tryghost/errors': 1.3.13 bluebird: 3.7.2 - bookshelf: 1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7)) + bookshelf: 1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7)) lodash: 4.18.1 transitivePeerDependencies: - supports-color - bookshelf@1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7)): + bookshelf@1.2.0(knex@2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7)): dependencies: bluebird: 3.7.2 create-error: 0.3.1 inflection: 1.13.4 - knex: 2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7) + knex: 2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7) lodash: 4.18.1 boolbase@1.0.0: {} @@ -32444,7 +31802,7 @@ snapshots: lodash.defaultsdeep: 4.6.1 matcher-collection: 2.0.1 symlink-or-copy: 1.3.1 - terser: 5.48.0 + terser: 5.46.1 walk-sync: 2.2.0 workerpool: 6.5.1 transitivePeerDependencies: @@ -32542,10 +31900,10 @@ snapshots: node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) - brute-knex@4.0.1(express@4.22.2)(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7): + brute-knex@4.0.1(express@4.22.2)(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7): dependencies: express-brute: 1.0.1(express@4.22.2) - knex: 0.20.15(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7) + knex: 0.20.15(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7) transitivePeerDependencies: - express - mssql @@ -33262,14 +32620,6 @@ snapshots: normalize-path: 3.0.0 readable-stream: 4.7.0 - compress-commons@7.0.1: - dependencies: - crc-32: 1.2.2 - crc32-stream: 7.0.1 - is-stream: 4.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - compressible@2.0.18: dependencies: mime-db: 1.54.0 @@ -33487,11 +32837,6 @@ snapshots: crc-32: 1.2.2 readable-stream: 4.7.0 - crc32-stream@7.0.1: - dependencies: - crc-32: 1.2.2 - readable-stream: 4.7.0 - create-ecdh@4.0.4: dependencies: bn.js: 4.12.3 @@ -33516,13 +32861,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 - create-jest@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0): + create-jest@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -33633,7 +32978,7 @@ snapshots: postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 schema-utils: 3.3.0 - semver: 7.8.4 + semver: 7.7.4 webpack: 5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(cssnano@4.1.10)(lightningcss@1.32.0)(postcss@8.5.15) css-prefers-color-scheme@6.0.3(postcss@8.5.15): @@ -34255,7 +33600,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.4.9: + dompurify@3.4.8: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -34343,7 +33688,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.9 - semver: 7.8.4 + semver: 7.7.4 optional: true ee-argv@0.1.4: {} @@ -34448,7 +33793,7 @@ snapshots: mkdirp: 0.5.6 resolve-package-path: 3.1.0 rimraf: 2.7.1 - semver: 7.8.4 + semver: 7.7.4 symlink-or-copy: 1.3.1 typescript-memoize: 1.1.1 walk-sync: 0.3.4 @@ -34492,7 +33837,7 @@ snapshots: pkg-entry-points: 1.1.1 resolve: 1.22.12 resolve-package-path: 4.0.3 - semver: 7.8.4 + semver: 7.7.4 style-loader: 2.0.0(webpack@5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(cssnano@4.1.10)(lightningcss@1.32.0)(postcss@8.5.15)) typescript-memoize: 1.1.1 walk-sync: 3.0.0 @@ -34626,7 +33971,7 @@ snapshots: ember-cli-version-checker: 5.1.2 ensure-posix-path: 1.1.1 resolve-package-path: 4.0.3 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -34738,7 +34083,7 @@ snapshots: hash-for-dep: 1.5.2 heimdalljs-logger: 0.1.10 json-stable-stringify: 1.3.0 - semver: 7.8.4 + semver: 7.7.4 silent-error: 1.1.1 strip-bom: 4.0.0 walk-sync: 2.2.0 @@ -34758,7 +34103,7 @@ snapshots: hash-for-dep: 1.5.2 heimdalljs-logger: 0.1.10 js-string-escape: 1.0.1 - semver: 7.8.4 + semver: 7.7.4 silent-error: 1.1.1 walk-sync: 2.2.0 transitivePeerDependencies: @@ -34943,7 +34288,7 @@ snapshots: fs-extra: 9.1.0 resolve: 1.22.12 rsvp: 4.8.5 - semver: 7.8.4 + semver: 7.7.4 stagehand: 1.0.1 walk-sync: 2.2.0 transitivePeerDependencies: @@ -34958,7 +34303,7 @@ snapshots: fs-extra: 9.1.0 resolve: 1.22.12 rsvp: 4.8.5 - semver: 7.8.4 + semver: 7.7.4 stagehand: 1.0.1 walk-sync: 2.2.0 transitivePeerDependencies: @@ -34985,7 +34330,7 @@ snapshots: ember-cli-version-checker@5.1.2: dependencies: resolve-package-path: 3.1.0 - semver: 7.8.4 + semver: 7.7.4 silent-error: 1.1.1 transitivePeerDependencies: - supports-color @@ -35070,7 +34415,7 @@ snapshots: resolve: 1.22.12 resolve-package-path: 3.1.0 sane: 4.1.0 - semver: 7.8.4 + semver: 7.7.4 silent-error: 1.1.1 sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 @@ -35305,7 +34650,7 @@ snapshots: js-yaml: 3.14.2 npmlog: 4.1.2 rimraf: 3.0.2 - semver: 7.8.4 + semver: 7.7.4 silent-error: 1.1.1 optionalDependencies: ember-mocha: 0.16.2(@babel/core@7.29.7) @@ -36132,7 +35477,7 @@ snapshots: eslint-compat-utils@0.5.1(eslint@8.57.1): dependencies: eslint: 8.57.1 - semver: 7.8.4 + semver: 7.7.4 eslint-formatter-kakoune@1.0.0: {} @@ -36213,7 +35558,7 @@ snapshots: globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 - semver: 7.8.4 + semver: 7.7.4 ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -36229,17 +35574,17 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.39.4(jiti@2.7.0)): + eslint-plugin-react-hooks@5.2.0(eslint@9.37.0(jiti@2.7.0)): dependencies: - eslint: 9.39.4(jiti@2.7.0) + eslint: 9.37.0(jiti@2.7.0) eslint-plugin-react-refresh@0.5.2(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-plugin-react-refresh@0.5.2(eslint@9.39.4(jiti@2.7.0)): + eslint-plugin-react-refresh@0.5.2(eslint@9.37.0(jiti@2.7.0)): dependencies: - eslint: 9.39.4(jiti@2.7.0) + eslint: 9.37.0(jiti@2.7.0) eslint-plugin-react@7.37.5(eslint@8.57.1): dependencies: @@ -36267,22 +35612,22 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-storybook@10.4.4(eslint@8.57.1)(storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3): + eslint-plugin-storybook@10.3.5(eslint@8.57.1)(storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 8.60.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 - storybook: 10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-tailwindcss@3.18.3(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)): + eslint-plugin-tailwindcss@3.18.3(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)): dependencies: fast-glob: 3.3.3 postcss: 8.5.15 synckit: 0.11.12 - tailwind-api-utils: 1.0.3(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)) - tailwindcss: 3.4.19(tsx@4.22.4)(yaml@2.9.0) + tailwind-api-utils: 1.0.3(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.9.0) eslint-plugin-tailwindcss@4.0.0-beta.0(tailwindcss@4.2.2): dependencies: @@ -36307,7 +35652,7 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.8.4 + semver: 7.7.4 strip-indent: 3.0.0 eslint-rule-composer@0.3.0: {} @@ -36394,6 +35739,48 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.37.0(jiti@2.7.0): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.37.0(jiti@2.7.0)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.16.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.37.0 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + '@types/json-schema': 7.0.15 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@5.5.0) + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.7.0 + transitivePeerDependencies: + - supports-color + eslint@9.39.4(jiti@2.7.0): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) @@ -36930,18 +36317,15 @@ snapshots: file-extension@4.0.5: {} - file-selector@2.1.2: + file-selector@0.6.0: dependencies: tslib: 2.8.1 - file-type@21.3.4: + file-type@16.5.4: dependencies: - '@tokenizer/inflate': 0.4.1 - strtok3: 10.3.5 - token-types: 6.1.2 - uint8array-extras: 1.5.0 - transitivePeerDependencies: - - supports-color + readable-web-to-node-stream: 3.0.4 + strtok3: 6.3.0 + token-types: 4.2.1 file-uri-to-path@1.0.0: optional: true @@ -37467,7 +36851,7 @@ snapshots: dependencies: assert-plus: 1.0.0 - ghost-storage-base@2.0.0: + ghost-storage-base@1.1.2: dependencies: moment: 2.30.1 @@ -37935,20 +37319,20 @@ snapshots: minimist: 1.2.8 selderee: 0.6.0 - html-validate@11.5.3(@jest/globals@29.7.0)(@vitest/expect@4.1.8)(jest-snapshot@30.3.0)(jest@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(vitest@4.1.8): + html-validate@11.5.3(@jest/globals@29.7.0)(@vitest/expect@4.1.7)(jest-snapshot@30.3.0)(jest@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(vitest@4.1.7): dependencies: '@html-validate/stylish': 6.0.0 '@sidvind/better-ajv-errors': 7.0.0(ajv@8.20.0) ajv: 8.20.0 kleur: 4.1.5 prompts: 2.4.2 - semver: 7.8.4 + semver: 7.7.4 optionalDependencies: '@jest/globals': 29.7.0 - '@vitest/expect': 4.1.8 - jest: 29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) + '@vitest/expect': 4.1.7 + jest: 29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) jest-snapshot: 30.3.0 - vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) html2canvas-objectfit-fix@1.2.0: dependencies: @@ -38256,9 +37640,9 @@ snapshots: strip-ansi: 6.0.1 through: 2.3.8 - inquirer@8.2.7(@types/node@22.19.20): + inquirer@8.2.7(@types/node@22.19.19): dependencies: - '@inquirer/external-editor': 1.0.3(@types/node@22.19.20) + '@inquirer/external-editor': 1.0.3(@types/node@22.19.19) ansi-escapes: 4.3.2 chalk: 4.1.2 cli-cursor: 3.1.0 @@ -38680,7 +38064,7 @@ snapshots: '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -38765,16 +38149,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1): + jest-cli@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0) + create-jest: 29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -38808,7 +38192,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.29.7 '@jest/test-sequencer': 29.7.0 @@ -38833,7 +38217,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -38911,12 +38295,12 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-extended@7.0.0(jest@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(typescript@5.9.3): + jest-extended@7.0.0(jest@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1))(typescript@5.9.3): dependencies: jest-diff: 30.4.1 typescript: 5.9.3 optionalDependencies: - jest: 29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) + jest: 29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) jest-get-type@29.6.3: {} @@ -39107,7 +38491,7 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -39132,7 +38516,7 @@ snapshots: jest-message-util: 30.3.0 jest-util: 30.3.0 pretty-format: 30.3.0 - semver: 7.8.4 + semver: 7.7.4 synckit: 0.11.12 transitivePeerDependencies: - supports-color @@ -39196,12 +38580,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1): + jest@29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.19.20)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) + jest-cli: 29.7.0(@types/node@22.19.19)(babel-plugin-macros@3.1.0)(node-notifier@10.0.1) optionalDependencies: node-notifier: 10.0.1 transitivePeerDependencies: @@ -39442,7 +38826,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.8.4 + semver: 7.7.4 jsprim@1.4.2: dependencies: @@ -39564,7 +38948,7 @@ snapshots: - supports-color - tedious - knex@0.20.15(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7): + knex@0.20.15(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7): dependencies: colorette: 1.1.0 commander: 4.1.1 @@ -39582,12 +38966,12 @@ snapshots: uuid: 7.0.3 v8flags: 3.2.0 optionalDependencies: - mysql2: 3.22.5(@types/node@22.19.20) + mysql2: 3.22.5(@types/node@22.19.19) sqlite3: 5.1.7 transitivePeerDependencies: - supports-color - knex@0.21.21(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7): + knex@0.21.21(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7): dependencies: colorette: 1.2.1 commander: 6.2.1 @@ -39602,7 +38986,7 @@ snapshots: tildify: 2.0.0 v8flags: 3.2.0 optionalDependencies: - mysql2: 3.22.5(@types/node@22.19.20) + mysql2: 3.22.5(@types/node@22.19.19) sqlite3: 5.1.7 transitivePeerDependencies: - supports-color @@ -39629,7 +39013,7 @@ snapshots: transitivePeerDependencies: - supports-color - knex@2.4.2(mysql2@3.22.5(@types/node@22.19.20))(sqlite3@5.1.7): + knex@2.4.2(mysql2@3.22.5(@types/node@22.19.19))(sqlite3@5.1.7): dependencies: colorette: 2.0.19 commander: 9.5.0 @@ -39646,7 +39030,7 @@ snapshots: tarn: 3.0.2 tildify: 2.0.0 optionalDependencies: - mysql2: 3.22.5(@types/node@22.19.20) + mysql2: 3.22.5(@types/node@22.19.19) sqlite3: 5.1.7 transitivePeerDependencies: - supports-color @@ -39672,21 +39056,25 @@ snapshots: transitivePeerDependencies: - supports-color - knip@6.16.1: + knip@6.14.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): dependencies: fdir: 6.5.0(picomatch@4.0.4) formatly: 0.3.0 get-tsconfig: 4.14.0 jiti: 2.7.0 - oxc-parser: 0.133.0 - oxc-resolver: 11.20.0 + minimist: 1.2.8 + oxc-parser: 0.130.0 + oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) picomatch: 4.0.4 smol-toml: 1.6.1 strip-json-comments: 5.0.3 tinyglobby: 0.2.16 unbash: 3.0.0 yaml: 2.9.0 - zod: 4.4.3 + zod: 4.1.12 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' language-subtag-registry@0.3.23: {} @@ -40214,7 +39602,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.8.4 + semver: 7.7.4 make-fetch-happen@9.1.0: dependencies: @@ -41084,9 +40472,9 @@ snapshots: ms@2.1.3: {} - msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3): + msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 6.1.0(@types/node@22.19.20) + '@inquirer/confirm': 6.1.0(@types/node@22.19.19) '@mswjs/interceptors': 0.41.9 '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 @@ -41101,7 +40489,7 @@ snapshots: statuses: 2.0.2 strict-event-emitter: 0.5.1 tough-cookie: 6.0.1 - type-fest: 5.7.0 + type-fest: 5.6.0 until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: @@ -41126,7 +40514,7 @@ snapshots: statuses: 2.0.2 strict-event-emitter: 0.5.1 tough-cookie: 6.0.1 - type-fest: 5.7.0 + type-fest: 5.6.0 until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: @@ -41170,9 +40558,9 @@ snapshots: seq-queue: 0.0.5 sqlstring: 2.3.3 - mysql2@3.22.5(@types/node@22.19.20): + mysql2@3.22.5(@types/node@22.19.19): dependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 @@ -41288,7 +40676,7 @@ snapshots: node-abi@3.92.0: dependencies: - semver: 7.8.4 + semver: 7.7.4 optional: true node-addon-api@7.1.1: @@ -41320,7 +40708,7 @@ snapshots: graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.4 tar: 7.5.15 tinyglobby: 0.2.16 undici: 6.26.0 @@ -41335,7 +40723,7 @@ snapshots: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.8.4 + semver: 7.7.4 tar: 7.5.15 which: 2.0.2 transitivePeerDependencies: @@ -41404,15 +40792,13 @@ snapshots: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.8.4 + semver: 7.7.4 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 node-releases@2.0.46: {} - node@runtime:22.18.0: {} - nodemailer-mailgun-transport@2.1.5(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8): dependencies: consolidate: 0.15.1(babel-core@6.26.3)(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8) @@ -41479,7 +40865,7 @@ snapshots: nodemailer@8.0.10: {} - nodemailer@8.0.11: {} + nodemailer@8.0.8: {} nodemon@3.1.14: dependencies: @@ -41488,7 +40874,7 @@ snapshots: ignore-by-default: 1.0.1 minimatch: 10.2.5 pstree.remy: 1.1.8 - semver: 7.8.4 + semver: 7.7.4 simple-update-notifier: 2.0.0 supports-color: 5.5.0 touch: 3.1.1 @@ -41522,7 +40908,7 @@ snapshots: normalize-package-data@8.0.0: dependencies: hosted-git-info: 9.0.3 - semver: 7.8.4 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -41550,7 +40936,7 @@ snapshots: npm-package-arg@8.1.5: dependencies: hosted-git-info: 4.1.0 - semver: 7.8.4 + semver: 7.7.4 validate-npm-package-name: 3.0.0 npm-run-path@2.0.2: @@ -41916,77 +41302,56 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-parser@0.127.0: + oxc-parser@0.130.0: dependencies: - '@oxc-project/types': 0.127.0 + '@oxc-project/types': 0.130.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.127.0 - '@oxc-parser/binding-android-arm64': 0.127.0 - '@oxc-parser/binding-darwin-arm64': 0.127.0 - '@oxc-parser/binding-darwin-x64': 0.127.0 - '@oxc-parser/binding-freebsd-x64': 0.127.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.127.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.127.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.127.0 - '@oxc-parser/binding-linux-arm64-musl': 0.127.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.127.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.127.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.127.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.127.0 - '@oxc-parser/binding-linux-x64-gnu': 0.127.0 - '@oxc-parser/binding-linux-x64-musl': 0.127.0 - '@oxc-parser/binding-openharmony-arm64': 0.127.0 - '@oxc-parser/binding-wasm32-wasi': 0.127.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.127.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.127.0 - '@oxc-parser/binding-win32-x64-msvc': 0.127.0 - - oxc-parser@0.133.0: - dependencies: - '@oxc-project/types': 0.133.0 + '@oxc-parser/binding-android-arm-eabi': 0.130.0 + '@oxc-parser/binding-android-arm64': 0.130.0 + '@oxc-parser/binding-darwin-arm64': 0.130.0 + '@oxc-parser/binding-darwin-x64': 0.130.0 + '@oxc-parser/binding-freebsd-x64': 0.130.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.130.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.130.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.130.0 + '@oxc-parser/binding-linux-arm64-musl': 0.130.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.130.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.130.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.130.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.130.0 + '@oxc-parser/binding-linux-x64-gnu': 0.130.0 + '@oxc-parser/binding-linux-x64-musl': 0.130.0 + '@oxc-parser/binding-openharmony-arm64': 0.130.0 + '@oxc-parser/binding-wasm32-wasi': 0.130.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.130.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.130.0 + '@oxc-parser/binding-win32-x64-msvc': 0.130.0 + + oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.133.0 - '@oxc-parser/binding-android-arm64': 0.133.0 - '@oxc-parser/binding-darwin-arm64': 0.133.0 - '@oxc-parser/binding-darwin-x64': 0.133.0 - '@oxc-parser/binding-freebsd-x64': 0.133.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.133.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.133.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.133.0 - '@oxc-parser/binding-linux-arm64-musl': 0.133.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.133.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.133.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.133.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.133.0 - '@oxc-parser/binding-linux-x64-gnu': 0.133.0 - '@oxc-parser/binding-linux-x64-musl': 0.133.0 - '@oxc-parser/binding-openharmony-arm64': 0.133.0 - '@oxc-parser/binding-wasm32-wasi': 0.133.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.133.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.133.0 - '@oxc-parser/binding-win32-x64-msvc': 0.133.0 - - oxc-resolver@11.20.0: - optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.20.0 - '@oxc-resolver/binding-android-arm64': 11.20.0 - '@oxc-resolver/binding-darwin-arm64': 11.20.0 - '@oxc-resolver/binding-darwin-x64': 11.20.0 - '@oxc-resolver/binding-freebsd-x64': 11.20.0 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.20.0 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.20.0 - '@oxc-resolver/binding-linux-arm64-gnu': 11.20.0 - '@oxc-resolver/binding-linux-arm64-musl': 11.20.0 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.20.0 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.20.0 - '@oxc-resolver/binding-linux-riscv64-musl': 11.20.0 - '@oxc-resolver/binding-linux-s390x-gnu': 11.20.0 - '@oxc-resolver/binding-linux-x64-gnu': 11.20.0 - '@oxc-resolver/binding-linux-x64-musl': 11.20.0 - '@oxc-resolver/binding-openharmony-arm64': 11.20.0 - '@oxc-resolver/binding-wasm32-wasi': 11.20.0 - '@oxc-resolver/binding-win32-arm64-msvc': 11.20.0 - '@oxc-resolver/binding-win32-x64-msvc': 11.20.0 + '@oxc-resolver/binding-android-arm-eabi': 11.19.1 + '@oxc-resolver/binding-android-arm64': 11.19.1 + '@oxc-resolver/binding-darwin-arm64': 11.19.1 + '@oxc-resolver/binding-darwin-x64': 11.19.1 + '@oxc-resolver/binding-freebsd-x64': 11.19.1 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.19.1 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.19.1 + '@oxc-resolver/binding-linux-arm64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-arm64-musl': 11.19.1 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-riscv64-musl': 11.19.1 + '@oxc-resolver/binding-linux-s390x-gnu': 11.19.1 + '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-x64-musl': 11.19.1 + '@oxc-resolver/binding-openharmony-arm64': 11.19.1 + '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 + '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 + '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' p-cancelable@2.1.1: {} @@ -42247,6 +41612,8 @@ snapshots: sha.js: 2.4.12 to-buffer: 1.2.2 + peek-readable@4.1.0: {} + pend@1.2.0: {} perf-primitives@0.0.6(@babel/core@7.29.7): @@ -42367,14 +41734,14 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-cli@11.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4): + postcss-cli@11.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0): dependencies: chokidar: 3.6.0 dependency-graph: 1.0.0 fs-extra: 11.3.5 picocolors: 1.1.1 postcss: 8.5.15 - postcss-load-config: 5.1.0(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4) + postcss-load-config: 5.1.0(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0) postcss-reporter: 7.1.0(postcss@8.5.15) pretty-hrtime: 1.0.3 read-cache: 1.0.0 @@ -42565,22 +41932,22 @@ snapshots: postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-load-config@5.1.0(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4): + postcss-load-config@5.1.0(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0): dependencies: lilconfig: 3.1.3 yaml: 2.9.0 optionalDependencies: jiti: 2.7.0 postcss: 8.5.15 - tsx: 4.22.4 + tsx: 4.21.0 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15)(tsx@4.22.4)(yaml@2.9.0): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15)(tsx@4.21.0)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.15 - tsx: 4.22.4 + tsx: 4.21.0 yaml: 2.9.0 postcss-logical@5.0.4(postcss@8.5.15): @@ -43421,7 +42788,7 @@ snapshots: got: 11.8.6 p-reflect: 2.1.0 - react-colorful@5.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -43466,10 +42833,10 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-dropzone@14.4.1(react@18.3.1): + react-dropzone@14.2.3(react@18.3.1): dependencies: attr-accept: 2.2.5 - file-selector: 2.1.2 + file-selector: 0.6.0 prop-types: 15.8.1 react: 18.3.1 @@ -43478,7 +42845,7 @@ snapshots: '@babel/runtime': 7.29.7 react: 18.3.1 - react-hook-form@7.78.0(react@18.3.1): + react-hook-form@7.72.1(react@18.3.1): dependencies: react: 18.3.1 @@ -43607,7 +42974,7 @@ snapshots: '@types/normalize-package-data': 2.4.4 normalize-package-data: 8.0.0 parse-json: 8.3.0 - type-fest: 5.7.0 + type-fest: 5.6.0 unicorn-magic: 0.4.0 read-pkg@5.2.0: @@ -43648,13 +43015,13 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 - readdir-glob@1.1.3: + readable-web-to-node-stream@3.0.4: dependencies: - minimatch: 5.1.9 + readable-stream: 4.7.0 - readdir-glob@3.0.0: + readdir-glob@1.1.3: dependencies: - minimatch: 10.2.5 + minimatch: 5.1.9 readdirp@2.2.1: dependencies: @@ -44225,7 +43592,7 @@ snapshots: minimist: 1.2.8 walker: 1.0.8 - sanitize-html@2.17.5: + sanitize-html@2.17.4: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -44322,10 +43689,6 @@ snapshots: semver@7.8.2: {} - semver@7.8.3: {} - - semver@7.8.4: {} - send@0.19.2: dependencies: debug: 2.6.9(supports-color@1.2.0) @@ -44439,7 +43802,7 @@ snapshots: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.8.4 + semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -44465,39 +43828,6 @@ snapshots: '@img/sharp-win32-arm64': 0.34.5 '@img/sharp-win32-ia32': 0.34.5 '@img/sharp-win32-x64': 0.34.5 - optional: true - - sharp@0.35.1: - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.8.4 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.35.1 - '@img/sharp-darwin-x64': 0.35.1 - '@img/sharp-freebsd-wasm32': 0.35.1 - '@img/sharp-libvips-darwin-arm64': 1.3.0 - '@img/sharp-libvips-darwin-x64': 1.3.0 - '@img/sharp-libvips-linux-arm': 1.3.0 - '@img/sharp-libvips-linux-arm64': 1.3.0 - '@img/sharp-libvips-linux-ppc64': 1.3.0 - '@img/sharp-libvips-linux-riscv64': 1.3.0 - '@img/sharp-libvips-linux-s390x': 1.3.0 - '@img/sharp-libvips-linux-x64': 1.3.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.3.0 - '@img/sharp-libvips-linuxmusl-x64': 1.3.0 - '@img/sharp-linux-arm': 0.35.1 - '@img/sharp-linux-arm64': 0.35.1 - '@img/sharp-linux-ppc64': 0.35.1 - '@img/sharp-linux-riscv64': 0.35.1 - '@img/sharp-linux-s390x': 0.35.1 - '@img/sharp-linux-x64': 0.35.1 - '@img/sharp-linuxmusl-arm64': 0.35.1 - '@img/sharp-linuxmusl-x64': 0.35.1 - '@img/sharp-webcontainers-wasm32': 0.35.1 - '@img/sharp-win32-arm64': 0.35.1 - '@img/sharp-win32-ia32': 0.35.1 - '@img/sharp-win32-x64': 0.35.1 shebang-command@1.2.0: dependencies: @@ -44581,7 +43911,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.8.4 + semver: 7.7.4 sinon-chai@4.0.1(chai@4.5.0)(sinon@22.0.0): dependencies: @@ -44857,7 +44187,7 @@ snapshots: stoppable@1.1.0: {} - storybook@10.4.4(@testing-library/dom@9.3.4)(@types/react@18.3.31)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + storybook@10.3.5(@testing-library/dom@9.3.4)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -44868,14 +44198,11 @@ snapshots: '@webcontainer/env': 1.1.1 esbuild: 0.27.7 open: 10.2.0 - oxc-parser: 0.127.0 - oxc-resolver: 11.20.0 recast: 0.23.11 - semver: 7.8.4 + semver: 7.7.4 use-sync-external-store: 1.6.0(react@18.3.1) ws: 8.21.0 optionalDependencies: - '@types/react': 18.3.31 prettier: 3.8.3 transitivePeerDependencies: - '@testing-library/dom' @@ -45083,9 +44410,10 @@ snapshots: strnum@2.3.0: {} - strtok3@10.3.5: + strtok3@6.3.0: dependencies: '@tokenizer/token': 0.3.0 + peek-readable: 4.1.0 structured-source@4.0.0: dependencies: @@ -45157,7 +44485,7 @@ snapshots: mime: 2.6.0 qs: 6.15.2 readable-stream: 3.6.2 - semver: 7.8.4 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -45295,12 +44623,12 @@ snapshots: tagged-tag@1.0.0: {} - tailwind-api-utils@1.0.3(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)): + tailwind-api-utils@1.0.3(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)): dependencies: enhanced-resolve: 5.22.0 jiti: 2.7.0 local-pkg: 1.2.1 - tailwindcss: 3.4.19(tsx@4.22.4)(yaml@2.9.0) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.9.0) tailwind-api-utils@1.0.3(tailwindcss@4.2.2): dependencies: @@ -45309,9 +44637,9 @@ snapshots: local-pkg: 1.2.1 tailwindcss: 4.2.2 - tailwind-merge@3.6.0: {} + tailwind-merge@3.5.0: {} - tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0): + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -45330,7 +44658,7 @@ snapshots: postcss: 8.5.15 postcss-import: 15.1.0(postcss@8.5.15) postcss-js: 4.1.0(postcss@8.5.15) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15)(tsx@4.22.4)(yaml@2.9.0) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15)(tsx@4.21.0)(yaml@2.9.0) postcss-nested: 6.2.0(postcss@8.5.15) postcss-selector-parser: 6.1.2 resolve: 1.22.12 @@ -45434,7 +44762,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - terser: 5.48.0 + terser: 5.46.1 webpack: 5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(cssnano@4.1.10)(lightningcss@1.32.0)(postcss@8.5.15) optionalDependencies: '@swc/core': 1.15.40(@swc/helpers@0.5.21) @@ -45447,7 +44775,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - terser: 5.48.0 + terser: 5.46.1 webpack: 5.105.4(@swc/core@1.15.40(@swc/helpers@0.5.21))(esbuild@0.28.0)(lightningcss@1.32.0)(postcss@8.5.15) optionalDependencies: '@swc/core': 1.15.40(@swc/helpers@0.5.21) @@ -45463,7 +44791,7 @@ snapshots: source-map: 0.6.1 source-map-support: 0.5.21 - terser@5.48.0: + terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -45686,9 +45014,8 @@ snapshots: toidentifier@1.0.1: {} - token-types@6.1.2: + token-types@4.2.1: dependencies: - '@borewit/text-codec': 0.2.2 '@tokenizer/token': 0.3.0 ieee754: 1.2.1 @@ -45805,9 +45132,10 @@ snapshots: tsscmp@1.0.6: {} - tsx@4.22.4: + tsx@4.21.0: dependencies: - esbuild: 0.28.0 + esbuild: 0.27.7 + get-tsconfig: 4.14.0 optionalDependencies: fsevents: 2.3.3 @@ -45843,7 +45171,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.7.0: + type-fest@5.6.0: dependencies: tagged-tag: 1.0.0 @@ -45908,13 +45236,13 @@ snapshots: transitivePeerDependencies: - supports-color - typescript-eslint@8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3): + typescript-eslint@8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3))(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) - eslint: 9.39.4(jiti@2.7.0) + '@typescript-eslint/utils': 8.58.0(eslint@9.37.0(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.37.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -45939,8 +45267,6 @@ snapshots: dependencies: random-bytes: 1.0.0 - uint8array-extras@1.5.0: {} - unbash@3.0.0: {} unbox-primitive@1.1.0: @@ -46241,7 +45567,7 @@ snapshots: validate-peer-dependencies@1.2.0: dependencies: resolve-package-path: 3.1.0 - semver: 7.8.4 + semver: 7.7.4 validator@13.12.0: {} @@ -46358,54 +45684,54 @@ snapshots: - bare-abort-controller - react-native-b4a - vite-plugin-css-injected-by-js@3.5.2(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vite-plugin-css-injected-by-js@3.5.2(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) - vite-plugin-svgr@4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vite-plugin-svgr@4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.60.4) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - rollup - supports-color - typescript - vite-plugin-svgr@4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vite-plugin-svgr@4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.60.4) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) - vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - rollup - supports-color - typescript - vite-plugin-svgr@4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vite-plugin-svgr@4.5.0(rollup@4.60.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.60.4) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - rollup - supports-color - typescript - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3(supports-color@5.5.0) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0): + vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -46414,15 +45740,15 @@ snapshots: rollup: 4.60.4 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 22.19.20 + '@types/node': 22.19.19 fsevents: 2.3.3 jiti: 2.7.0 lightningcss: 1.32.0 - terser: 5.48.0 - tsx: 4.22.4 + terser: 5.46.1 + tsx: 4.21.0 yaml: 2.9.0 - vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0): + vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -46435,11 +45761,11 @@ snapshots: fsevents: 2.3.3 jiti: 1.21.7 lightningcss: 1.32.0 - terser: 5.48.0 - tsx: 4.22.4 + terser: 5.46.1 + tsx: 4.21.0 yaml: 2.9.0 - vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0): + vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -46452,19 +45778,19 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 lightningcss: 1.32.0 - terser: 5.48.0 - tsx: 4.22.4 + terser: 5.46.1 + tsx: 4.21.0 yaml: 2.9.0 - vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@22.19.20)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(msw@2.14.6(@types/node@22.19.20)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/expect': 4.1.7 + '@vitest/mocker': 4.1.7(msw@2.14.6(@types/node@22.19.19)(typescript@5.9.3))(vite@7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.7 + '@vitest/runner': 4.1.7 + '@vitest/snapshot': 4.1.7 + '@vitest/spy': 4.1.7 + '@vitest/utils': 4.1.7 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -46476,25 +45802,25 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@22.19.20)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@22.19.19)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@types/node': 22.19.20 - '@vitest/coverage-v8': 4.1.8(vitest@4.1.8) + '@types/node': 22.19.19 + '@vitest/coverage-v8': 4.1.7(vitest@4.1.7) jsdom: 29.1.1(@noble/hashes@1.8.0) transitivePeerDependencies: - msw - vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/expect': 4.1.7 + '@vitest/mocker': 4.1.7(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.7 + '@vitest/runner': 4.1.7 + '@vitest/snapshot': 4.1.7 + '@vitest/spy': 4.1.7 + '@vitest/utils': 4.1.7 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -46506,25 +45832,25 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.9.1 - '@vitest/coverage-v8': 4.1.8(vitest@4.1.8) + '@vitest/coverage-v8': 4.1.7(vitest@4.1.7) jsdom: 29.1.1(@noble/hashes@1.8.0) transitivePeerDependencies: - msw - vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)): + vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(jsdom@29.1.1(@noble/hashes@1.8.0))(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/expect': 4.1.7 + '@vitest/mocker': 4.1.7(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(vite@7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.7 + '@vitest/runner': 4.1.7 + '@vitest/snapshot': 4.1.7 + '@vitest/spy': 4.1.7 + '@vitest/utils': 4.1.7 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -46536,12 +45862,12 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.48.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 7.3.2(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 25.9.1 - '@vitest/coverage-v8': 4.1.8(vitest@4.1.8) + '@vitest/coverage-v8': 4.1.7(vitest@4.1.7) jsdom: 29.1.1(@noble/hashes@1.8.0) transitivePeerDependencies: - msw @@ -47073,13 +46399,7 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zip-stream@7.0.5: - dependencies: - compress-commons: 7.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - zod@4.4.3: {} + zod@4.1.12: {} zrender@5.6.1: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 74986f872ab..563c55039f7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -39,19 +39,19 @@ catalog: '@radix-ui/react-tabs': 1.1.14 '@radix-ui/react-tooltip': 1.2.9 '@sentry/react': 7.120.4 - '@storybook/addon-docs': 10.4.4 - '@storybook/addon-links': 10.4.4 - '@storybook/react-vite': 10.4.4 + '@storybook/addon-docs': 10.3.5 + '@storybook/addon-links': 10.3.5 + '@storybook/react-vite': 10.3.5 '@tailwindcss/postcss': 4.2.2 '@tailwindcss/vite': 4.2.2 '@tanstack/react-query': 4.44.0 '@testing-library/jest-dom': 6.9.1 '@testing-library/react': 14.3.1 - '@tryghost/api-framework': 3.2.4 + '@tryghost/api-framework': 3.2.3 '@tryghost/color-utils': 0.2.19 '@tryghost/custom-fonts': 1.0.11 - '@tryghost/debug': 2.2.3 - '@tryghost/domain-events': 3.2.5 + '@tryghost/debug': 2.2.1 + '@tryghost/domain-events': 3.2.3 '@tryghost/helpers': 1.1.106 '@tryghost/kg-clean-basic-html': 4.3.2 '@tryghost/kg-converters': 1.2.2 @@ -65,7 +65,7 @@ catalog: '@types/express': 4.17.25 '@types/html-minifier': ^4.0.6 '@types/jest': 29.5.14 - '@types/node': 22.19.20 + '@types/node': 22.19.19 '@types/react': 18.3.31 '@types/react-dom': 18.3.7 '@types/sanitize-html': 2.16.1 @@ -73,7 +73,8 @@ catalog: '@typescript-eslint/eslint-plugin': 8.49.0 '@typescript-eslint/parser': 8.49.0 '@vitejs/plugin-react': 4.7.0 - '@vitest/coverage-v8': 4.1.8 + '@vitest/coverage-v8': 4.1.7 + adm-zip: ^0.5.17 bson-objectid: 2.0.4 c8: 11.0.0 chai: 4.5.0 @@ -82,7 +83,7 @@ catalog: concurrently: 10.0.3 cross-fetch: 4.1.0 dequal: 2.0.3 - dompurify: 3.4.9 + dompurify: 3.4.8 dotenv: 17.4.2 eslint: 8.57.1 eslint-plugin-react-hooks: 5.2.0 @@ -106,23 +107,23 @@ catalog: react-router: 7.14.0 sinon: 22.0.0 sonner: 2.0.7 - storybook: 10.4.4 + storybook: 10.3.5 supertest: 7.2.2 tailwindcss: 4.2.2 - tsx: 4.22.4 + tsx: 4.21.0 tw-animate-css: 1.4.0 - type-fest: 5.7.0 + type-fest: 5.6.0 typescript: 5.9.3 validator: 13.12.0 vite: 7.3.2 vite-plugin-svgr: 4.5.0 - vitest: 4.1.8 - zod: 4.4.3 + vitest: 4.1.7 + zod: 4.1.12 catalogs: eslint9: - '@eslint/js': 9.39.4 - eslint: 9.39.4 + '@eslint/js': 9.37.0 + eslint: 9.37.0 react17: react: 17.0.2 react-dom: 17.0.2 @@ -204,5 +205,3 @@ minimumReleaseAgeExclude: - "ghost-storage-base" - "gscan" - "knex-migrator" - # Renovate security update: file-type@21.3.1 || 21.3.2 - - file-type@21.3.1 || 21.3.2