Live video on the AT Protocol

Merge pull request #790 from streamplace/natb/i18next-cli

feat: replace i18next-parser with i18next-cli

authored by natalie and committed by GitHub dd043fc2 65b5a55c

+1253 -507
+21
js/components/i18next.config.js
··· 1 + import { defineConfig } from "i18next-cli"; 2 + // i18next-cli configuration 3 + // We use i18next-fluent, so variant handling (platform, count, etc.) 4 + // is done using Fluent's select expressions within messages. 5 + // Example: shortcut-key-search = { $platform -> [mac] Cmd+K [windows] Ctrl+K *[other] Ctrl+K } 6 + 7 + export default defineConfig({ 8 + locales: ["en-US", "es-ES", "fr-FR", "pt-BR", "zh-Hant"], 9 + extract: { 10 + input: [ 11 + "src/**/*.{js,jsx,ts,tsx}", 12 + "../app/src/**/*.{js,jsx,ts,tsx}", 13 + "../app/components/**/*.{js,jsx,ts,tsx}", 14 + ], 15 + contextSeparator: "|", 16 + pluralSeparator: "/", 17 + output: "public/locales/{{language}}/{{namespace}}.json", 18 + primaryLanguage: "en-US", 19 + defaultNS: "common", 20 + }, 21 + });
+3 -2
js/components/package.json
··· 19 19 "devDependencies": { 20 20 "@fluent/syntax": "^0.19.0", 21 21 "@types/sdp-transform": "^2.15.0", 22 + "i18next-cli": "^1.32.0", 22 23 "nodemon": "^3.1.10", 23 24 "tsup": "^8.5.0" 24 25 }, ··· 74 75 "start": "tsc --watch --preserveWatchOutput", 75 76 "prepare": "node scripts/compile-translations.js && tsc", 76 77 "i18n:compile": "node scripts/compile-translations.js", 77 - "i18n:watch": "nodemon scripts/compile-translations.js --watch locales/**/*.ftl", 78 - "i18n:extract": "node scripts/extract-i18n.js" 78 + "i18n:watch": "nodemon --watch 'locales/**/*.ftl' --exec 'node scripts/compile-translations.js'", 79 + "i18n:extract": "i18next-cli extract && node scripts/migrate-i18n.js" 79 80 } 80 81 }
-336
js/components/scripts/extract-i18n.js
··· 1 - #!/usr/bin/env node 2 - 3 - /** 4 - * i18n key extraction script 5 - * 1. Scans the codebase for i18n keys (t('key'), Trans components, etc) 6 - * 2. Extracts keys into namespace JSON files (common.json, settings.json, etc) 7 - * 3. Migrates new keys to corresponding .ftl files for translation 8 - * 9 - * Usage: 10 - * node extract-i18n.js # Extract keys and report new ones 11 - * node extract-i18n.js --add-to=common # Add new keys to common.ftl 12 - * node extract-i18n.js --add-to=settings # Add new keys to settings.ftl 13 - */ 14 - 15 - const { execSync } = require("child_process"); 16 - const fs = require("fs"); 17 - const path = require("path"); 18 - 19 - // Parse command line arguments 20 - const args = process.argv.slice(2); 21 - const addToNamespace = args 22 - .find((arg) => arg.startsWith("--add-to=")) 23 - ?.split("=")[1]; 24 - 25 - // Paths 26 - const COMPONENTS_ROOT = path.join(__dirname, ".."); 27 - const APP_ROOT = path.join(__dirname, "..", "..", "app"); 28 - const MANIFEST_PATH = path.join(COMPONENTS_ROOT, "locales/manifest.json"); 29 - const LOCALES_FTL_DIR = path.join(COMPONENTS_ROOT, "locales"); 30 - const LOCALES_JSON_DIR = path.join(COMPONENTS_ROOT, "public/locales"); 31 - 32 - // Load manifest 33 - const manifest = JSON.parse(fs.readFileSync(MANIFEST_PATH, "utf8")); 34 - 35 - // Configuration for i18next-parser 36 - const parserConfig = { 37 - contextSeparator: "_", 38 - createOldCatalogs: false, 39 - defaultNamespace: "messages", 40 - defaultValue: "", 41 - indentation: 2, 42 - keepRemoved: true, 43 - keySeparator: false, 44 - namespaceSeparator: false, 45 - 46 - lexers: { 47 - js: ["JavascriptLexer"], 48 - ts: ["JavascriptLexer"], 49 - jsx: ["JsxLexer"], 50 - tsx: ["JsxLexer"], 51 - html: false, 52 - htm: false, 53 - handlebars: false, 54 - hbs: false, 55 - }, 56 - 57 - locales: manifest.supportedLocales, 58 - output: path.join(LOCALES_JSON_DIR, "$LOCALE/$NAMESPACE.json"), 59 - input: [ 60 - path.join(COMPONENTS_ROOT, "src/**/*.{js,jsx,ts,tsx}"), 61 - path.join(APP_ROOT, "src/**/*.{js,jsx,ts,tsx}"), 62 - path.join(APP_ROOT, "components/**/*.{js,jsx,ts,tsx}"), 63 - "!**/node_modules/**", 64 - "!**/dist/**", 65 - "!**/*.test.{js,jsx,ts,tsx}", 66 - "!**/*.spec.{js,jsx,ts,tsx}", 67 - ], 68 - 69 - verbose: true, 70 - sort: true, 71 - failOnWarnings: false, 72 - failOnUpdate: false, 73 - }; 74 - 75 - /** 76 - * Extract keys from codebase using i18next-parser 77 - */ 78 - function extractKeys() { 79 - const configPath = path.join(__dirname, ".i18next-parser.config.js"); 80 - const configContent = `module.exports = ${JSON.stringify(parserConfig, null, 2)};`; 81 - 82 - try { 83 - fs.writeFileSync(configPath, configContent); 84 - console.log("🔍 Extracting i18n keys from codebase..."); 85 - 86 - execSync(`npx i18next-parser --config ${configPath}`, { 87 - stdio: "inherit", 88 - cwd: __dirname, 89 - }); 90 - 91 - console.log("✅ Keys extracted successfully!"); 92 - return true; 93 - } catch (error) { 94 - console.error("❌ Error extracting i18n keys:", error.message); 95 - return false; 96 - } finally { 97 - if (fs.existsSync(configPath)) { 98 - fs.unlinkSync(configPath); 99 - } 100 - } 101 - } 102 - 103 - /** 104 - * Read existing keys from .ftl files in a locale directory 105 - * Returns a map of namespace -> Set of keys 106 - */ 107 - function getExistingFtlKeys(localeDir) { 108 - const keysByNamespace = {}; 109 - 110 - if (!fs.existsSync(localeDir)) { 111 - return keysByNamespace; 112 - } 113 - 114 - const ftlFiles = fs 115 - .readdirSync(localeDir) 116 - .filter((file) => file.endsWith(".ftl")); 117 - 118 - for (const file of ftlFiles) { 119 - const namespace = path.basename(file, ".ftl"); 120 - const keys = new Set(); 121 - 122 - const content = fs.readFileSync(path.join(localeDir, file), "utf8"); 123 - const lines = content.split("\n"); 124 - 125 - for (const line of lines) { 126 - const trimmed = line.trim(); 127 - const keyMatch = trimmed.match(/^([a-zA-Z][a-zA-Z0-9_-]*)\s*=/); 128 - if (keyMatch) { 129 - keys.add(keyMatch[1]); 130 - } 131 - } 132 - 133 - keysByNamespace[namespace] = keys; 134 - } 135 - 136 - return keysByNamespace; 137 - } 138 - 139 - /** 140 - * Get all namespaces (json files) in the locale directory 141 - */ 142 - function getNamespaces(localeJsonDir) { 143 - if (!fs.existsSync(localeJsonDir)) { 144 - return []; 145 - } 146 - 147 - return fs 148 - .readdirSync(localeJsonDir) 149 - .filter((file) => file.endsWith(".json")) 150 - .map((file) => path.basename(file, ".json")); 151 - } 152 - 153 - /** 154 - * Add new keys to a .ftl file 155 - */ 156 - function addKeysToFtlFile(localeDir, namespace, newKeys, locale) { 157 - const targetFile = path.join(localeDir, `${namespace}.ftl`); 158 - 159 - // Create file with header if it doesn't exist 160 - if (!fs.existsSync(localeDir)) { 161 - fs.mkdirSync(localeDir, { recursive: true }); 162 - } 163 - 164 - if (!fs.existsSync(targetFile)) { 165 - const languageName = manifest.languages[locale]?.name || locale; 166 - const namespaceName = 167 - namespace.charAt(0).toUpperCase() + namespace.slice(1); 168 - const header = `# ${namespaceName} translations - ${languageName}\n\n`; 169 - fs.writeFileSync(targetFile, header); 170 - } 171 - 172 - // Append new keys 173 - let content = fs.readFileSync(targetFile, "utf8"); 174 - 175 - if (!content.endsWith("\n")) { 176 - content += "\n"; 177 - } 178 - 179 - content += "\n# Newly extracted keys\n"; 180 - content += newKeys.map((key) => `${key} = ${key}`).join("\n") + "\n"; 181 - 182 - fs.writeFileSync(targetFile, content); 183 - 184 - return targetFile; 185 - } 186 - 187 - /** 188 - * Migrate extracted JSON keys to .ftl files 189 - */ 190 - function migrateKeysToFtl() { 191 - console.log("\n🔄 Analyzing extracted keys..."); 192 - 193 - const newKeysByLocaleAndNamespace = {}; // locale -> namespace -> [keys] 194 - 195 - // Process each locale 196 - for (const locale of manifest.supportedLocales) { 197 - const localeJsonDir = path.join(LOCALES_JSON_DIR, locale); 198 - const localeFtlDir = path.join(LOCALES_FTL_DIR, locale); 199 - 200 - if (!fs.existsSync(localeJsonDir)) { 201 - console.log(`⚠️ No JSON files found for ${locale}`); 202 - continue; 203 - } 204 - 205 - // Get all namespaces (json files) 206 - const namespaces = getNamespaces(localeJsonDir); 207 - 208 - if (namespaces.length === 0) { 209 - console.log(`⚠️ No namespace files found for ${locale}`); 210 - continue; 211 - } 212 - 213 - // Get existing keys from .ftl files 214 - const existingKeysByNamespace = getExistingFtlKeys(localeFtlDir); 215 - 216 - // Process each namespace 217 - for (const namespace of namespaces) { 218 - const jsonPath = path.join(localeJsonDir, `${namespace}.json`); 219 - const jsonContent = JSON.parse(fs.readFileSync(jsonPath, "utf8")); 220 - const extractedKeys = Object.keys(jsonContent); 221 - 222 - // Get existing keys for this namespace 223 - const existingKeys = existingKeysByNamespace[namespace] || new Set(); 224 - 225 - // Find new keys 226 - const newKeys = extractedKeys.filter((key) => !existingKeys.has(key)); 227 - 228 - if (newKeys.length > 0) { 229 - if (!newKeysByLocaleAndNamespace[locale]) { 230 - newKeysByLocaleAndNamespace[locale] = {}; 231 - } 232 - newKeysByLocaleAndNamespace[locale][namespace] = newKeys; 233 - } 234 - } 235 - } 236 - 237 - // Check if there are any new keys 238 - const hasNewKeys = Object.keys(newKeysByLocaleAndNamespace).length > 0; 239 - 240 - if (!hasNewKeys) { 241 - console.log( 242 - "\n🎉 No new keys found. All extracted keys already exist in .ftl files.", 243 - ); 244 - return; 245 - } 246 - 247 - // Display found keys 248 - console.log("\n📊 New keys found:"); 249 - for (const locale of Object.keys(newKeysByLocaleAndNamespace)) { 250 - console.log(`\n${locale}:`); 251 - for (const namespace of Object.keys(newKeysByLocaleAndNamespace[locale])) { 252 - const keys = newKeysByLocaleAndNamespace[locale][namespace]; 253 - console.log(` 📝 ${namespace} (${keys.length} new keys):`); 254 - keys.forEach((key) => console.log(` - ${key}`)); 255 - } 256 - } 257 - 258 - // If --add-to flag is provided, add keys to that namespace 259 - if (addToNamespace) { 260 - console.log(`\n✍️ Adding new keys to ${addToNamespace}.ftl files...`); 261 - 262 - let totalAdded = 0; 263 - const processedFiles = []; 264 - 265 - for (const locale of Object.keys(newKeysByLocaleAndNamespace)) { 266 - const localeFtlDir = path.join(LOCALES_FTL_DIR, locale); 267 - const namespacesForLocale = newKeysByLocaleAndNamespace[locale]; 268 - 269 - // Collect all new keys across all namespaces for this locale 270 - const allNewKeys = []; 271 - for (const namespace of Object.keys(namespacesForLocale)) { 272 - allNewKeys.push(...namespacesForLocale[namespace]); 273 - } 274 - 275 - if (allNewKeys.length === 0) continue; 276 - 277 - // Add all keys to the specified namespace 278 - const targetFile = addKeysToFtlFile( 279 - localeFtlDir, 280 - addToNamespace, 281 - allNewKeys, 282 - locale, 283 - ); 284 - processedFiles.push(path.relative(process.cwd(), targetFile)); 285 - totalAdded += allNewKeys.length; 286 - 287 - console.log( 288 - `✅ ${locale}: Added ${allNewKeys.length} keys to ${addToNamespace}.ftl`, 289 - ); 290 - } 291 - 292 - console.log( 293 - `\n🎉 Migration complete! Added ${totalAdded} new keys to ${addToNamespace}.ftl files.`, 294 - ); 295 - console.log("\nModified files:"); 296 - processedFiles.forEach((file) => console.log(` 📄 ${file}`)); 297 - 298 - console.log("\n💡 Next steps:"); 299 - console.log(" 1. Review the new keys in your .ftl files"); 300 - console.log(" 2. Replace placeholder values with actual translations"); 301 - console.log(" 3. Run `pnpm i18n:compile` to update compiled JSON files"); 302 - } else { 303 - // Just report 304 - let totalNewKeys = 0; 305 - const namespaceSet = new Set(); 306 - 307 - for (const locale of Object.keys(newKeysByLocaleAndNamespace)) { 308 - for (const namespace of Object.keys( 309 - newKeysByLocaleAndNamespace[locale], 310 - )) { 311 - namespaceSet.add(namespace); 312 - totalNewKeys += newKeysByLocaleAndNamespace[locale][namespace].length; 313 - } 314 - } 315 - 316 - console.log( 317 - `\n💡 Found ${totalNewKeys} new keys across ${namespaceSet.size} namespace(s).`, 318 - ); 319 - console.log("\nTo add these keys to a specific namespace file, run:"); 320 - Array.from(namespaceSet).forEach((ns) => { 321 - console.log(` node extract-i18n.js --add-to=${ns}`); 322 - }); 323 - } 324 - } 325 - 326 - function main() { 327 - const success = extractKeys(); 328 - 329 - if (success) { 330 - migrateKeysToFtl(); 331 - } else { 332 - process.exit(1); 333 - } 334 - } 335 - 336 - main();
+413
js/components/scripts/migrate-i18n.js
··· 1 + #!/usr/bin/env node 2 + 3 + /** 4 + * i18n migration script 5 + * Migrates extracted JSON keys to .ftl files for translation 6 + * 7 + * This script expects that i18next-cli has already extracted keys to JSON files. 8 + * It reads those JSON files, compares them to existing .ftl files, and adds any 9 + * new keys to the .ftl files. 10 + * 11 + * For keys with i18next context/plural suffixes (e.g., key_male, key_female, key_one, key_other), 12 + * it will convert them into Fluent select expressions. 13 + * 14 + * Usage: 15 + * node migrate-i18n.js # Report new keys 16 + * node migrate-i18n.js --add-to=common # Add new keys to common.ftl 17 + * node migrate-i18n.js --add-to=settings # Add new keys to settings.ftl 18 + */ 19 + 20 + const fs = require("fs"); 21 + const path = require("path"); 22 + 23 + // Parse command line arguments 24 + const args = process.argv.slice(2); 25 + const addToNamespace = args 26 + .find((arg) => arg.startsWith("--add-to=")) 27 + ?.split("=")[1]; 28 + 29 + // Paths 30 + const COMPONENTS_ROOT = path.join(__dirname, ".."); 31 + const MANIFEST_PATH = path.join(COMPONENTS_ROOT, "locales/manifest.json"); 32 + const LOCALES_FTL_DIR = path.join(COMPONENTS_ROOT, "locales"); 33 + const LOCALES_JSON_DIR = path.join(COMPONENTS_ROOT, "public/locales"); 34 + 35 + // Load manifest 36 + const manifest = JSON.parse(fs.readFileSync(MANIFEST_PATH, "utf8")); 37 + 38 + // Plural forms that i18next uses 39 + const PLURAL_FORMS = ["zero", "one", "two", "few", "many", "other"]; 40 + 41 + // Separators used by i18next-cli (configured in i18next.config.js) 42 + const CONTEXT_SEPARATOR = "|"; 43 + const PLURAL_SEPARATOR = "/"; 44 + 45 + /** 46 + * Group keys by base name, detecting context and plural variants 47 + * Returns { baseKey: { base: true, variants: { context: Set, plurals: Set } } } 48 + */ 49 + function groupKeysByBase(keys) { 50 + const groups = {}; 51 + 52 + for (const key of keys) { 53 + if (!key.includes(CONTEXT_SEPARATOR) && !key.includes(PLURAL_SEPARATOR)) { 54 + // Simple key with no variants 55 + if (!groups[key]) { 56 + groups[key] = { 57 + base: true, 58 + variants: { contexts: new Set(), plurals: new Set() }, 59 + }; 60 + } 61 + groups[key].base = true; 62 + } else { 63 + // Key with variants 64 + // Format: base|context/plural or base/plural or base|context 65 + let baseKey = key; 66 + const detectedContexts = new Set(); 67 + const detectedPlurals = new Set(); 68 + 69 + // Split by context separator first 70 + if (key.includes(CONTEXT_SEPARATOR)) { 71 + const contextParts = key.split(CONTEXT_SEPARATOR); 72 + baseKey = contextParts[0]; 73 + 74 + // The remaining part might have plurals 75 + const contextAndPlural = contextParts[1]; 76 + 77 + if (contextAndPlural.includes(PLURAL_SEPARATOR)) { 78 + const pluralParts = contextAndPlural.split(PLURAL_SEPARATOR); 79 + detectedContexts.add(pluralParts[0]); 80 + pluralParts.slice(1).forEach((p) => { 81 + if (PLURAL_FORMS.includes(p)) { 82 + detectedPlurals.add(p); 83 + } 84 + }); 85 + } else { 86 + detectedContexts.add(contextAndPlural); 87 + } 88 + } else if (key.includes(PLURAL_SEPARATOR)) { 89 + // No context, just plural 90 + const pluralParts = key.split(PLURAL_SEPARATOR); 91 + baseKey = pluralParts[0]; 92 + pluralParts.slice(1).forEach((p) => { 93 + if (PLURAL_FORMS.includes(p)) { 94 + detectedPlurals.add(p); 95 + } 96 + }); 97 + } 98 + 99 + if (!groups[baseKey]) { 100 + groups[baseKey] = { 101 + base: false, 102 + variants: { contexts: new Set(), plurals: new Set() }, 103 + }; 104 + } 105 + 106 + detectedContexts.forEach((c) => groups[baseKey].variants.contexts.add(c)); 107 + detectedPlurals.forEach((p) => groups[baseKey].variants.plurals.add(p)); 108 + } 109 + } 110 + 111 + return groups; 112 + } 113 + 114 + /** 115 + * Convert a group of keys into Fluent format 116 + */ 117 + function convertToFluentFormat(baseKey, group) { 118 + const hasContexts = group.variants.contexts.size > 0; 119 + const hasPlurals = group.variants.plurals.size > 0; 120 + 121 + if (!hasContexts && !hasPlurals) { 122 + // Simple key 123 + return `${baseKey} = ${baseKey}`; 124 + } 125 + 126 + // Build Fluent select expression 127 + let selector = ""; 128 + let variants = []; 129 + 130 + if (hasContexts && hasPlurals) { 131 + // Both context and plural - outer selector is context, inner is plural 132 + selector = "$context"; 133 + const contextsList = Array.from(group.variants.contexts).sort(); 134 + const pluralsList = Array.from(group.variants.plurals).sort(); 135 + 136 + contextsList.forEach((context, idx) => { 137 + const isDefault = idx === contextsList.length - 1; 138 + const prefix = isDefault ? "*" : " "; 139 + 140 + // Build inner plural select 141 + const pluralVariants = pluralsList 142 + .map((p) => { 143 + const pluralPrefix = p === "other" ? "*" : ""; 144 + return `${pluralPrefix}[${p}] ${baseKey}`; 145 + }) 146 + .join(" "); 147 + 148 + variants.push( 149 + `\n ${prefix}[${context}] { $count -> ${pluralVariants} }`, 150 + ); 151 + }); 152 + } else if (hasContexts) { 153 + // Only context 154 + selector = "$context"; 155 + const contextsList = Array.from(group.variants.contexts).sort(); 156 + contextsList.forEach((context, idx) => { 157 + const isDefault = idx === contextsList.length - 1; 158 + const prefix = isDefault ? "*" : " "; 159 + variants.push(`\n ${prefix}[${context}] ${baseKey}`); 160 + }); 161 + } else if (hasPlurals) { 162 + // Only plural 163 + selector = "$count"; 164 + const pluralsList = Array.from(group.variants.plurals).sort(); 165 + pluralsList.forEach((plural) => { 166 + const isDefault = plural === "other"; 167 + const prefix = isDefault ? "*" : " "; 168 + variants.push(`\n ${prefix}[${plural}] ${baseKey}`); 169 + }); 170 + } 171 + 172 + return `# TODO: Convert to proper Fluent select expression\n${baseKey} = { ${selector} ->${variants.join("")}\n}`; 173 + } 174 + 175 + /** 176 + * Read existing keys from .ftl files in a locale directory 177 + * Returns a map of namespace -> Set of keys 178 + */ 179 + function getExistingFtlKeys(localeDir) { 180 + const keysByNamespace = {}; 181 + 182 + if (!fs.existsSync(localeDir)) { 183 + return keysByNamespace; 184 + } 185 + 186 + const ftlFiles = fs 187 + .readdirSync(localeDir) 188 + .filter((file) => file.endsWith(".ftl")); 189 + 190 + for (const file of ftlFiles) { 191 + const namespace = path.basename(file, ".ftl"); 192 + const keys = new Set(); 193 + 194 + const content = fs.readFileSync(path.join(localeDir, file), "utf8"); 195 + const lines = content.split("\n"); 196 + 197 + for (const line of lines) { 198 + const trimmed = line.trim(); 199 + const keyMatch = trimmed.match(/^([a-zA-Z][a-zA-Z0-9_-]*)\s*=/); 200 + if (keyMatch) { 201 + keys.add(keyMatch[1]); 202 + } 203 + } 204 + 205 + keysByNamespace[namespace] = keys; 206 + } 207 + 208 + return keysByNamespace; 209 + } 210 + 211 + /** 212 + * Get all namespaces (json files) in the locale directory 213 + */ 214 + function getNamespaces(localeJsonDir) { 215 + if (!fs.existsSync(localeJsonDir)) { 216 + return []; 217 + } 218 + 219 + return fs 220 + .readdirSync(localeJsonDir) 221 + .filter((file) => file.endsWith(".json")) 222 + .map((file) => path.basename(file, ".json")); 223 + } 224 + 225 + /** 226 + * Add new keys to a .ftl file, converting context/plural keys to Fluent format 227 + */ 228 + function addKeysToFtlFile(localeDir, namespace, newKeys, locale) { 229 + const targetFile = path.join(localeDir, `${namespace}.ftl`); 230 + 231 + // Create file with header if it doesn't exist 232 + if (!fs.existsSync(localeDir)) { 233 + fs.mkdirSync(localeDir, { recursive: true }); 234 + } 235 + 236 + if (!fs.existsSync(targetFile)) { 237 + const languageName = manifest.languages[locale]?.name || locale; 238 + const namespaceName = 239 + namespace.charAt(0).toUpperCase() + namespace.slice(1); 240 + const header = `# ${namespaceName} translations - ${languageName}\n\n`; 241 + fs.writeFileSync(targetFile, header); 242 + } 243 + 244 + // Group keys by base to detect context/plural variants 245 + const keyGroups = groupKeysByBase(newKeys); 246 + 247 + // Build content 248 + const fluentEntries = []; 249 + for (const [baseKey, group] of Object.entries(keyGroups)) { 250 + fluentEntries.push(convertToFluentFormat(baseKey, group)); 251 + } 252 + 253 + // Append new keys 254 + let content = fs.readFileSync(targetFile, "utf8"); 255 + 256 + if (!content.endsWith("\n")) { 257 + content += "\n"; 258 + } 259 + 260 + content += "\n# Newly extracted keys\n"; 261 + content += fluentEntries.join("\n\n") + "\n"; 262 + 263 + fs.writeFileSync(targetFile, content); 264 + 265 + return targetFile; 266 + } 267 + 268 + /** 269 + * Migrate extracted JSON keys to .ftl files 270 + */ 271 + function migrateKeysToFtl() { 272 + console.log("🔄 Analyzing extracted keys..."); 273 + 274 + const newKeysByLocaleAndNamespace = {}; // locale -> namespace -> [keys] 275 + 276 + // Process each locale 277 + for (const locale of manifest.supportedLocales) { 278 + const localeJsonDir = path.join(LOCALES_JSON_DIR, locale); 279 + const localeFtlDir = path.join(LOCALES_FTL_DIR, locale); 280 + 281 + if (!fs.existsSync(localeJsonDir)) { 282 + console.log(`⚠️ No JSON files found for ${locale}`); 283 + continue; 284 + } 285 + 286 + // Get all namespaces (json files) 287 + const namespaces = getNamespaces(localeJsonDir); 288 + 289 + if (namespaces.length === 0) { 290 + console.log(`⚠️ No namespace files found for ${locale}`); 291 + continue; 292 + } 293 + 294 + // Get existing keys from .ftl files 295 + const existingKeysByNamespace = getExistingFtlKeys(localeFtlDir); 296 + 297 + // Process each namespace 298 + for (const namespace of namespaces) { 299 + const jsonPath = path.join(localeJsonDir, `${namespace}.json`); 300 + const jsonContent = JSON.parse(fs.readFileSync(jsonPath, "utf8")); 301 + const extractedKeys = Object.keys(jsonContent); 302 + 303 + // Get existing keys for this namespace 304 + const existingKeys = existingKeysByNamespace[namespace] || new Set(); 305 + 306 + // Find new keys 307 + const newKeys = extractedKeys.filter((key) => !existingKeys.has(key)); 308 + 309 + if (newKeys.length > 0) { 310 + if (!newKeysByLocaleAndNamespace[locale]) { 311 + newKeysByLocaleAndNamespace[locale] = {}; 312 + } 313 + newKeysByLocaleAndNamespace[locale][namespace] = newKeys; 314 + } 315 + } 316 + } 317 + 318 + // Check if there are any new keys 319 + const hasNewKeys = Object.keys(newKeysByLocaleAndNamespace).length > 0; 320 + 321 + if (!hasNewKeys) { 322 + console.log( 323 + "\n🎉 No new keys found. All extracted keys already exist in .ftl files.", 324 + ); 325 + return; 326 + } 327 + 328 + // Display found keys 329 + console.log("\n📊 New keys found:"); 330 + for (const locale of Object.keys(newKeysByLocaleAndNamespace)) { 331 + console.log(`\n${locale}:`); 332 + for (const namespace of Object.keys(newKeysByLocaleAndNamespace[locale])) { 333 + const keys = newKeysByLocaleAndNamespace[locale][namespace]; 334 + console.log(` 📝 ${namespace} (${keys.length} new keys):`); 335 + keys.forEach((key) => console.log(` - ${key}`)); 336 + } 337 + } 338 + 339 + // If --add-to flag is provided, add keys to that namespace 340 + if (addToNamespace) { 341 + console.log(`\n✍️ Adding new keys to ${addToNamespace}.ftl files...`); 342 + 343 + let totalAdded = 0; 344 + const processedFiles = []; 345 + 346 + for (const locale of Object.keys(newKeysByLocaleAndNamespace)) { 347 + const localeFtlDir = path.join(LOCALES_FTL_DIR, locale); 348 + const namespacesForLocale = newKeysByLocaleAndNamespace[locale]; 349 + 350 + // Collect all new keys across all namespaces for this locale 351 + const allNewKeys = []; 352 + for (const namespace of Object.keys(namespacesForLocale)) { 353 + allNewKeys.push(...namespacesForLocale[namespace]); 354 + } 355 + 356 + if (allNewKeys.length === 0) continue; 357 + 358 + // Add all keys to the specified namespace 359 + const targetFile = addKeysToFtlFile( 360 + localeFtlDir, 361 + addToNamespace, 362 + allNewKeys, 363 + locale, 364 + ); 365 + processedFiles.push(path.relative(process.cwd(), targetFile)); 366 + totalAdded += allNewKeys.length; 367 + 368 + console.log( 369 + `✅ ${locale}: Added ${allNewKeys.length} keys to ${addToNamespace}.ftl`, 370 + ); 371 + } 372 + 373 + console.log( 374 + `\n🎉 Migration complete! Added ${totalAdded} new keys to ${addToNamespace}.ftl files.`, 375 + ); 376 + console.log("\nModified files:"); 377 + processedFiles.forEach((file) => console.log(` 📄 ${file}`)); 378 + 379 + console.log("\n💡 Next steps:"); 380 + console.log(" 1. Review the new keys in your .ftl files"); 381 + console.log( 382 + " 2. Convert TODO placeholders to proper Fluent translations", 383 + ); 384 + console.log(" 3. Run `pnpm i18n:compile` to update compiled JSON files"); 385 + } else { 386 + // Just report 387 + let totalNewKeys = 0; 388 + const namespaceSet = new Set(); 389 + 390 + for (const locale of Object.keys(newKeysByLocaleAndNamespace)) { 391 + for (const namespace of Object.keys( 392 + newKeysByLocaleAndNamespace[locale], 393 + )) { 394 + namespaceSet.add(namespace); 395 + totalNewKeys += newKeysByLocaleAndNamespace[locale][namespace].length; 396 + } 397 + } 398 + 399 + console.log( 400 + `\n💡 Found ${totalNewKeys} new keys across ${namespaceSet.size} namespace(s).`, 401 + ); 402 + console.log("\nTo add these keys to a specific namespace file, run:"); 403 + Array.from(namespaceSet).forEach((ns) => { 404 + console.log(` node migrate-i18n.js --add-to=${ns}`); 405 + }); 406 + } 407 + } 408 + 409 + function main() { 410 + migrateKeysToFtl(); 411 + } 412 + 413 + main();
+816 -169
pnpm-lock.yaml
··· 19 19 version: 4.1.0(prettier@3.4.2)(typescript@5.8.3) 20 20 quicktype: 21 21 specifier: ^23.2.6 22 - version: 23.2.6(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13) 22 + version: 23.2.6(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13) 23 23 devDependencies: 24 24 '@atproto/lex-cli': 25 25 specifier: ^0.9.4 ··· 35 35 version: 5.59.1(@types/node@22.15.17)(typescript@5.8.3) 36 36 lerna: 37 37 specifier: ^8.2.2 38 - version: 8.2.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13) 38 + version: 8.2.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13) 39 39 lint-staged: 40 40 specifier: ^15.2.10 41 41 version: 15.2.10 ··· 540 540 '@types/sdp-transform': 541 541 specifier: ^2.15.0 542 542 version: 2.15.0 543 + i18next-cli: 544 + specifier: ^1.32.0 545 + version: 1.32.0(@swc/helpers@0.5.17)(@types/node@22.15.17) 543 546 nodemon: 544 547 specifier: ^3.1.10 545 548 version: 3.1.10 546 549 tsup: 547 550 specifier: ^8.5.0 548 - version: 8.5.0(@swc/core@1.8.0(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.5.1) 551 + version: 8.5.0(@swc/core@1.15.4(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.8.2) 549 552 550 553 js/config-react-native-webrtc: 551 554 dependencies: ··· 610 613 version: 7.5.0(@electron/fuses@1.8.0) 611 614 '@electron-forge/plugin-webpack': 612 615 specifier: ^7.5.0 613 - version: 7.5.0(@swc/core@1.8.0(@swc/helpers@0.5.17))(bufferutil@4.0.8)(utf-8-validate@5.0.10) 616 + version: 7.5.0(@swc/core@1.15.4(@swc/helpers@0.5.17))(bufferutil@4.0.8)(utf-8-validate@5.0.10) 614 617 '@electron-forge/publisher-s3': 615 618 specifier: ^7.5.0 616 619 version: 7.5.0 ··· 625 628 version: 0.5.10 626 629 '@typescript-eslint/eslint-plugin': 627 630 specifier: ^8.13.0 628 - version: 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 631 + version: 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3))(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 629 632 '@typescript-eslint/parser': 630 633 specifier: ^8.13.0 631 - version: 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 634 + version: 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 632 635 '@vercel/webpack-asset-relocator-loader': 633 636 specifier: 1.7.3 634 637 version: 1.7.3 635 638 css-loader: 636 639 specifier: ^7.1.2 637 - version: 7.1.2(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 640 + version: 7.1.2(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 638 641 electron: 639 642 specifier: 33.0.2 640 643 version: 33.0.2 641 644 eslint: 642 645 specifier: ^9.14.0 643 - version: 9.14.0(jiti@2.4.2) 646 + version: 9.14.0(jiti@2.6.1) 644 647 eslint-plugin-import: 645 648 specifier: ^2.31.0 646 - version: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.2)) 649 + version: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3))(eslint@9.14.0(jiti@2.6.1)) 647 650 fork-ts-checker-webpack-plugin: 648 651 specifier: ^9.0.2 649 - version: 9.0.2(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 652 + version: 9.0.2(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 650 653 node-loader: 651 654 specifier: ^2.0.0 652 - version: 2.0.0(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 655 + version: 2.0.0(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 653 656 style-loader: 654 657 specifier: ^4.0.0 655 - version: 4.0.0(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 658 + version: 4.0.0(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 656 659 ts-loader: 657 660 specifier: ^9.5.1 658 - version: 9.5.1(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 661 + version: 9.5.1(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 659 662 ts-node: 660 663 specifier: ^10.9.2 661 - version: 10.9.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(@types/node@22.15.17)(typescript@5.6.3) 664 + version: 10.9.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(@types/node@22.15.17)(typescript@5.6.3) 662 665 typescript: 663 666 specifier: ~5.6.3 664 667 version: 5.6.3 ··· 697 700 dependencies: 698 701 '@astrojs/starlight': 699 702 specifier: ^0.34.1 700 - version: 0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)) 703 + version: 0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)) 701 704 '@fontsource/atkinson-hyperlegible-next': 702 705 specifier: ^5.2.2 703 706 version: 5.2.2 ··· 706 709 version: link:../app 707 710 astro: 708 711 specifier: ^5.6.1 709 - version: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1) 712 + version: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2) 710 713 sharp: 711 714 specifier: ^0.32.5 712 715 version: 0.32.6 713 716 starlight-openapi: 714 717 specifier: ^0.17.0 715 - version: 0.17.0(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1))(openapi-types@12.1.3) 718 + version: 0.17.0(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2))(openapi-types@12.1.3) 716 719 starlight-openapi-rapidoc: 717 720 specifier: ^0.8.1-beta 718 - version: 0.8.1-beta(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1))(openapi-types@12.1.3) 721 + version: 0.8.1-beta(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2))(openapi-types@12.1.3) 719 722 streamplace: 720 723 specifier: workspace:* 721 724 version: link:../streamplace ··· 1803 1806 '@craftzdog/react-native-buffer@6.0.5': 1804 1807 resolution: {integrity: sha512-Av+YqfwA9e7jhgI9GFE/gTpwl/H+dRRLmZyJPOpKTy107j9Oj7oXlm3/YiMNz+C/CEGqcKAOqnXDLs4OL6AAFw==} 1805 1808 1809 + '@croct/json5-parser@0.2.2': 1810 + resolution: {integrity: sha512-0NJMLrbeLbQ0eCVj3UoH/kG2QckUgOASfwmfDTjyW1xAYPyTNJXcWVT/dssJdTJd0pRchW+qF0VFWQHcxs1OVw==} 1811 + 1812 + '@croct/json@2.1.0': 1813 + resolution: {integrity: sha512-UrWfjNQVlBxN+OVcFwHmkjARMW55MBN04E9KfGac8ac8z1QnFVuiOOFtMWXCk3UwsyRqhsNaFoYLZC+xxqsVjQ==} 1814 + 1806 1815 '@cspotcode/source-map-support@0.8.1': 1807 1816 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 1808 1817 engines: {node: '>=12'} ··· 2776 2785 cpu: [x64] 2777 2786 os: [win32] 2778 2787 2788 + '@inquirer/ansi@2.0.2': 2789 + resolution: {integrity: sha512-SYLX05PwJVnW+WVegZt1T4Ip1qba1ik+pNJPDiqvk6zS5Y/i8PhRzLpGEtVd7sW0G8cMtkD8t4AZYhQwm8vnww==} 2790 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2791 + 2792 + '@inquirer/checkbox@5.0.3': 2793 + resolution: {integrity: sha512-xtQP2eXMFlOcAhZ4ReKP2KZvDIBb1AnCfZ81wWXG3DXLVH0f0g4obE0XDPH+ukAEMRcZT0kdX2AS1jrWGXbpxw==} 2794 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2795 + peerDependencies: 2796 + '@types/node': '>=18' 2797 + peerDependenciesMeta: 2798 + '@types/node': 2799 + optional: true 2800 + 2801 + '@inquirer/confirm@6.0.3': 2802 + resolution: {integrity: sha512-lyEvibDFL+NA5R4xl8FUmNhmu81B+LDL9L/MpKkZlQDJZXzG8InxiqYxiAlQYa9cqLLhYqKLQwZqXmSTqCLjyw==} 2803 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2804 + peerDependencies: 2805 + '@types/node': '>=18' 2806 + peerDependenciesMeta: 2807 + '@types/node': 2808 + optional: true 2809 + 2810 + '@inquirer/core@11.1.0': 2811 + resolution: {integrity: sha512-+jD/34T1pK8M5QmZD/ENhOfXdl9Zr+BrQAUc5h2anWgi7gggRq15ZbiBeLoObj0TLbdgW7TAIQRU2boMc9uOKQ==} 2812 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2813 + peerDependencies: 2814 + '@types/node': '>=18' 2815 + peerDependenciesMeta: 2816 + '@types/node': 2817 + optional: true 2818 + 2819 + '@inquirer/editor@5.0.3': 2820 + resolution: {integrity: sha512-wYyQo96TsAqIciP/r5D3cFeV8h4WqKQ/YOvTg5yOfP2sqEbVVpbxPpfV3LM5D0EP4zUI3EZVHyIUIllnoIa8OQ==} 2821 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2822 + peerDependencies: 2823 + '@types/node': '>=18' 2824 + peerDependenciesMeta: 2825 + '@types/node': 2826 + optional: true 2827 + 2828 + '@inquirer/expand@5.0.3': 2829 + resolution: {integrity: sha512-2oINvuL27ujjxd95f6K2K909uZOU2x1WiAl7Wb1X/xOtL8CgQ1kSxzykIr7u4xTkXkXOAkCuF45T588/YKee7w==} 2830 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2831 + peerDependencies: 2832 + '@types/node': '>=18' 2833 + peerDependenciesMeta: 2834 + '@types/node': 2835 + optional: true 2836 + 2837 + '@inquirer/external-editor@2.0.2': 2838 + resolution: {integrity: sha512-X/fMXK7vXomRWEex1j8mnj7s1mpnTeP4CO/h2gysJhHLT2WjBnLv4ZQEGpm/kcYI8QfLZ2fgW+9kTKD+jeopLg==} 2839 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2840 + peerDependencies: 2841 + '@types/node': '>=18' 2842 + peerDependenciesMeta: 2843 + '@types/node': 2844 + optional: true 2845 + 2846 + '@inquirer/figures@2.0.2': 2847 + resolution: {integrity: sha512-qXm6EVvQx/FmnSrCWCIGtMHwqeLgxABP8XgcaAoywsL0NFga9gD5kfG0gXiv80GjK9Hsoz4pgGwF/+CjygyV9A==} 2848 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2849 + 2850 + '@inquirer/input@5.0.3': 2851 + resolution: {integrity: sha512-4R0TdWl53dtp79Vs6Df2OHAtA2FVNqya1hND1f5wjHWxZJxwDMSNB1X5ADZJSsQKYAJ5JHCTO+GpJZ42mK0Otw==} 2852 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2853 + peerDependencies: 2854 + '@types/node': '>=18' 2855 + peerDependenciesMeta: 2856 + '@types/node': 2857 + optional: true 2858 + 2859 + '@inquirer/number@4.0.3': 2860 + resolution: {integrity: sha512-TjQLe93GGo5snRlu83JxE38ZPqj5ZVggL+QqqAF2oBA5JOJoxx25GG3EGH/XN/Os5WOmKfO8iLVdCXQxXRZIMQ==} 2861 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2862 + peerDependencies: 2863 + '@types/node': '>=18' 2864 + peerDependenciesMeta: 2865 + '@types/node': 2866 + optional: true 2867 + 2868 + '@inquirer/password@5.0.3': 2869 + resolution: {integrity: sha512-rCozGbUMAHedTeYWEN8sgZH4lRCdgG/WinFkit6ZPsp8JaNg2T0g3QslPBS5XbpORyKP/I+xyBO81kFEvhBmjA==} 2870 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2871 + peerDependencies: 2872 + '@types/node': '>=18' 2873 + peerDependenciesMeta: 2874 + '@types/node': 2875 + optional: true 2876 + 2877 + '@inquirer/prompts@8.1.0': 2878 + resolution: {integrity: sha512-LsZMdKcmRNF5LyTRuZE5nWeOjganzmN3zwbtNfcs6GPh3I2TsTtF1UYZlbxVfhxd+EuUqLGs/Lm3Xt4v6Az1wA==} 2879 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2880 + peerDependencies: 2881 + '@types/node': '>=18' 2882 + peerDependenciesMeta: 2883 + '@types/node': 2884 + optional: true 2885 + 2886 + '@inquirer/rawlist@5.1.0': 2887 + resolution: {integrity: sha512-yUCuVh0jW026Gr2tZlG3kHignxcrLKDR3KBp+eUgNz+BAdSeZk0e18yt2gyBr+giYhj/WSIHCmPDOgp1mT2niQ==} 2888 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2889 + peerDependencies: 2890 + '@types/node': '>=18' 2891 + peerDependenciesMeta: 2892 + '@types/node': 2893 + optional: true 2894 + 2895 + '@inquirer/search@4.0.3': 2896 + resolution: {integrity: sha512-lzqVw0YwuKYetk5VwJ81Ba+dyVlhseHPx9YnRKQgwXdFS0kEavCz2gngnNhnMIxg8+j1N/rUl1t5s1npwa7bqg==} 2897 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2898 + peerDependencies: 2899 + '@types/node': '>=18' 2900 + peerDependenciesMeta: 2901 + '@types/node': 2902 + optional: true 2903 + 2904 + '@inquirer/select@5.0.3': 2905 + resolution: {integrity: sha512-M+ynbwS0ecQFDYMFrQrybA0qL8DV0snpc4kKevCCNaTpfghsRowRY7SlQBeIYNzHqXtiiz4RG9vTOeb/udew7w==} 2906 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2907 + peerDependencies: 2908 + '@types/node': '>=18' 2909 + peerDependenciesMeta: 2910 + '@types/node': 2911 + optional: true 2912 + 2913 + '@inquirer/type@4.0.2': 2914 + resolution: {integrity: sha512-cae7mzluplsjSdgFA6ACLygb5jC8alO0UUnFPyu0E7tNRPrL+q/f8VcSXp+cjZQ7l5CMpDpi2G1+IQvkOiL1Lw==} 2915 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 2916 + peerDependencies: 2917 + '@types/node': '>=18' 2918 + peerDependenciesMeta: 2919 + '@types/node': 2920 + optional: true 2921 + 2779 2922 '@ioredis/commands@1.3.1': 2780 2923 resolution: {integrity: sha512-bYtU8avhGIcje3IhvF9aSjsa5URMZBHnwKtOvXsT4sfYy9gppW11gLPT/9oNqlJZD47yPKveQFTAFWpHjKvUoQ==} 2781 2924 2782 2925 '@ipld/dag-cbor@7.0.3': 2783 2926 resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==} 2784 2927 2928 + '@isaacs/balanced-match@4.0.1': 2929 + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} 2930 + engines: {node: 20 || >=22} 2931 + 2932 + '@isaacs/brace-expansion@5.0.0': 2933 + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} 2934 + engines: {node: 20 || >=22} 2935 + 2785 2936 '@isaacs/cliui@8.0.2': 2786 2937 resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 2787 2938 engines: {node: '>=12'} ··· 3922 4073 '@scure/bip39@1.4.0': 3923 4074 resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} 3924 4075 4076 + '@sec-ant/readable-stream@0.4.1': 4077 + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} 4078 + 3925 4079 '@sentry-internal/browser-utils@8.54.0': 3926 4080 resolution: {integrity: sha512-DKWCqb4YQosKn6aD45fhKyzhkdG7N6goGFDeyTaJFREJDFVDXiNDsYZu30nJ6BxMM7uQIaARhPAC5BXfoED3pQ==} 3927 4081 engines: {node: '>=14.18'} ··· 4078 4232 '@sindresorhus/is@4.6.0': 4079 4233 resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} 4080 4234 engines: {node: '>=10'} 4235 + 4236 + '@sindresorhus/merge-streams@4.0.0': 4237 + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} 4238 + engines: {node: '>=18'} 4081 4239 4082 4240 '@sinonjs/commons@3.0.1': 4083 4241 resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} ··· 4454 4612 '@spacingbat3/lss@1.2.0': 4455 4613 resolution: {integrity: sha512-aywhxHNb6l7COooF3m439eT/6QN8E/RSl5IVboSKthMHcp0GlZYMSoS7546rqDLmFRxTD8f1tu/NIS9vtDwYAg==} 4456 4614 4457 - '@swc/core-darwin-arm64@1.8.0': 4458 - resolution: {integrity: sha512-TIus1/SE/Ud4g84hCnchcagu+LfyndSDy5r5qf64nflojejDidPU9Fp1InzQhQpEgIpntnZID/KFCP5rQnvsIw==} 4615 + '@swc/core-darwin-arm64@1.15.4': 4616 + resolution: {integrity: sha512-NU/Of+ShFGG/i0lXKsF6GaGeTBNsr9iD8uUzdXxFfGbEjTeuKNXc5CWn3/Uo4Gr4LMAGD3hsRwG2Jq5iBDMalw==} 4459 4617 engines: {node: '>=10'} 4460 4618 cpu: [arm64] 4461 4619 os: [darwin] 4462 4620 4463 - '@swc/core-darwin-x64@1.8.0': 4464 - resolution: {integrity: sha512-yCb1FHCX/HUmNRGB1X3CFJ1WPKXMosZVUe3K2TrosCGvytwgaLoW5FS0bZg5Qv6cEUERQBg75cJnOUPwLLRCVg==} 4621 + '@swc/core-darwin-x64@1.15.4': 4622 + resolution: {integrity: sha512-9oWYMZHiEfHLqjjRGrXL17I8HdAOpWK/Rps34RKQ74O+eliygi1Iyq1TDUzYqUXcNvqN2K5fHgoMLRIni41ClQ==} 4465 4623 engines: {node: '>=10'} 4466 4624 cpu: [x64] 4467 4625 os: [darwin] 4468 4626 4469 - '@swc/core-linux-arm-gnueabihf@1.8.0': 4470 - resolution: {integrity: sha512-6TdjVdiLaSW+eGiHKEojMDlx673nowrPHa6nM6toWgRzy8tIZgjPOguVKJDoMnoHuvO7SkOLCUiMRw0rTskypA==} 4627 + '@swc/core-linux-arm-gnueabihf@1.15.4': 4628 + resolution: {integrity: sha512-I1dPxXli3N1Vr71JXogUTLcspM5ICgCYaA16RE+JKchj3XKKmxLlYjwAHAA4lh/Cy486ikzACaG6pIBcegoGkg==} 4471 4629 engines: {node: '>=10'} 4472 4630 cpu: [arm] 4473 4631 os: [linux] 4474 4632 4475 - '@swc/core-linux-arm64-gnu@1.8.0': 4476 - resolution: {integrity: sha512-TU2YcTornnyZiJUabRuk7Xtvzaep11FwK77IkFomjN9/Os5s25B8ea652c2fAQMe9RsM84FPVmX303ohxavjKQ==} 4633 + '@swc/core-linux-arm64-gnu@1.15.4': 4634 + resolution: {integrity: sha512-iGpuS/2PDZ68ioAlhkxiN5M4+pB9uDJolTKk4mZ0JM29uFf9YIkiyk7Bbr2y1QtmD82rF0tDHhoG9jtnV8mZMg==} 4477 4635 engines: {node: '>=10'} 4478 4636 cpu: [arm64] 4479 4637 os: [linux] 4480 4638 4481 - '@swc/core-linux-arm64-musl@1.8.0': 4482 - resolution: {integrity: sha512-2CdPTEKxx2hJIj/B0fn8L8k2coo/FDS95smzXyi2bov5FcrP6Ohboq8roFBYgj38fkHusXjY8qt+cCH7yXWAdg==} 4639 + '@swc/core-linux-arm64-musl@1.15.4': 4640 + resolution: {integrity: sha512-Ly95wc+VXDhl08pjAoPUhVu5vNbuPMbURknRZa5QOZuiizJ6DkaSI0/zsEc26PpC6HTc4prNLY3ARVwZ7j/IJQ==} 4483 4641 engines: {node: '>=10'} 4484 4642 cpu: [arm64] 4485 4643 os: [linux] 4486 4644 4487 - '@swc/core-linux-x64-gnu@1.8.0': 4488 - resolution: {integrity: sha512-14StQBifCs/AMsySdU95OmwNJr9LOVqo6rcTFt2b7XaWpe/AyeuMJFxcndLgUewksJHpfepzCTwNdbcYmuNo6A==} 4645 + '@swc/core-linux-x64-gnu@1.15.4': 4646 + resolution: {integrity: sha512-7pIG0BnaMn4zTpHeColPwyrWoTY9Drr+ISZQIgYHUKh3oaPtNCrXb289ScGbPPPjLsSfcGTeOy2pXmNczMC+yg==} 4489 4647 engines: {node: '>=10'} 4490 4648 cpu: [x64] 4491 4649 os: [linux] 4492 4650 4493 - '@swc/core-linux-x64-musl@1.8.0': 4494 - resolution: {integrity: sha512-qemJnAQlYqKCfWNqVv5SG8uGvw8JotwU86cuFUkq35oTB+dsSFM3b83+B1giGTKKFOh2nfWT7bvPXTKk+aUjew==} 4651 + '@swc/core-linux-x64-musl@1.15.4': 4652 + resolution: {integrity: sha512-oaqTV25V9H+PpSkvTcK25q6Q56FvXc6d2xBu486dv9LAPCHWgeAworE8WpBLV26g8rubcN5nGhO5HwSunXA7Ww==} 4495 4653 engines: {node: '>=10'} 4496 4654 cpu: [x64] 4497 4655 os: [linux] 4498 4656 4499 - '@swc/core-win32-arm64-msvc@1.8.0': 4500 - resolution: {integrity: sha512-fXt5vZbnrVdXZzGj2qRnZtY3uh+NtLCaFjS2uD9w8ssdbjhbDZYlJCj2JINOjv35ttEfAD2goiYmVa5P/Ypl+g==} 4657 + '@swc/core-win32-arm64-msvc@1.15.4': 4658 + resolution: {integrity: sha512-VcPuUJw27YbGo1HcOaAriI50dpM3ZZeDW3x2cMnJW6vtkeyzUFk1TADmTwFax0Fn+yicCxhaWjnFE3eAzGAxIQ==} 4501 4659 engines: {node: '>=10'} 4502 4660 cpu: [arm64] 4503 4661 os: [win32] 4504 4662 4505 - '@swc/core-win32-ia32-msvc@1.8.0': 4506 - resolution: {integrity: sha512-W4FA2vSJ+bGYiTj6gspxghSdKQNLfLMo65AH07u797x7I+YJj8amnFY/fQRlroDv5Dez/FHTv14oPlTlNFUpIw==} 4663 + '@swc/core-win32-ia32-msvc@1.15.4': 4664 + resolution: {integrity: sha512-dREjghAZEuKAK9nQzJETAiCSihSpAVS6Vk9+y2ElaoeTj68tNB1txV/m1RTPPD/+Kgbz6ITPNyXRWxPdkP5aXw==} 4507 4665 engines: {node: '>=10'} 4508 4666 cpu: [ia32] 4509 4667 os: [win32] 4510 4668 4511 - '@swc/core-win32-x64-msvc@1.8.0': 4512 - resolution: {integrity: sha512-Il4y8XwKDV0Bnk0IpA00kGcSQC6I9XOIinW5egTutnwIDfDE+qsD0j+0isW5H76GetY3/Ze0lVxeOXLAUgpegA==} 4669 + '@swc/core-win32-x64-msvc@1.15.4': 4670 + resolution: {integrity: sha512-o/odIBuQkoxKbRweJWOMI9LeRSOenFKN2zgPeaaNQ/cyuVk2r6DCAobKMOodvDdZWlMn6N1xJrldeCRSTZIgiQ==} 4513 4671 engines: {node: '>=10'} 4514 4672 cpu: [x64] 4515 4673 os: [win32] 4516 4674 4517 - '@swc/core@1.8.0': 4518 - resolution: {integrity: sha512-EF8C5lp1RKMp3426tAKwQyVbg4Zcn/2FDax3cz8EcOXYQJM/ctB687IvBm9Ciej1wMcQ/dMRg+OB4Xl8BGLBoA==} 4675 + '@swc/core@1.15.4': 4676 + resolution: {integrity: sha512-fH81BPo6EiJ7BUb6Qa5SY/NLWIRVambqU3740g0XPFPEz5KFPnzRYpR6zodQNOcEb9XUtZzRO1Y0WyIJP7iBxQ==} 4519 4677 engines: {node: '>=10'} 4520 4678 peerDependencies: 4521 - '@swc/helpers': '*' 4679 + '@swc/helpers': '>=0.5.17' 4522 4680 peerDependenciesMeta: 4523 4681 '@swc/helpers': 4524 4682 optional: true ··· 4529 4687 '@swc/helpers@0.5.17': 4530 4688 resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} 4531 4689 4532 - '@swc/types@0.1.14': 4533 - resolution: {integrity: sha512-PbSmTiYCN+GMrvfjrMo9bdY+f2COnwbdnoMw7rqU/PI5jXpKjxOGZ0qqZCImxnT81NkNsKnmEpvu+hRXLBeCJg==} 4690 + '@swc/types@0.1.25': 4691 + resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} 4534 4692 4535 4693 '@szmarczak/http-timer@4.0.6': 4536 4694 resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} ··· 5723 5881 resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 5724 5882 engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 5725 5883 5884 + chalk@5.6.2: 5885 + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 5886 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 5887 + 5726 5888 character-entities-html4@2.1.0: 5727 5889 resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 5728 5890 ··· 5737 5899 5738 5900 chardet@0.7.0: 5739 5901 resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 5902 + 5903 + chardet@2.1.1: 5904 + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} 5740 5905 5741 5906 cheerio-select@2.1.0: 5742 5907 resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} ··· 5752 5917 chokidar@4.0.3: 5753 5918 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 5754 5919 engines: {node: '>= 14.16.0'} 5920 + 5921 + chokidar@5.0.0: 5922 + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} 5923 + engines: {node: '>= 20.19.0'} 5755 5924 5756 5925 chownr@1.1.4: 5757 5926 resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} ··· 5832 6001 cli-spinners@2.9.2: 5833 6002 resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} 5834 6003 engines: {node: '>=6'} 6004 + 6005 + cli-spinners@3.3.0: 6006 + resolution: {integrity: sha512-/+40ljC3ONVnYIttjMWrlL51nItDAbBrq2upN8BPyvGU/2n5Oxw3tbNwORCaNuNqLJnxGqOfjUuhsv7l5Q4IsQ==} 6007 + engines: {node: '>=18.20'} 5835 6008 5836 6009 cli-truncate@3.1.0: 5837 6010 resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} ··· 5845 6018 resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} 5846 6019 engines: {node: '>= 10'} 5847 6020 6021 + cli-width@4.1.0: 6022 + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} 6023 + engines: {node: '>= 12'} 6024 + 5848 6025 cliui@6.0.0: 5849 6026 resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 5850 6027 ··· 5961 6138 commander@12.1.0: 5962 6139 resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} 5963 6140 engines: {node: '>=18'} 6141 + 6142 + commander@14.0.2: 6143 + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} 6144 + engines: {node: '>=20'} 5964 6145 5965 6146 commander@2.20.3: 5966 6147 resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} ··· 6141 6322 6142 6323 cross-spawn@7.0.3: 6143 6324 resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 6325 + engines: {node: '>= 8'} 6326 + 6327 + cross-spawn@7.0.6: 6328 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 6144 6329 engines: {node: '>= 8'} 6145 6330 6146 6331 cross-zip@4.0.1: ··· 6886 7071 resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 6887 7072 engines: {node: '>=16.17'} 6888 7073 7074 + execa@9.6.1: 7075 + resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} 7076 + engines: {node: ^18.19.0 || >=20.5.0} 7077 + 6889 7078 expand-template@2.0.3: 6890 7079 resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 6891 7080 engines: {node: '>=6'} ··· 7178 7367 resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} 7179 7368 engines: {node: '>=8'} 7180 7369 7370 + figures@6.1.0: 7371 + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} 7372 + engines: {node: '>=18'} 7373 + 7181 7374 file-entry-cache@8.0.0: 7182 7375 resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 7183 7376 engines: {node: '>=16.0.0'} ··· 7440 7633 resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} 7441 7634 engines: {node: '>=18'} 7442 7635 7636 + get-east-asian-width@1.4.0: 7637 + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} 7638 + engines: {node: '>=18'} 7639 + 7443 7640 get-folder-size@2.0.1: 7444 7641 resolution: {integrity: sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==} 7445 7642 hasBin: true ··· 7508 7705 resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 7509 7706 engines: {node: '>=16'} 7510 7707 7708 + get-stream@9.0.1: 7709 + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} 7710 + engines: {node: '>=18'} 7711 + 7511 7712 get-symbol-description@1.0.2: 7512 7713 resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 7513 7714 engines: {node: '>= 0.4'} ··· 7570 7771 glob@10.4.5: 7571 7772 resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 7572 7773 hasBin: true 7774 + 7775 + glob@13.0.0: 7776 + resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} 7777 + engines: {node: 20 || >=22} 7573 7778 7574 7779 glob@7.2.3: 7575 7780 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} ··· 7920 8125 resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 7921 8126 engines: {node: '>=16.17.0'} 7922 8127 8128 + human-signals@8.0.1: 8129 + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} 8130 + engines: {node: '>=18.18.0'} 8131 + 7923 8132 humanize-ms@1.2.1: 7924 8133 resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} 7925 8134 ··· 7934 8143 i18next-browser-languagedetector@8.2.0: 7935 8144 resolution: {integrity: sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==} 7936 8145 8146 + i18next-cli@1.32.0: 8147 + resolution: {integrity: sha512-Shn31g/rhWUbg2SzPXuaqgUfL5K8IZ+USUIcoNkg6nOCBog3l0aeklWq205a04TxTAEb9YaGCQbD9EC+Jg70OA==} 8148 + engines: {node: '>=22'} 8149 + hasBin: true 8150 + 7937 8151 i18next-fluent@2.0.0: 7938 8152 resolution: {integrity: sha512-k69kvftj02YNMtls1oy5TkbsjEDUlkfXcApBIv3gCnQTTDPTNVekweIGC6V5m/yC2ce6SNqkzlPpdB24OgEEgg==} 7939 8153 ··· 7945 8159 engines: {node: ^18.0.0 || ^20.0.0 || ^22.0.0, npm: '>=6', yarn: '>=1'} 7946 8160 hasBin: true 7947 8161 8162 + i18next-resources-for-ts@2.0.0: 8163 + resolution: {integrity: sha512-RvATolbJlxrwpZh2+R7ZcNtg0ewmXFFx6rdu9i2bUEBvn6ThgA82rxDe3rJQa3hFS0SopX0qPaABqVDN3TUVpw==} 8164 + hasBin: true 8165 + 7948 8166 i18next-resources-to-backend@1.2.1: 7949 8167 resolution: {integrity: sha512-okHbVA+HZ7n1/76MsfhPqDou0fptl2dAlhRDu2ideXloRRduzHsqDOznJBef+R3DFZnbvWoBW+KxJ7fnFjd6Yw==} 7950 8168 ··· 7965 8183 7966 8184 iconv-lite@0.6.3: 7967 8185 resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 8186 + engines: {node: '>=0.10.0'} 8187 + 8188 + iconv-lite@0.7.1: 8189 + resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} 7968 8190 engines: {node: '>=0.10.0'} 7969 8191 7970 8192 icss-utils@5.1.0: ··· 8064 8286 inline-style-prefixer@7.0.1: 8065 8287 resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} 8066 8288 8289 + inquirer@13.1.0: 8290 + resolution: {integrity: sha512-4vv4GS/9HLnn0radvmHlXUXiNkd2gYCBQ4U1rxZWBJDisu2Z06bzUM9CFU8pcu1vwuAQjo6O+CFiqCYNsEi6qQ==} 8291 + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} 8292 + peerDependencies: 8293 + '@types/node': '>=18' 8294 + peerDependenciesMeta: 8295 + '@types/node': 8296 + optional: true 8297 + 8067 8298 inquirer@8.2.6: 8068 8299 resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} 8069 8300 engines: {node: '>=12.0.0'} ··· 8205 8436 resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} 8206 8437 engines: {node: '>=8'} 8207 8438 8439 + is-interactive@2.0.0: 8440 + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 8441 + engines: {node: '>=12'} 8442 + 8208 8443 is-lambda@1.0.1: 8209 8444 resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} 8210 8445 ··· 8283 8518 is-stream@3.0.0: 8284 8519 resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 8285 8520 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 8521 + 8522 + is-stream@4.0.1: 8523 + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} 8524 + engines: {node: '>=18'} 8286 8525 8287 8526 is-string@1.0.7: 8288 8527 resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} ··· 8304 8543 resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 8305 8544 engines: {node: '>=10'} 8306 8545 8546 + is-unicode-supported@2.1.0: 8547 + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} 8548 + engines: {node: '>=18'} 8549 + 8307 8550 is-url@1.2.4: 8308 8551 resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} 8309 8552 ··· 8426 8669 resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 8427 8670 hasBin: true 8428 8671 8672 + jiti@2.6.1: 8673 + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 8674 + hasBin: true 8675 + 8429 8676 jose@4.15.9: 8430 8677 resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} 8431 8678 ··· 8507 8754 8508 8755 jsonc-parser@3.2.0: 8509 8756 resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 8757 + 8758 + jsonc-parser@3.3.1: 8759 + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 8510 8760 8511 8761 jsonfile@4.0.0: 8512 8762 resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} ··· 8889 9139 log-symbols@4.1.0: 8890 9140 resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 8891 9141 engines: {node: '>=10'} 9142 + 9143 + log-symbols@7.0.1: 9144 + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} 9145 + engines: {node: '>=18'} 8892 9146 8893 9147 log-update@5.0.1: 8894 9148 resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} ··· 8918 9172 lru-cache@10.4.3: 8919 9173 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 8920 9174 9175 + lru-cache@11.2.4: 9176 + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} 9177 + engines: {node: 20 || >=22} 9178 + 8921 9179 lru-cache@5.1.1: 8922 9180 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 8923 9181 ··· 9334 9592 minimalistic-crypto-utils@1.0.1: 9335 9593 resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} 9336 9594 9595 + minimatch@10.1.1: 9596 + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} 9597 + engines: {node: 20 || >=22} 9598 + 9337 9599 minimatch@3.0.5: 9338 9600 resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} 9339 9601 ··· 9482 9744 mute-stream@1.0.0: 9483 9745 resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} 9484 9746 engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 9747 + 9748 + mute-stream@3.0.0: 9749 + resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} 9750 + engines: {node: ^20.17.0 || >=22.9.0} 9485 9751 9486 9752 mz@2.7.0: 9487 9753 resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} ··· 9691 9957 resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 9692 9958 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 9693 9959 9960 + npm-run-path@6.0.0: 9961 + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} 9962 + engines: {node: '>=18'} 9963 + 9694 9964 npmlog@6.0.2: 9695 9965 resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} 9696 9966 engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} ··· 9833 10103 ora@5.4.1: 9834 10104 resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} 9835 10105 engines: {node: '>=10'} 10106 + 10107 + ora@9.0.0: 10108 + resolution: {integrity: sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==} 10109 + engines: {node: '>=20'} 9836 10110 9837 10111 os-tmpdir@1.0.2: 9838 10112 resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} ··· 10002 10276 parse-latin@7.0.0: 10003 10277 resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} 10004 10278 10279 + parse-ms@4.0.0: 10280 + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} 10281 + engines: {node: '>=18'} 10282 + 10005 10283 parse-passwd@1.0.0: 10006 10284 resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} 10007 10285 engines: {node: '>=0.10.0'} ··· 10074 10352 path-scurry@1.11.1: 10075 10353 resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 10076 10354 engines: {node: '>=16 || 14 >=14.18'} 10355 + 10356 + path-scurry@2.0.1: 10357 + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} 10358 + engines: {node: 20 || >=22} 10077 10359 10078 10360 path-to-regexp@0.1.10: 10079 10361 resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} ··· 10342 10624 resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 10343 10625 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 10344 10626 10627 + pretty-ms@9.3.0: 10628 + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} 10629 + engines: {node: '>=18'} 10630 + 10345 10631 prismjs@1.30.0: 10346 10632 resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 10347 10633 engines: {node: '>=6'} ··· 10772 11058 resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 10773 11059 engines: {node: '>= 14.18.0'} 10774 11060 11061 + readdirp@5.0.0: 11062 + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} 11063 + engines: {node: '>= 20.19.0'} 11064 + 10775 11065 real-require@0.2.0: 10776 11066 resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 10777 11067 engines: {node: '>= 12.13.0'} ··· 11080 11370 resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} 11081 11371 engines: {node: '>=0.12.0'} 11082 11372 11373 + run-async@4.0.6: 11374 + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} 11375 + engines: {node: '>=0.12.0'} 11376 + 11083 11377 run-parallel@1.2.0: 11084 11378 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 11085 11379 11086 11380 rxjs@7.8.1: 11087 11381 resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 11382 + 11383 + rxjs@7.8.2: 11384 + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} 11088 11385 11089 11386 safe-array-concat@1.1.2: 11090 11387 resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} ··· 11440 11737 resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 11441 11738 engines: {node: '>= 0.8'} 11442 11739 11740 + stdin-discarder@0.2.2: 11741 + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} 11742 + engines: {node: '>=18'} 11743 + 11443 11744 stream-browserify@3.0.0: 11444 11745 resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} 11445 11746 ··· 11494 11795 resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 11495 11796 engines: {node: '>=18'} 11496 11797 11798 + string-width@8.1.0: 11799 + resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} 11800 + engines: {node: '>=20'} 11801 + 11497 11802 string.prototype.padend@3.1.6: 11498 11803 resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} 11499 11804 engines: {node: '>= 0.4'} ··· 11530 11835 resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 11531 11836 engines: {node: '>=12'} 11532 11837 11838 + strip-ansi@7.1.2: 11839 + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} 11840 + engines: {node: '>=12'} 11841 + 11533 11842 strip-bom@3.0.0: 11534 11843 resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 11535 11844 engines: {node: '>=4'} ··· 11549 11858 strip-final-newline@3.0.0: 11550 11859 resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 11551 11860 engines: {node: '>=12'} 11861 + 11862 + strip-final-newline@4.0.0: 11863 + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} 11864 + engines: {node: '>=18'} 11552 11865 11553 11866 strip-indent@3.0.0: 11554 11867 resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} ··· 11643 11956 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 11644 11957 engines: {node: '>= 0.4'} 11645 11958 11959 + swc-walk@1.0.1: 11960 + resolution: {integrity: sha512-bHR0Zs+MdFxKKq5QXmPZuvbXybAJh4wV56zZT7n7hQC55eHpGvL1TeeHxNwL5XlXYSAXKK57GsKY0aEttGDuWQ==} 11961 + engines: {node: '>=20.2.0'} 11962 + 11646 11963 symlink-or-copy@1.3.1: 11647 11964 resolution: {integrity: sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==} 11648 11965 ··· 12106 12423 12107 12424 unicode-trie@2.0.0: 12108 12425 resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} 12426 + 12427 + unicorn-magic@0.3.0: 12428 + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} 12429 + engines: {node: '>=18'} 12109 12430 12110 12431 unified@11.0.5: 12111 12432 resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} ··· 12630 12951 resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 12631 12952 engines: {node: '>=18'} 12632 12953 12954 + wrap-ansi@9.0.2: 12955 + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} 12956 + engines: {node: '>=18'} 12957 + 12633 12958 wrappy@1.0.2: 12634 12959 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 12635 12960 ··· 12752 13077 engines: {node: '>= 14'} 12753 13078 hasBin: true 12754 13079 13080 + yaml@2.8.2: 13081 + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} 13082 + engines: {node: '>= 14.6'} 13083 + hasBin: true 13084 + 12755 13085 yargs-parser@18.1.3: 12756 13086 resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 12757 13087 engines: {node: '>=6'} ··· 12893 13223 transitivePeerDependencies: 12894 13224 - supports-color 12895 13225 12896 - '@astrojs/mdx@4.2.6(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1))': 13226 + '@astrojs/mdx@4.2.6(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2))': 12897 13227 dependencies: 12898 13228 '@astrojs/markdown-remark': 6.3.1 12899 13229 '@mdx-js/mdx': 3.1.0(acorn@8.14.1) 12900 13230 acorn: 8.14.1 12901 - astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1) 13231 + astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2) 12902 13232 es-module-lexer: 1.7.0 12903 13233 estree-util-visit: 2.0.0 12904 13234 hast-util-to-html: 9.0.5 ··· 12922 13252 stream-replace-string: 2.0.0 12923 13253 zod: 3.24.4 12924 13254 12925 - '@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1))': 13255 + '@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2))': 12926 13256 dependencies: 12927 13257 '@astrojs/markdown-remark': 6.3.1 12928 - '@astrojs/mdx': 4.2.6(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)) 13258 + '@astrojs/mdx': 4.2.6(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)) 12929 13259 '@astrojs/sitemap': 3.3.1 12930 13260 '@pagefind/default-ui': 1.3.0 12931 13261 '@types/hast': 3.0.4 12932 13262 '@types/js-yaml': 4.0.9 12933 13263 '@types/mdast': 4.0.4 12934 - astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1) 12935 - astro-expressive-code: 0.41.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)) 13264 + astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2) 13265 + astro-expressive-code: 0.41.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)) 12936 13266 bcp-47: 2.1.0 12937 13267 hast-util-from-html: 2.0.3 12938 13268 hast-util-select: 6.0.4 ··· 14936 15266 - react 14937 15267 - react-native 14938 15268 15269 + '@croct/json5-parser@0.2.2': 15270 + dependencies: 15271 + '@croct/json': 2.1.0 15272 + 15273 + '@croct/json@2.1.0': {} 15274 + 14939 15275 '@cspotcode/source-map-support@0.8.1': 14940 15276 dependencies: 14941 15277 '@jridgewell/trace-mapping': 0.3.9 ··· 15138 15474 - bluebird 15139 15475 - supports-color 15140 15476 15141 - '@electron-forge/plugin-webpack@7.5.0(@swc/core@1.8.0(@swc/helpers@0.5.17))(bufferutil@4.0.8)(utf-8-validate@5.0.10)': 15477 + '@electron-forge/plugin-webpack@7.5.0(@swc/core@1.15.4(@swc/helpers@0.5.17))(bufferutil@4.0.8)(utf-8-validate@5.0.10)': 15142 15478 dependencies: 15143 15479 '@electron-forge/core-utils': 7.5.0 15144 15480 '@electron-forge/plugin-base': 7.5.0 ··· 15148 15484 debug: 4.4.0(supports-color@5.5.0) 15149 15485 fast-glob: 3.3.2 15150 15486 fs-extra: 10.1.0 15151 - html-webpack-plugin: 5.6.0(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 15487 + html-webpack-plugin: 5.6.0(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 15152 15488 listr2: 7.0.2 15153 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 15154 - webpack-dev-server: 4.15.2(bufferutil@4.0.8)(debug@4.4.0)(utf-8-validate@5.0.10)(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 15489 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 15490 + webpack-dev-server: 4.15.2(bufferutil@4.0.8)(debug@4.4.0)(utf-8-validate@5.0.10)(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 15155 15491 webpack-merge: 5.10.0 15156 15492 transitivePeerDependencies: 15157 15493 - '@rspack/core' ··· 15484 15820 '@esbuild/win32-x64@0.25.3': 15485 15821 optional: true 15486 15822 15487 - '@eslint-community/eslint-utils@4.4.1(eslint@9.14.0(jiti@2.4.2))': 15823 + '@eslint-community/eslint-utils@4.4.1(eslint@9.14.0(jiti@2.6.1))': 15488 15824 dependencies: 15489 - eslint: 9.14.0(jiti@2.4.2) 15825 + eslint: 9.14.0(jiti@2.6.1) 15490 15826 eslint-visitor-keys: 3.4.3 15491 15827 15492 15828 '@eslint-community/regexpp@4.12.1': {} ··· 16496 16832 '@img/sharp-win32-x64@0.33.5': 16497 16833 optional: true 16498 16834 16835 + '@inquirer/ansi@2.0.2': {} 16836 + 16837 + '@inquirer/checkbox@5.0.3(@types/node@22.15.17)': 16838 + dependencies: 16839 + '@inquirer/ansi': 2.0.2 16840 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16841 + '@inquirer/figures': 2.0.2 16842 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16843 + optionalDependencies: 16844 + '@types/node': 22.15.17 16845 + 16846 + '@inquirer/confirm@6.0.3(@types/node@22.15.17)': 16847 + dependencies: 16848 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16849 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16850 + optionalDependencies: 16851 + '@types/node': 22.15.17 16852 + 16853 + '@inquirer/core@11.1.0(@types/node@22.15.17)': 16854 + dependencies: 16855 + '@inquirer/ansi': 2.0.2 16856 + '@inquirer/figures': 2.0.2 16857 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16858 + cli-width: 4.1.0 16859 + mute-stream: 3.0.0 16860 + signal-exit: 4.1.0 16861 + wrap-ansi: 9.0.2 16862 + optionalDependencies: 16863 + '@types/node': 22.15.17 16864 + 16865 + '@inquirer/editor@5.0.3(@types/node@22.15.17)': 16866 + dependencies: 16867 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16868 + '@inquirer/external-editor': 2.0.2(@types/node@22.15.17) 16869 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16870 + optionalDependencies: 16871 + '@types/node': 22.15.17 16872 + 16873 + '@inquirer/expand@5.0.3(@types/node@22.15.17)': 16874 + dependencies: 16875 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16876 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16877 + optionalDependencies: 16878 + '@types/node': 22.15.17 16879 + 16880 + '@inquirer/external-editor@2.0.2(@types/node@22.15.17)': 16881 + dependencies: 16882 + chardet: 2.1.1 16883 + iconv-lite: 0.7.1 16884 + optionalDependencies: 16885 + '@types/node': 22.15.17 16886 + 16887 + '@inquirer/figures@2.0.2': {} 16888 + 16889 + '@inquirer/input@5.0.3(@types/node@22.15.17)': 16890 + dependencies: 16891 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16892 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16893 + optionalDependencies: 16894 + '@types/node': 22.15.17 16895 + 16896 + '@inquirer/number@4.0.3(@types/node@22.15.17)': 16897 + dependencies: 16898 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16899 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16900 + optionalDependencies: 16901 + '@types/node': 22.15.17 16902 + 16903 + '@inquirer/password@5.0.3(@types/node@22.15.17)': 16904 + dependencies: 16905 + '@inquirer/ansi': 2.0.2 16906 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16907 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16908 + optionalDependencies: 16909 + '@types/node': 22.15.17 16910 + 16911 + '@inquirer/prompts@8.1.0(@types/node@22.15.17)': 16912 + dependencies: 16913 + '@inquirer/checkbox': 5.0.3(@types/node@22.15.17) 16914 + '@inquirer/confirm': 6.0.3(@types/node@22.15.17) 16915 + '@inquirer/editor': 5.0.3(@types/node@22.15.17) 16916 + '@inquirer/expand': 5.0.3(@types/node@22.15.17) 16917 + '@inquirer/input': 5.0.3(@types/node@22.15.17) 16918 + '@inquirer/number': 4.0.3(@types/node@22.15.17) 16919 + '@inquirer/password': 5.0.3(@types/node@22.15.17) 16920 + '@inquirer/rawlist': 5.1.0(@types/node@22.15.17) 16921 + '@inquirer/search': 4.0.3(@types/node@22.15.17) 16922 + '@inquirer/select': 5.0.3(@types/node@22.15.17) 16923 + optionalDependencies: 16924 + '@types/node': 22.15.17 16925 + 16926 + '@inquirer/rawlist@5.1.0(@types/node@22.15.17)': 16927 + dependencies: 16928 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16929 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16930 + optionalDependencies: 16931 + '@types/node': 22.15.17 16932 + 16933 + '@inquirer/search@4.0.3(@types/node@22.15.17)': 16934 + dependencies: 16935 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16936 + '@inquirer/figures': 2.0.2 16937 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16938 + optionalDependencies: 16939 + '@types/node': 22.15.17 16940 + 16941 + '@inquirer/select@5.0.3(@types/node@22.15.17)': 16942 + dependencies: 16943 + '@inquirer/ansi': 2.0.2 16944 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 16945 + '@inquirer/figures': 2.0.2 16946 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 16947 + optionalDependencies: 16948 + '@types/node': 22.15.17 16949 + 16950 + '@inquirer/type@4.0.2(@types/node@22.15.17)': 16951 + optionalDependencies: 16952 + '@types/node': 22.15.17 16953 + 16499 16954 '@ioredis/commands@1.3.1': {} 16500 16955 16501 16956 '@ipld/dag-cbor@7.0.3': ··· 16503 16958 cborg: 1.10.2 16504 16959 multiformats: 9.9.0 16505 16960 16961 + '@isaacs/balanced-match@4.0.1': {} 16962 + 16963 + '@isaacs/brace-expansion@5.0.0': 16964 + dependencies: 16965 + '@isaacs/balanced-match': 4.0.1 16966 + 16506 16967 '@isaacs/cliui@8.0.2': 16507 16968 dependencies: 16508 16969 string-width: 5.1.2 ··· 16617 17078 16618 17079 '@leichtgewicht/ip-codec@2.0.5': {} 16619 17080 16620 - '@lerna/create@8.2.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13)(typescript@5.8.3)': 17081 + '@lerna/create@8.2.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13)(typescript@5.8.3)': 16621 17082 dependencies: 16622 17083 '@npmcli/arborist': 7.5.4 16623 17084 '@npmcli/package-json': 5.2.0 16624 17085 '@npmcli/run-script': 8.1.0 16625 - '@nx/devkit': 20.0.8(nx@20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17))) 17086 + '@nx/devkit': 20.0.8(nx@20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17))) 16626 17087 '@octokit/plugin-enterprise-rest': 6.0.1 16627 17088 '@octokit/rest': 20.1.2 16628 17089 aproba: 2.0.0 ··· 16661 17122 npm-package-arg: 11.0.2 16662 17123 npm-packlist: 8.0.2 16663 17124 npm-registry-fetch: 17.1.0 16664 - nx: 20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17)) 17125 + nx: 20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17)) 16665 17126 p-map: 4.0.0 16666 17127 p-map-series: 2.1.0 16667 17128 p-queue: 6.6.2 ··· 16708 17169 dependencies: 16709 17170 cross-spawn: 7.0.3 16710 17171 16711 - '@mark.probst/typescript-json-schema@0.55.0(@swc/core@1.8.0(@swc/helpers@0.5.17))': 17172 + '@mark.probst/typescript-json-schema@0.55.0(@swc/core@1.15.4(@swc/helpers@0.5.17))': 16712 17173 dependencies: 16713 17174 '@types/json-schema': 7.0.15 16714 17175 '@types/node': 16.18.126 16715 17176 glob: 7.2.3 16716 17177 path-equal: 1.2.5 16717 17178 safe-stable-stringify: 2.5.0 16718 - ts-node: 10.9.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(@types/node@16.18.126)(typescript@4.9.4) 17179 + ts-node: 10.9.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(@types/node@16.18.126)(typescript@4.9.4) 16719 17180 typescript: 4.9.4 16720 17181 yargs: 17.7.2 16721 17182 transitivePeerDependencies: ··· 16931 17392 - bluebird 16932 17393 - supports-color 16933 17394 16934 - '@nx/devkit@20.0.8(nx@20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17)))': 17395 + '@nx/devkit@20.0.8(nx@20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17)))': 16935 17396 dependencies: 16936 17397 ejs: 3.1.10 16937 17398 enquirer: 2.3.6 16938 17399 ignore: 5.3.1 16939 17400 minimatch: 9.0.3 16940 - nx: 20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17)) 17401 + nx: 20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17)) 16941 17402 semver: 7.7.1 16942 17403 tmp: 0.2.3 16943 17404 tslib: 2.8.1 ··· 17825 18286 '@noble/hashes': 1.5.0 17826 18287 '@scure/base': 1.1.9 17827 18288 18289 + '@sec-ant/readable-stream@0.4.1': {} 18290 + 17828 18291 '@sentry-internal/browser-utils@8.54.0': 17829 18292 dependencies: 17830 18293 '@sentry/core': 8.54.0 ··· 17999 18462 '@sinclair/typebox@0.27.8': {} 18000 18463 18001 18464 '@sindresorhus/is@4.6.0': {} 18465 + 18466 + '@sindresorhus/merge-streams@4.0.0': {} 18002 18467 18003 18468 '@sinonjs/commons@3.0.1': 18004 18469 dependencies: ··· 18613 19078 18614 19079 '@spacingbat3/lss@1.2.0': {} 18615 19080 18616 - '@swc/core-darwin-arm64@1.8.0': 19081 + '@swc/core-darwin-arm64@1.15.4': 18617 19082 optional: true 18618 19083 18619 - '@swc/core-darwin-x64@1.8.0': 19084 + '@swc/core-darwin-x64@1.15.4': 18620 19085 optional: true 18621 19086 18622 - '@swc/core-linux-arm-gnueabihf@1.8.0': 19087 + '@swc/core-linux-arm-gnueabihf@1.15.4': 18623 19088 optional: true 18624 19089 18625 - '@swc/core-linux-arm64-gnu@1.8.0': 19090 + '@swc/core-linux-arm64-gnu@1.15.4': 18626 19091 optional: true 18627 19092 18628 - '@swc/core-linux-arm64-musl@1.8.0': 19093 + '@swc/core-linux-arm64-musl@1.15.4': 18629 19094 optional: true 18630 19095 18631 - '@swc/core-linux-x64-gnu@1.8.0': 19096 + '@swc/core-linux-x64-gnu@1.15.4': 18632 19097 optional: true 18633 19098 18634 - '@swc/core-linux-x64-musl@1.8.0': 19099 + '@swc/core-linux-x64-musl@1.15.4': 18635 19100 optional: true 18636 19101 18637 - '@swc/core-win32-arm64-msvc@1.8.0': 19102 + '@swc/core-win32-arm64-msvc@1.15.4': 18638 19103 optional: true 18639 19104 18640 - '@swc/core-win32-ia32-msvc@1.8.0': 19105 + '@swc/core-win32-ia32-msvc@1.15.4': 18641 19106 optional: true 18642 19107 18643 - '@swc/core-win32-x64-msvc@1.8.0': 19108 + '@swc/core-win32-x64-msvc@1.15.4': 18644 19109 optional: true 18645 19110 18646 - '@swc/core@1.8.0(@swc/helpers@0.5.17)': 19111 + '@swc/core@1.15.4(@swc/helpers@0.5.17)': 18647 19112 dependencies: 18648 19113 '@swc/counter': 0.1.3 18649 - '@swc/types': 0.1.14 19114 + '@swc/types': 0.1.25 18650 19115 optionalDependencies: 18651 - '@swc/core-darwin-arm64': 1.8.0 18652 - '@swc/core-darwin-x64': 1.8.0 18653 - '@swc/core-linux-arm-gnueabihf': 1.8.0 18654 - '@swc/core-linux-arm64-gnu': 1.8.0 18655 - '@swc/core-linux-arm64-musl': 1.8.0 18656 - '@swc/core-linux-x64-gnu': 1.8.0 18657 - '@swc/core-linux-x64-musl': 1.8.0 18658 - '@swc/core-win32-arm64-msvc': 1.8.0 18659 - '@swc/core-win32-ia32-msvc': 1.8.0 18660 - '@swc/core-win32-x64-msvc': 1.8.0 19116 + '@swc/core-darwin-arm64': 1.15.4 19117 + '@swc/core-darwin-x64': 1.15.4 19118 + '@swc/core-linux-arm-gnueabihf': 1.15.4 19119 + '@swc/core-linux-arm64-gnu': 1.15.4 19120 + '@swc/core-linux-arm64-musl': 1.15.4 19121 + '@swc/core-linux-x64-gnu': 1.15.4 19122 + '@swc/core-linux-x64-musl': 1.15.4 19123 + '@swc/core-win32-arm64-msvc': 1.15.4 19124 + '@swc/core-win32-ia32-msvc': 1.15.4 19125 + '@swc/core-win32-x64-msvc': 1.15.4 18661 19126 '@swc/helpers': 0.5.17 18662 - optional: true 18663 19127 18664 - '@swc/counter@0.1.3': 18665 - optional: true 19128 + '@swc/counter@0.1.3': {} 18666 19129 18667 19130 '@swc/helpers@0.5.17': 18668 19131 dependencies: 18669 19132 tslib: 2.8.1 18670 19133 18671 - '@swc/types@0.1.14': 19134 + '@swc/types@0.1.25': 18672 19135 dependencies: 18673 19136 '@swc/counter': 0.1.3 18674 - optional: true 18675 19137 18676 19138 '@szmarczak/http-timer@4.0.6': 18677 19139 dependencies: ··· 18984 19446 '@types/node': 22.15.17 18985 19447 optional: true 18986 19448 18987 - '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)': 19449 + '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3))(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3)': 18988 19450 dependencies: 18989 19451 '@eslint-community/regexpp': 4.12.1 18990 - '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 19452 + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 18991 19453 '@typescript-eslint/scope-manager': 8.13.0 18992 - '@typescript-eslint/type-utils': 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 18993 - '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 19454 + '@typescript-eslint/type-utils': 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 19455 + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 18994 19456 '@typescript-eslint/visitor-keys': 8.13.0 18995 - eslint: 9.14.0(jiti@2.4.2) 19457 + eslint: 9.14.0(jiti@2.6.1) 18996 19458 graphemer: 1.4.0 18997 19459 ignore: 5.3.1 18998 19460 natural-compare: 1.4.0 ··· 19002 19464 transitivePeerDependencies: 19003 19465 - supports-color 19004 19466 19005 - '@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)': 19467 + '@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3)': 19006 19468 dependencies: 19007 19469 '@typescript-eslint/scope-manager': 8.13.0 19008 19470 '@typescript-eslint/types': 8.13.0 19009 19471 '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) 19010 19472 '@typescript-eslint/visitor-keys': 8.13.0 19011 19473 debug: 4.4.0(supports-color@5.5.0) 19012 - eslint: 9.14.0(jiti@2.4.2) 19474 + eslint: 9.14.0(jiti@2.6.1) 19013 19475 optionalDependencies: 19014 19476 typescript: 5.6.3 19015 19477 transitivePeerDependencies: ··· 19020 19482 '@typescript-eslint/types': 8.13.0 19021 19483 '@typescript-eslint/visitor-keys': 8.13.0 19022 19484 19023 - '@typescript-eslint/type-utils@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)': 19485 + '@typescript-eslint/type-utils@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3)': 19024 19486 dependencies: 19025 19487 '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) 19026 - '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 19488 + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 19027 19489 debug: 4.4.0(supports-color@5.5.0) 19028 19490 ts-api-utils: 1.4.0(typescript@5.6.3) 19029 19491 optionalDependencies: ··· 19049 19511 transitivePeerDependencies: 19050 19512 - supports-color 19051 19513 19052 - '@typescript-eslint/utils@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3)': 19514 + '@typescript-eslint/utils@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3)': 19053 19515 dependencies: 19054 - '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.2)) 19516 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.6.1)) 19055 19517 '@typescript-eslint/scope-manager': 8.13.0 19056 19518 '@typescript-eslint/types': 8.13.0 19057 19519 '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) 19058 - eslint: 9.14.0(jiti@2.4.2) 19520 + eslint: 9.14.0(jiti@2.6.1) 19059 19521 transitivePeerDependencies: 19060 19522 - supports-color 19061 19523 - typescript ··· 19487 19949 19488 19950 astring@1.9.0: {} 19489 19951 19490 - astro-expressive-code@0.41.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)): 19952 + astro-expressive-code@0.41.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)): 19491 19953 dependencies: 19492 - astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1) 19954 + astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2) 19493 19955 rehype-expressive-code: 0.41.2 19494 19956 19495 - astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1): 19957 + astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2): 19496 19958 dependencies: 19497 19959 '@astrojs/compiler': 2.12.0 19498 19960 '@astrojs/internal-helpers': 0.6.1 ··· 19545 20007 unist-util-visit: 5.0.0 19546 20008 unstorage: 1.16.0(idb-keyval@6.2.1)(ioredis@5.7.0) 19547 20009 vfile: 6.0.3 19548 - vite: 6.3.4(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.5.1) 19549 - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.5.1)) 20010 + vite: 6.3.4(@types/node@22.15.17)(jiti@2.6.1)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.8.2) 20011 + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.17)(jiti@2.6.1)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.8.2)) 19550 20012 xxhash-wasm: 1.1.0 19551 20013 yargs-parser: 21.1.1 19552 20014 yocto-spinner: 0.2.2 ··· 20191 20653 20192 20654 chalk@5.4.1: {} 20193 20655 20656 + chalk@5.6.2: {} 20657 + 20194 20658 character-entities-html4@2.1.0: {} 20195 20659 20196 20660 character-entities-legacy@3.0.0: {} ··· 20200 20664 character-reference-invalid@2.0.1: {} 20201 20665 20202 20666 chardet@0.7.0: {} 20667 + 20668 + chardet@2.1.1: {} 20203 20669 20204 20670 cheerio-select@2.1.0: 20205 20671 dependencies: ··· 20240 20706 dependencies: 20241 20707 readdirp: 4.1.2 20242 20708 20709 + chokidar@5.0.0: 20710 + dependencies: 20711 + readdirp: 5.0.0 20712 + 20243 20713 chownr@1.1.4: {} 20244 20714 20245 20715 chownr@2.0.0: {} ··· 20313 20783 20314 20784 cli-spinners@2.9.2: {} 20315 20785 20786 + cli-spinners@3.3.0: {} 20787 + 20316 20788 cli-truncate@3.1.0: 20317 20789 dependencies: 20318 20790 slice-ansi: 5.0.0 ··· 20324 20796 string-width: 7.2.0 20325 20797 20326 20798 cli-width@3.0.0: {} 20799 + 20800 + cli-width@4.1.0: {} 20327 20801 20328 20802 cliui@6.0.0: 20329 20803 dependencies: ··· 20434 20908 typical: 7.3.0 20435 20909 20436 20910 commander@12.1.0: {} 20911 + 20912 + commander@14.0.2: {} 20437 20913 20438 20914 commander@2.20.3: {} 20439 20915 ··· 20640 21116 shebang-command: 2.0.0 20641 21117 which: 2.0.2 20642 21118 21119 + cross-spawn@7.0.6: 21120 + dependencies: 21121 + path-key: 3.1.1 21122 + shebang-command: 2.0.0 21123 + which: 2.0.2 21124 + 20643 21125 cross-zip@4.0.1: {} 20644 21126 20645 21127 crossws@0.3.4: ··· 20654 21136 dependencies: 20655 21137 hyphenate-style-name: 1.1.0 20656 21138 20657 - css-loader@7.1.2(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 21139 + css-loader@7.1.2(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 20658 21140 dependencies: 20659 21141 icss-utils: 5.1.0(postcss@8.5.3) 20660 21142 postcss: 8.5.3 ··· 20665 21147 postcss-value-parser: 4.2.0 20666 21148 semver: 7.7.1 20667 21149 optionalDependencies: 20668 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 21150 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 20669 21151 20670 21152 css-select@4.3.0: 20671 21153 dependencies: ··· 21296 21778 transitivePeerDependencies: 21297 21779 - supports-color 21298 21780 21299 - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@9.14.0(jiti@2.4.2)): 21781 + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@9.14.0(jiti@2.6.1)): 21300 21782 dependencies: 21301 21783 debug: 3.2.7 21302 21784 optionalDependencies: 21303 - '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 21304 - eslint: 9.14.0(jiti@2.4.2) 21785 + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 21786 + eslint: 9.14.0(jiti@2.6.1) 21305 21787 eslint-import-resolver-node: 0.3.9 21306 21788 transitivePeerDependencies: 21307 21789 - supports-color 21308 21790 21309 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.2)): 21791 + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3))(eslint@9.14.0(jiti@2.6.1)): 21310 21792 dependencies: 21311 21793 '@rtsao/scc': 1.1.0 21312 21794 array-includes: 3.1.8 ··· 21315 21797 array.prototype.flatmap: 1.3.2 21316 21798 debug: 3.2.7 21317 21799 doctrine: 2.1.0 21318 - eslint: 9.14.0(jiti@2.4.2) 21800 + eslint: 9.14.0(jiti@2.6.1) 21319 21801 eslint-import-resolver-node: 0.3.9 21320 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@9.14.0(jiti@2.4.2)) 21802 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@9.14.0(jiti@2.6.1)) 21321 21803 hasown: 2.0.2 21322 21804 is-core-module: 2.15.1 21323 21805 is-glob: 4.0.3 ··· 21329 21811 string.prototype.trimend: 1.0.8 21330 21812 tsconfig-paths: 3.15.0 21331 21813 optionalDependencies: 21332 - '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.6.3) 21814 + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.6.1))(typescript@5.6.3) 21333 21815 transitivePeerDependencies: 21334 21816 - eslint-import-resolver-typescript 21335 21817 - eslint-import-resolver-webpack ··· 21349 21831 21350 21832 eslint-visitor-keys@4.2.0: {} 21351 21833 21352 - eslint@9.14.0(jiti@2.4.2): 21834 + eslint@9.14.0(jiti@2.6.1): 21353 21835 dependencies: 21354 - '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.2)) 21836 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.6.1)) 21355 21837 '@eslint-community/regexpp': 4.12.1 21356 21838 '@eslint/config-array': 0.18.0 21357 21839 '@eslint/core': 0.7.0 ··· 21387 21869 optionator: 0.9.4 21388 21870 text-table: 0.2.0 21389 21871 optionalDependencies: 21390 - jiti: 2.4.2 21872 + jiti: 2.6.1 21391 21873 transitivePeerDependencies: 21392 21874 - supports-color 21393 21875 ··· 21507 21989 onetime: 6.0.0 21508 21990 signal-exit: 4.1.0 21509 21991 strip-final-newline: 3.0.0 21992 + 21993 + execa@9.6.1: 21994 + dependencies: 21995 + '@sindresorhus/merge-streams': 4.0.0 21996 + cross-spawn: 7.0.6 21997 + figures: 6.1.0 21998 + get-stream: 9.0.1 21999 + human-signals: 8.0.1 22000 + is-plain-obj: 4.1.0 22001 + is-stream: 4.0.1 22002 + npm-run-path: 6.0.0 22003 + pretty-ms: 9.3.0 22004 + signal-exit: 4.1.0 22005 + strip-final-newline: 4.0.0 22006 + yoctocolors: 2.1.1 21510 22007 21511 22008 expand-template@2.0.3: {} 21512 22009 ··· 21997 22494 dependencies: 21998 22495 escape-string-regexp: 1.0.5 21999 22496 22497 + figures@6.1.0: 22498 + dependencies: 22499 + is-unicode-supported: 2.1.0 22500 + 22000 22501 file-entry-cache@8.0.0: 22001 22502 dependencies: 22002 22503 flat-cache: 4.0.1 ··· 22182 22683 cross-spawn: 7.0.3 22183 22684 signal-exit: 4.1.0 22184 22685 22185 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 22686 + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 22186 22687 dependencies: 22187 22688 '@babel/code-frame': 7.26.2 22188 22689 chalk: 4.1.2 ··· 22197 22698 semver: 7.7.1 22198 22699 tapable: 2.2.1 22199 22700 typescript: 5.6.3 22200 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 22701 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 22201 22702 22202 22703 form-data@2.5.1: 22203 22704 dependencies: ··· 22383 22884 22384 22885 get-east-asian-width@1.2.0: {} 22385 22886 22887 + get-east-asian-width@1.4.0: {} 22888 + 22386 22889 get-folder-size@2.0.1: 22387 22890 dependencies: 22388 22891 gar: 1.0.4 ··· 22458 22961 get-stream@6.0.1: {} 22459 22962 22460 22963 get-stream@8.0.1: {} 22964 + 22965 + get-stream@9.0.1: 22966 + dependencies: 22967 + '@sec-ant/readable-stream': 0.4.1 22968 + is-stream: 4.0.1 22461 22969 22462 22970 get-symbol-description@1.0.2: 22463 22971 dependencies: ··· 22535 23043 minipass: 7.1.2 22536 23044 package-json-from-dist: 1.0.0 22537 23045 path-scurry: 1.11.1 23046 + 23047 + glob@13.0.0: 23048 + dependencies: 23049 + minimatch: 10.1.1 23050 + minipass: 7.1.2 23051 + path-scurry: 2.0.1 22538 23052 22539 23053 glob@7.2.3: 22540 23054 dependencies: ··· 23007 23521 23008 23522 html-void-elements@3.0.0: {} 23009 23523 23010 - html-webpack-plugin@5.6.0(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 23524 + html-webpack-plugin@5.6.0(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 23011 23525 dependencies: 23012 23526 '@types/html-minifier-terser': 6.1.0 23013 23527 html-minifier-terser: 6.1.0 ··· 23015 23529 pretty-error: 4.0.0 23016 23530 tapable: 2.2.1 23017 23531 optionalDependencies: 23018 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 23532 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 23019 23533 23020 23534 html-whitespace-sensitive-tag-names@3.0.1: {} 23021 23535 ··· 23119 23633 23120 23634 human-signals@5.0.0: {} 23121 23635 23636 + human-signals@8.0.1: {} 23637 + 23122 23638 humanize-ms@1.2.1: 23123 23639 dependencies: 23124 23640 ms: 2.1.3 ··· 23131 23647 dependencies: 23132 23648 '@babel/runtime': 7.26.0 23133 23649 23650 + i18next-cli@1.32.0(@swc/helpers@0.5.17)(@types/node@22.15.17): 23651 + dependencies: 23652 + '@croct/json5-parser': 0.2.2 23653 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 23654 + chalk: 5.6.2 23655 + chokidar: 5.0.0 23656 + commander: 14.0.2 23657 + execa: 9.6.1 23658 + glob: 13.0.0 23659 + i18next-resources-for-ts: 2.0.0(@swc/helpers@0.5.17) 23660 + inquirer: 13.1.0(@types/node@22.15.17) 23661 + jiti: 2.6.1 23662 + jsonc-parser: 3.3.1 23663 + minimatch: 10.1.1 23664 + ora: 9.0.0 23665 + swc-walk: 1.0.1 23666 + transitivePeerDependencies: 23667 + - '@swc/helpers' 23668 + - '@types/node' 23669 + 23134 23670 i18next-fluent@2.0.0: 23135 23671 dependencies: 23136 23672 '@fluent/bundle': 0.13.0 ··· 23164 23700 transitivePeerDependencies: 23165 23701 - supports-color 23166 23702 23703 + i18next-resources-for-ts@2.0.0(@swc/helpers@0.5.17): 23704 + dependencies: 23705 + '@babel/runtime': 7.28.4 23706 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 23707 + chokidar: 5.0.0 23708 + yaml: 2.8.2 23709 + transitivePeerDependencies: 23710 + - '@swc/helpers' 23711 + 23167 23712 i18next-resources-to-backend@1.2.1: 23168 23713 dependencies: 23169 23714 '@babel/runtime': 7.26.0 ··· 23189 23734 safer-buffer: 2.1.2 23190 23735 23191 23736 iconv-lite@0.6.3: 23737 + dependencies: 23738 + safer-buffer: 2.1.2 23739 + 23740 + iconv-lite@0.7.1: 23192 23741 dependencies: 23193 23742 safer-buffer: 2.1.2 23194 23743 ··· 23278 23827 dependencies: 23279 23828 css-in-js-utils: 3.1.0 23280 23829 23830 + inquirer@13.1.0(@types/node@22.15.17): 23831 + dependencies: 23832 + '@inquirer/ansi': 2.0.2 23833 + '@inquirer/core': 11.1.0(@types/node@22.15.17) 23834 + '@inquirer/prompts': 8.1.0(@types/node@22.15.17) 23835 + '@inquirer/type': 4.0.2(@types/node@22.15.17) 23836 + mute-stream: 3.0.0 23837 + run-async: 4.0.6 23838 + rxjs: 7.8.2 23839 + optionalDependencies: 23840 + '@types/node': 22.15.17 23841 + 23281 23842 inquirer@8.2.6: 23282 23843 dependencies: 23283 23844 ansi-escapes: 4.3.2 ··· 23421 23982 23422 23983 is-interactive@1.0.0: {} 23423 23984 23985 + is-interactive@2.0.0: {} 23986 + 23424 23987 is-lambda@1.0.1: {} 23425 23988 23426 23989 is-my-ip-valid@1.0.1: ··· 23485 24048 is-stream@2.0.1: {} 23486 24049 23487 24050 is-stream@3.0.0: {} 24051 + 24052 + is-stream@4.0.1: {} 23488 24053 23489 24054 is-string@1.0.7: 23490 24055 dependencies: ··· 23504 24069 23505 24070 is-unicode-supported@0.1.0: {} 23506 24071 24072 + is-unicode-supported@2.1.0: {} 24073 + 23507 24074 is-url@1.2.4: {} 23508 24075 23509 24076 is-valid-glob@1.0.0: {} ··· 23655 24222 jimp-compact@0.16.1: {} 23656 24223 23657 24224 jiti@2.4.2: {} 24225 + 24226 + jiti@2.6.1: {} 23658 24227 23659 24228 jose@4.15.9: {} 23660 24229 ··· 23717 24286 23718 24287 jsonc-parser@3.2.0: {} 23719 24288 24289 + jsonc-parser@3.3.1: {} 24290 + 23720 24291 jsonfile@4.0.0: 23721 24292 optionalDependencies: 23722 24293 graceful-fs: 4.2.11 ··· 23835 24406 23836 24407 lead@4.0.0: {} 23837 24408 23838 - lerna@8.2.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13): 24409 + lerna@8.2.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13): 23839 24410 dependencies: 23840 - '@lerna/create': 8.2.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13)(typescript@5.8.3) 24411 + '@lerna/create': 8.2.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13)(typescript@5.8.3) 23841 24412 '@npmcli/arborist': 7.5.4 23842 24413 '@npmcli/package-json': 5.2.0 23843 24414 '@npmcli/run-script': 8.1.0 23844 - '@nx/devkit': 20.0.8(nx@20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17))) 24415 + '@nx/devkit': 20.0.8(nx@20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17))) 23845 24416 '@octokit/plugin-enterprise-rest': 6.0.1 23846 24417 '@octokit/rest': 20.1.2 23847 24418 aproba: 2.0.0 ··· 23886 24457 npm-package-arg: 11.0.2 23887 24458 npm-packlist: 8.0.2 23888 24459 npm-registry-fetch: 17.1.0 23889 - nx: 20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17)) 24460 + nx: 20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17)) 23890 24461 p-map: 4.0.0 23891 24462 p-map-series: 2.1.0 23892 24463 p-pipe: 3.1.0 ··· 24192 24763 chalk: 4.1.2 24193 24764 is-unicode-supported: 0.1.0 24194 24765 24766 + log-symbols@7.0.1: 24767 + dependencies: 24768 + is-unicode-supported: 2.1.0 24769 + yoctocolors: 2.1.1 24770 + 24195 24771 log-update@5.0.1: 24196 24772 dependencies: 24197 24773 ansi-escapes: 5.0.0 ··· 24223 24799 lowercase-keys@2.0.0: {} 24224 24800 24225 24801 lru-cache@10.4.3: {} 24802 + 24803 + lru-cache@11.2.4: {} 24226 24804 24227 24805 lru-cache@5.1.1: 24228 24806 dependencies: ··· 25066 25644 25067 25645 minimalistic-crypto-utils@1.0.1: {} 25068 25646 25647 + minimatch@10.1.1: 25648 + dependencies: 25649 + '@isaacs/brace-expansion': 5.0.0 25650 + 25069 25651 minimatch@3.0.5: 25070 25652 dependencies: 25071 25653 brace-expansion: 1.1.11 ··· 25212 25794 25213 25795 mute-stream@1.0.0: {} 25214 25796 25797 + mute-stream@3.0.0: {} 25798 + 25215 25799 mz@2.7.0: 25216 25800 dependencies: 25217 25801 any-promise: 1.3.0 ··· 25316 25900 25317 25901 node-int64@0.4.0: {} 25318 25902 25319 - node-loader@2.0.0(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 25903 + node-loader@2.0.0(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 25320 25904 dependencies: 25321 25905 loader-utils: 2.0.4 25322 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 25906 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 25323 25907 25324 25908 node-machine-id@1.1.12: {} 25325 25909 ··· 25449 26033 dependencies: 25450 26034 path-key: 4.0.0 25451 26035 26036 + npm-run-path@6.0.0: 26037 + dependencies: 26038 + path-key: 4.0.0 26039 + unicorn-magic: 0.3.0 26040 + 25452 26041 npmlog@6.0.2: 25453 26042 dependencies: 25454 26043 are-we-there-yet: 3.0.1 ··· 25462 26051 25463 26052 nullthrows@1.1.1: {} 25464 26053 25465 - nx@20.0.8(@swc/core@1.8.0(@swc/helpers@0.5.17)): 26054 + nx@20.0.8(@swc/core@1.15.4(@swc/helpers@0.5.17)): 25466 26055 dependencies: 25467 26056 '@napi-rs/wasm-runtime': 0.2.4 25468 26057 '@yarnpkg/lockfile': 1.1.0 ··· 25507 26096 '@nx/nx-linux-x64-musl': 20.0.8 25508 26097 '@nx/nx-win32-arm64-msvc': 20.0.8 25509 26098 '@nx/nx-win32-x64-msvc': 20.0.8 25510 - '@swc/core': 1.8.0(@swc/helpers@0.5.17) 26099 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 25511 26100 transitivePeerDependencies: 25512 26101 - debug 25513 26102 ··· 25660 26249 log-symbols: 4.1.0 25661 26250 strip-ansi: 6.0.1 25662 26251 wcwidth: 1.0.1 26252 + 26253 + ora@9.0.0: 26254 + dependencies: 26255 + chalk: 5.6.2 26256 + cli-cursor: 5.0.0 26257 + cli-spinners: 3.3.0 26258 + is-interactive: 2.0.0 26259 + is-unicode-supported: 2.1.0 26260 + log-symbols: 7.0.1 26261 + stdin-discarder: 0.2.2 26262 + string-width: 8.1.0 26263 + strip-ansi: 7.1.2 25663 26264 25664 26265 os-tmpdir@1.0.2: {} 25665 26266 ··· 25898 26499 unist-util-visit-children: 3.0.0 25899 26500 vfile: 6.0.3 25900 26501 26502 + parse-ms@4.0.0: {} 26503 + 25901 26504 parse-passwd@1.0.0: {} 25902 26505 25903 26506 parse-path@7.0.0: ··· 25960 26563 path-scurry@1.11.1: 25961 26564 dependencies: 25962 26565 lru-cache: 10.4.3 26566 + minipass: 7.1.2 26567 + 26568 + path-scurry@2.0.1: 26569 + dependencies: 26570 + lru-cache: 11.2.4 25963 26571 minipass: 7.1.2 25964 26572 25965 26573 path-to-regexp@0.1.10: {} ··· 26091 26699 26092 26700 possible-typed-array-names@1.0.0: {} 26093 26701 26094 - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.5.1): 26702 + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.3)(yaml@2.8.2): 26095 26703 dependencies: 26096 26704 lilconfig: 3.1.3 26097 26705 optionalDependencies: 26098 - jiti: 2.4.2 26706 + jiti: 2.6.1 26099 26707 postcss: 8.5.3 26100 - yaml: 2.5.1 26708 + yaml: 2.8.2 26101 26709 26102 26710 postcss-modules-extract-imports@3.1.0(postcss@8.5.3): 26103 26711 dependencies: ··· 26194 26802 '@jest/schemas': 29.6.3 26195 26803 ansi-styles: 5.2.0 26196 26804 react-is: 18.3.1 26805 + 26806 + pretty-ms@9.3.0: 26807 + dependencies: 26808 + parse-ms: 4.0.0 26197 26809 26198 26810 prismjs@1.30.0: {} 26199 26811 ··· 26351 26963 transitivePeerDependencies: 26352 26964 - encoding 26353 26965 26354 - quicktype-typescript-input@23.2.6(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13): 26966 + quicktype-typescript-input@23.2.6(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13): 26355 26967 dependencies: 26356 - '@mark.probst/typescript-json-schema': 0.55.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 26968 + '@mark.probst/typescript-json-schema': 0.55.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 26357 26969 quicktype-core: 23.2.6(encoding@0.1.13) 26358 26970 typescript: 4.9.5 26359 26971 transitivePeerDependencies: ··· 26361 26973 - '@swc/wasm' 26362 26974 - encoding 26363 26975 26364 - quicktype@23.2.6(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13): 26976 + quicktype@23.2.6(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13): 26365 26977 dependencies: 26366 26978 '@glideapps/ts-necessities': 2.4.0 26367 26979 chalk: 4.1.2 ··· 26374 26986 moment: 2.30.1 26375 26987 quicktype-core: 23.2.6(encoding@0.1.13) 26376 26988 quicktype-graphql-input: 23.2.6(encoding@0.1.13) 26377 - quicktype-typescript-input: 23.2.6(@swc/core@1.8.0(@swc/helpers@0.5.17))(encoding@0.1.13) 26989 + quicktype-typescript-input: 23.2.6(@swc/core@1.15.4(@swc/helpers@0.5.17))(encoding@0.1.13) 26378 26990 readable-stream: 4.7.0 26379 26991 stream-json: 1.8.0 26380 26992 string-to-stream: 3.0.1 ··· 26901 27513 26902 27514 readdirp@4.1.2: {} 26903 27515 27516 + readdirp@5.0.0: {} 27517 + 26904 27518 real-require@0.2.0: {} 26905 27519 26906 27520 ? reanimated-color-picker@4.0.0(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(react-native-webview@13.15.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10))(react-native-gesture-handler@2.26.0(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native-reanimated@3.18.0(@babel/core@7.26.0)(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0))(react-native@0.79.3(@babel/core@7.26.0)(@types/react@18.3.12)(bufferutil@4.0.8)(react@19.0.0)(utf-8-validate@5.0.10))(react@19.0.0) ··· 27305 27919 27306 27920 run-async@2.4.1: {} 27307 27921 27922 + run-async@4.0.6: {} 27923 + 27308 27924 run-parallel@1.2.0: 27309 27925 dependencies: 27310 27926 queue-microtask: 1.2.3 ··· 27313 27929 dependencies: 27314 27930 tslib: 2.8.1 27315 27931 27932 + rxjs@7.8.2: 27933 + dependencies: 27934 + tslib: 2.8.1 27935 + 27316 27936 safe-array-concat@1.1.2: 27317 27937 dependencies: 27318 27938 call-bind: 1.0.7 ··· 27735 28355 27736 28356 standard-as-callback@2.1.0: {} 27737 28357 27738 - starlight-openapi-rapidoc@0.8.1-beta(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1))(openapi-types@12.1.3): 28358 + starlight-openapi-rapidoc@0.8.1-beta(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2))(openapi-types@12.1.3): 27739 28359 dependencies: 27740 - '@astrojs/starlight': 0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)) 28360 + '@astrojs/starlight': 0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)) 27741 28361 '@astropub/md': 0.4.0 27742 28362 '@readme/openapi-parser': 2.5.0(openapi-types@12.1.3) 27743 - astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1) 28363 + astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2) 27744 28364 github-slugger: 2.0.0 27745 28365 transitivePeerDependencies: 27746 28366 - '@astrojs/markdown-remark' 27747 28367 - openapi-types 27748 28368 27749 - starlight-openapi@0.17.0(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1))(openapi-types@12.1.3): 28369 + starlight-openapi@0.17.0(@astrojs/starlight@0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)))(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2))(openapi-types@12.1.3): 27750 28370 dependencies: 27751 - '@astrojs/starlight': 0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1)) 28371 + '@astrojs/starlight': 0.34.2(astro@5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2)) 27752 28372 '@readme/openapi-parser': 2.7.0(openapi-types@12.1.3) 27753 - astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.5.1) 28373 + astro: 5.7.10(@types/node@22.15.17)(encoding@0.1.13)(idb-keyval@6.2.1)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.29.1)(rollup@4.40.1)(terser@5.32.0)(typescript@5.8.3)(yaml@2.8.2) 27754 28374 github-slugger: 2.0.0 27755 28375 url-template: 3.1.1 27756 28376 transitivePeerDependencies: ··· 27759 28379 statuses@1.5.0: {} 27760 28380 27761 28381 statuses@2.0.1: {} 28382 + 28383 + stdin-discarder@0.2.2: {} 27762 28384 27763 28385 stream-browserify@3.0.0: 27764 28386 dependencies: ··· 27827 28449 get-east-asian-width: 1.2.0 27828 28450 strip-ansi: 7.1.0 27829 28451 28452 + string-width@8.1.0: 28453 + dependencies: 28454 + get-east-asian-width: 1.4.0 28455 + strip-ansi: 7.1.2 28456 + 27830 28457 string.prototype.padend@3.1.6: 27831 28458 dependencies: 27832 28459 call-bind: 1.0.7 ··· 27875 28502 ansi-regex: 5.0.1 27876 28503 27877 28504 strip-ansi@7.1.0: 28505 + dependencies: 28506 + ansi-regex: 6.0.1 28507 + 28508 + strip-ansi@7.1.2: 27878 28509 dependencies: 27879 28510 ansi-regex: 6.0.1 27880 28511 ··· 27888 28519 27889 28520 strip-final-newline@3.0.0: {} 27890 28521 28522 + strip-final-newline@4.0.0: {} 28523 + 27891 28524 strip-indent@3.0.0: 27892 28525 dependencies: 27893 28526 min-indent: 1.0.1 ··· 27922 28555 stubs@3.0.0: 27923 28556 optional: true 27924 28557 27925 - style-loader@4.0.0(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 28558 + style-loader@4.0.0(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 27926 28559 dependencies: 27927 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 28560 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 27928 28561 27929 28562 style-to-js@1.1.16: 27930 28563 dependencies: ··· 27975 28608 27976 28609 supports-preserve-symlinks-flag@1.0.0: {} 27977 28610 28611 + swc-walk@1.0.1: 28612 + dependencies: 28613 + acorn-walk: 8.3.4 28614 + 27978 28615 symlink-or-copy@1.3.1: {} 27979 28616 27980 28617 table-layout@4.1.1: ··· 28064 28701 ansi-escapes: 4.3.2 28065 28702 supports-hyperlinks: 2.3.0 28066 28703 28067 - terser-webpack-plugin@5.3.10(@swc/core@1.8.0(@swc/helpers@0.5.17))(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 28704 + terser-webpack-plugin@5.3.10(@swc/core@1.15.4(@swc/helpers@0.5.17))(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 28068 28705 dependencies: 28069 28706 '@jridgewell/trace-mapping': 0.3.25 28070 28707 jest-worker: 27.5.1 28071 28708 schema-utils: 3.3.0 28072 28709 serialize-javascript: 6.0.2 28073 28710 terser: 5.32.0 28074 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 28711 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 28075 28712 optionalDependencies: 28076 - '@swc/core': 1.8.0(@swc/helpers@0.5.17) 28713 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 28077 28714 28078 28715 terser@5.32.0: 28079 28716 dependencies: ··· 28199 28836 28200 28837 ts-interface-checker@0.1.13: {} 28201 28838 28202 - ts-loader@9.5.1(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 28839 + ts-loader@9.5.1(typescript@5.6.3)(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 28203 28840 dependencies: 28204 28841 chalk: 4.1.2 28205 28842 enhanced-resolve: 5.17.1 ··· 28207 28844 semver: 7.7.1 28208 28845 source-map: 0.7.4 28209 28846 typescript: 5.6.3 28210 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 28847 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 28211 28848 28212 28849 ts-morph@24.0.0: 28213 28850 dependencies: 28214 28851 '@ts-morph/common': 0.25.0 28215 28852 code-block-writer: 13.0.3 28216 28853 28217 - ts-node@10.9.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(@types/node@16.18.126)(typescript@4.9.4): 28854 + ts-node@10.9.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(@types/node@16.18.126)(typescript@4.9.4): 28218 28855 dependencies: 28219 28856 '@cspotcode/source-map-support': 0.8.1 28220 28857 '@tsconfig/node10': 1.0.11 ··· 28232 28869 v8-compile-cache-lib: 3.0.1 28233 28870 yn: 3.1.1 28234 28871 optionalDependencies: 28235 - '@swc/core': 1.8.0(@swc/helpers@0.5.17) 28872 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 28236 28873 28237 - ts-node@10.9.2(@swc/core@1.8.0(@swc/helpers@0.5.17))(@types/node@22.15.17)(typescript@5.6.3): 28874 + ts-node@10.9.2(@swc/core@1.15.4(@swc/helpers@0.5.17))(@types/node@22.15.17)(typescript@5.6.3): 28238 28875 dependencies: 28239 28876 '@cspotcode/source-map-support': 0.8.1 28240 28877 '@tsconfig/node10': 1.0.11 ··· 28252 28889 v8-compile-cache-lib: 3.0.1 28253 28890 yn: 3.1.1 28254 28891 optionalDependencies: 28255 - '@swc/core': 1.8.0(@swc/helpers@0.5.17) 28892 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 28256 28893 28257 28894 tsconfck@3.1.5(typescript@5.8.3): 28258 28895 optionalDependencies: ··· 28273 28910 28274 28911 tslib@2.8.1: {} 28275 28912 28276 - tsup@8.5.0(@swc/core@1.8.0(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.5.1): 28913 + tsup@8.5.0(@swc/core@1.15.4(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.8.2): 28277 28914 dependencies: 28278 28915 bundle-require: 5.1.0(esbuild@0.25.3) 28279 28916 cac: 6.7.14 ··· 28284 28921 fix-dts-default-cjs-exports: 1.0.1 28285 28922 joycon: 3.1.1 28286 28923 picocolors: 1.1.1 28287 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.5.1) 28924 + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.3)(yaml@2.8.2) 28288 28925 resolve-from: 5.0.0 28289 28926 rollup: 4.40.1 28290 28927 source-map: 0.8.0-beta.0 ··· 28293 28930 tinyglobby: 0.2.13 28294 28931 tree-kill: 1.2.2 28295 28932 optionalDependencies: 28296 - '@swc/core': 1.8.0(@swc/helpers@0.5.17) 28933 + '@swc/core': 1.15.4(@swc/helpers@0.5.17) 28297 28934 postcss: 8.5.3 28298 28935 typescript: 5.8.3 28299 28936 transitivePeerDependencies: ··· 28464 29101 dependencies: 28465 29102 pako: 0.2.9 28466 29103 tiny-inflate: 1.0.3 29104 + 29105 + unicorn-magic@0.3.0: {} 28467 29106 28468 29107 unified@11.0.5: 28469 29108 dependencies: ··· 28775 29414 replace-ext: 2.0.0 28776 29415 teex: 1.0.1 28777 29416 28778 - vite@6.3.4(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.5.1): 29417 + vite@6.3.4(@types/node@22.15.17)(jiti@2.6.1)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.8.2): 28779 29418 dependencies: 28780 29419 esbuild: 0.25.3 28781 29420 fdir: 6.4.4(picomatch@4.0.2) ··· 28786 29425 optionalDependencies: 28787 29426 '@types/node': 22.15.17 28788 29427 fsevents: 2.3.3 28789 - jiti: 2.4.2 29428 + jiti: 2.6.1 28790 29429 lightningcss: 1.29.1 28791 29430 terser: 5.32.0 28792 - yaml: 2.5.1 29431 + yaml: 2.8.2 28793 29432 28794 - vitefu@1.0.6(vite@6.3.4(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.5.1)): 29433 + vitefu@1.0.6(vite@6.3.4(@types/node@22.15.17)(jiti@2.6.1)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.8.2)): 28795 29434 optionalDependencies: 28796 - vite: 6.3.4(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.5.1) 29435 + vite: 6.3.4(@types/node@22.15.17)(jiti@2.6.1)(lightningcss@1.29.1)(terser@5.32.0)(yaml@2.8.2) 28797 29436 28798 29437 vlq@1.0.1: {} 28799 29438 ··· 28844 29483 28845 29484 webidl-conversions@5.0.0: {} 28846 29485 28847 - webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 29486 + webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 28848 29487 dependencies: 28849 29488 colorette: 2.0.20 28850 29489 memfs: 3.5.3 28851 29490 mime-types: 2.1.35 28852 29491 range-parser: 1.2.1 28853 29492 schema-utils: 4.2.0 28854 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 29493 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 28855 29494 28856 - webpack-dev-server@4.15.2(bufferutil@4.0.8)(debug@4.4.0)(utf-8-validate@5.0.10)(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))): 29495 + webpack-dev-server@4.15.2(bufferutil@4.0.8)(debug@4.4.0)(utf-8-validate@5.0.10)(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))): 28857 29496 dependencies: 28858 29497 '@types/bonjour': 3.5.13 28859 29498 '@types/connect-history-api-fallback': 1.5.4 ··· 28883 29522 serve-index: 1.9.1 28884 29523 sockjs: 0.3.24 28885 29524 spdy: 4.0.2 28886 - webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 29525 + webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 28887 29526 ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) 28888 29527 optionalDependencies: 28889 - webpack: 5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)) 29528 + webpack: 5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)) 28890 29529 transitivePeerDependencies: 28891 29530 - bufferutil 28892 29531 - debug ··· 28901 29540 28902 29541 webpack-sources@3.2.3: {} 28903 29542 28904 - webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17)): 29543 + webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17)): 28905 29544 dependencies: 28906 29545 '@types/estree': 1.0.7 28907 29546 '@webassemblyjs/ast': 1.12.1 ··· 28923 29562 neo-async: 2.6.2 28924 29563 schema-utils: 3.3.0 28925 29564 tapable: 2.2.1 28926 - terser-webpack-plugin: 5.3.10(@swc/core@1.8.0(@swc/helpers@0.5.17))(webpack@5.94.0(@swc/core@1.8.0(@swc/helpers@0.5.17))) 29565 + terser-webpack-plugin: 5.3.10(@swc/core@1.15.4(@swc/helpers@0.5.17))(webpack@5.94.0(@swc/core@1.15.4(@swc/helpers@0.5.17))) 28927 29566 watchpack: 2.4.2 28928 29567 webpack-sources: 3.2.3 28929 29568 transitivePeerDependencies: ··· 29038 29677 string-width: 7.2.0 29039 29678 strip-ansi: 7.1.0 29040 29679 29680 + wrap-ansi@9.0.2: 29681 + dependencies: 29682 + ansi-styles: 6.2.1 29683 + string-width: 7.2.0 29684 + strip-ansi: 7.1.0 29685 + 29041 29686 wrappy@1.0.2: {} 29042 29687 29043 29688 write-file-atomic@2.4.3: ··· 29129 29774 yallist@5.0.0: {} 29130 29775 29131 29776 yaml@2.5.1: {} 29777 + 29778 + yaml@2.8.2: {} 29132 29779 29133 29780 yargs-parser@18.1.3: 29134 29781 dependencies: