diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
new file mode 100644
index 00000000..b9bbafdd
--- /dev/null
+++ b/.github/workflows/rust.yml
@@ -0,0 +1,40 @@
+name: Rust Check
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - 'packages/liquid-forge-native/**'
+ - '.github/workflows/rust.yml'
+ pull_request:
+ branches:
+ - main
+ paths:
+ - 'packages/liquid-forge-native/**'
+ - '.github/workflows/rust.yml'
+
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ working-directory: packages/liquid-forge-native
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Rust
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ targets: x86_64-unknown-linux-gnu
+
+ - name: Check code
+ run: cargo check --lib --target x86_64-unknown-linux-gnu
+
+ - name: Run tests
+ run: cargo test --lib --target x86_64-unknown-linux-gnu
+
+ - name: Run clippy
+ run: cargo clippy --lib --target x86_64-unknown-linux-gnu -- -D warnings
diff --git a/.vscode/settings.json b/.vscode/settings.json
index cafa0903..3820a4a6 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -79,5 +79,8 @@
},
"eslint.workingDirectories": [
{ "mode": "auto" }
+ ],
+ "rust-analyzer.linkedProjects": [
+ "${workspaceFolder}/packages/liquid-forge-native/Cargo.toml"
]
}
diff --git a/packages/liquid-forge-native/Cargo.toml b/packages/liquid-forge-native/Cargo.toml
index 763883c6..b08aad2d 100644
--- a/packages/liquid-forge-native/Cargo.toml
+++ b/packages/liquid-forge-native/Cargo.toml
@@ -7,12 +7,12 @@ license = "Apache-2.0"
description = "High-performance Rust filters for Liquid template engine"
[lib]
-crate-type = ["cdylib"]
+crate-type = ["cdylib", "rlib"]
[dependencies]
# NAPI-RS for Node.js bindings
-napi = "2.16"
-napi-derive = "2.16"
+napi = "3.7"
+napi-derive = "3.4"
# Core dependencies
regex = "1.10"
@@ -20,7 +20,7 @@ once_cell = "1.19"
unicode-normalization = "0.1"
[build-dependencies]
-napi-build = "2.1"
+napi-build = "2.3"
[profile.release]
lto = true
@@ -36,5 +36,5 @@ name = "filters_bench"
harness = false
[dev-dependencies]
-criterion = "0.5"
+criterion = "0.8"
diff --git a/packages/liquid-forge-native/benches/filters_bench.rs b/packages/liquid-forge-native/benches/filters_bench.rs
index afeab285..d1d51243 100644
--- a/packages/liquid-forge-native/benches/filters_bench.rs
+++ b/packages/liquid-forge-native/benches/filters_bench.rs
@@ -18,8 +18,9 @@
//!
//! Run with: cargo bench
-use criterion::{black_box, criterion_group, criterion_main, Criterion};
+use criterion::{criterion_group, criterion_main, Criterion};
use liquid_forge_native::*;
+use std::hint::black_box;
fn bench_handleize(c: &mut Criterion) {
c.bench_function("handleize_simple", |b| {
diff --git a/packages/liquid-forge-native/examples/benchmark.js b/packages/liquid-forge-native/examples/benchmark.js
index db5b793f..e544d90c 100644
--- a/packages/liquid-forge-native/examples/benchmark.js
+++ b/packages/liquid-forge-native/examples/benchmark.js
@@ -7,7 +7,6 @@
const { performance } = require('perf_hooks');
-// Cargar módulo nativo (si está disponible)
let nativeFilters = null;
try {
nativeFilters = require('../index.js');
@@ -18,7 +17,6 @@ try {
process.exit(1);
}
-// Implementaciones JavaScript para comparación
const jsHandleize = (text) => {
if (!text) return '';
return text
@@ -45,7 +43,6 @@ const jsTruncate = (text, length = 50, suffix = '...') => {
return text.substring(0, length - suffix.length) + suffix;
};
-// Test data
const testData = {
handleize: [
'Hello World',
@@ -68,9 +65,7 @@ const testData = {
],
};
-// Función de benchmark
function benchmark(name, nativeFn, jsFn, data, iterations = 10000) {
- // Warm up
for (let i = 0; i < 100; i++) {
data.forEach((input) => {
nativeFn(input);
@@ -78,7 +73,6 @@ function benchmark(name, nativeFn, jsFn, data, iterations = 10000) {
});
}
- // Benchmark Native
const startNative = performance.now();
for (let i = 0; i < iterations; i++) {
data.forEach((input) => nativeFn(input));
@@ -86,7 +80,6 @@ function benchmark(name, nativeFn, jsFn, data, iterations = 10000) {
const endNative = performance.now();
const nativeTime = endNative - startNative;
- // Benchmark JavaScript
const startJs = performance.now();
for (let i = 0; i < iterations; i++) {
data.forEach((input) => jsFn(input));
@@ -94,7 +87,6 @@ function benchmark(name, nativeFn, jsFn, data, iterations = 10000) {
const endJs = performance.now();
const jsTime = endJs - startJs;
- // Results
const speedup = (jsTime / nativeTime).toFixed(2);
const saved = (((jsTime - nativeTime) / jsTime) * 100).toFixed(1);
@@ -107,7 +99,6 @@ function benchmark(name, nativeFn, jsFn, data, iterations = 10000) {
return { nativeTime, jsTime, speedup, saved };
}
-// Ejecutar benchmarks
console.log('Benchmark: Native filters vs JavaScript');
console.log(` Iteraciones: ${10000}`);
console.log(` Inputs por filtro: variado\n`);
@@ -141,7 +132,7 @@ console.log(` Ahorro promedio: ${avgSaved}%`);
console.log('\nImpact on production:');
console.log(' Para 1000 req/s con 200 filtros por página:');
const totalSavedMs = results.reduce((sum, r) => sum + (r.jsTime - r.nativeTime), 0);
-const savedPerRequest = totalSavedMs / 10000; // Normalizado
+const savedPerRequest = totalSavedMs / 10000;
const savedPerSecond = savedPerRequest * 1000;
console.log(` Ahorro: ~${savedPerSecond.toFixed(0)}ms CPU por segundo`);
console.log(` Equivalente a: ${(savedPerSecond / 1000).toFixed(1)}s CPU ahorrados por segundo de requests`);
diff --git a/packages/liquid-forge-native/examples/usage.js b/packages/liquid-forge-native/examples/usage.js
index 3f3cca4d..8eb99ef2 100644
--- a/packages/liquid-forge-native/examples/usage.js
+++ b/packages/liquid-forge-native/examples/usage.js
@@ -5,7 +5,6 @@
* node examples/usage.js
*/
-// Cargar módulo nativo
let filters = null;
try {
filters = require('../index.js');
@@ -19,24 +18,20 @@ try {
console.log('Native filters examples\n');
console.log('═'.repeat(60));
-// append
console.log('\nappend(input, value)');
console.log(` Input: "Hello", " World"`);
console.log(` Output: "${filters.append('Hello', ' World')}"`);
-// prepend
console.log('\nprepend(input, value)');
console.log(` Input: "World", "Hello "`);
console.log(` Output: "${filters.prepend('World', 'Hello ')}"`);
-// handleize
console.log('\nhandleize(text)');
const testTexts = ['Hello World', 'Ñoño & Friends', 'Café con Leche', ' Multiple Spaces '];
testTexts.forEach((text) => {
console.log(` "${text}" → "${filters.handleize(text)}"`);
});
-// escape
console.log('\nescape(text)');
const htmlTexts = ['Rock & Roll', '', 'She said "Hello"'];
htmlTexts.forEach((text) => {
@@ -44,38 +39,32 @@ htmlTexts.forEach((text) => {
console.log(` → "${filters.escape(text)}"`);
});
-// truncate
console.log('\ntruncate(text, length, suffix)');
const longText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit';
console.log(` "${longText}"`);
console.log(` → "${filters.truncate(longText, 20)}"`);
console.log(` → "${filters.truncate(longText, 20, '…')}"`);
-// pluralize
console.log('\npluralize(count, singular, plural)');
[0, 1, 2, 5].forEach((count) => {
console.log(` ${count} ${filters.pluralize(count, 'item', 'items')}`);
});
-// defaultValue
console.log('\ndefaultValue(value, default)');
console.log(` null → "${filters.defaultValue(null, 'N/A')}"`);
console.log(` "" → "${filters.defaultValue('', 'N/A')}"`);
console.log(` "Hello" → "${filters.defaultValue('Hello', 'N/A')}"`);
-// stripHtml
console.log('\nstripHtml(text)');
const htmlContent = '
Hello World!
';
console.log(` "${htmlContent}"`);
console.log(` → "${filters.stripHtml(htmlContent)}"`);
-// stripNewlines
console.log('\nstripNewlines(text)');
const multiline = 'Line 1\nLine 2\r\nLine 3';
console.log(` "Line 1\\nLine 2\\r\\nLine 3"`);
console.log(` → "${filters.stripNewlines(multiline)}"`);
-// newlineToBr
console.log('\nnewlineToBr(text)');
console.log(` "Line 1\\nLine 2"`);
console.log(` → "${filters.newlineToBr('Line 1\nLine 2')}"`);
@@ -83,7 +72,6 @@ console.log(` → "${filters.newlineToBr('Line 1\nLine 2')}"`);
console.log('\n' + '═'.repeat(60));
console.log('\nNative filters are working correctly!\n');
-// Casos edge
console.log('Edge cases:\n');
console.log(' handleize(null):', `"${filters.handleize(null)}"`);
diff --git a/packages/liquid-forge-native/package.json b/packages/liquid-forge-native/package.json
index f5180460..54761ef8 100644
--- a/packages/liquid-forge-native/package.json
+++ b/packages/liquid-forge-native/package.json
@@ -1,7 +1,7 @@
{
"name": "@fasttify/liquid-forge-native",
"version": "1.0.0",
- "description": "High-performance native filters for Liquid templates",
+ "description": "High-performance native modules for Liquid Forge",
"main": "index.js",
"types": "index.d.ts",
"private": true,
@@ -34,10 +34,10 @@
"version": "napi version"
},
"devDependencies": {
- "@napi-rs/cli": "^2.18.0"
+ "@napi-rs/cli": "^3.5.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 20"
},
"files": [
"index.js",
diff --git a/packages/liquid-forge-native/src/filters/html.rs b/packages/liquid-forge-native/src/filters/html.rs
index 85201c19..bdb70c23 100644
--- a/packages/liquid-forge-native/src/filters/html.rs
+++ b/packages/liquid-forge-native/src/filters/html.rs
@@ -50,7 +50,7 @@ pub fn escape(text: Option) -> String {
};
// Fast path: check if escaping is needed
- if !text.contains(&['&', '<', '>', '"', '\'']) {
+ if !text.contains(['&', '<', '>', '"', '\'']) {
return text;
}
@@ -179,8 +179,7 @@ pub fn newline_to_br(text: Option) -> String {
};
text.replace("\r\n", "
")
- .replace('\n', "
")
- .replace('\r', "
")
+ .replace(['\n', '\r'], "
")
}
#[cfg(test)]
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2b54cab4..8d704c29 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -442,8 +442,8 @@ importers:
packages/liquid-forge-native:
devDependencies:
'@napi-rs/cli':
- specifier: ^2.18.0
- version: 2.18.4
+ specifier: ^3.5.0
+ version: 3.5.0(@emnapi/runtime@1.7.1)(@types/node@24.6.2)(node-addon-api@7.1.1)
packages/orders-app:
dependencies:
@@ -2117,6 +2117,9 @@ packages:
'@emnapi/core@1.5.0':
resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
+ '@emnapi/core@1.7.1':
+ resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==}
+
'@emnapi/runtime@1.7.1':
resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
@@ -2630,6 +2633,10 @@ packages:
resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==}
engines: {node: '>=18'}
+ '@inquirer/ansi@2.0.2':
+ resolution: {integrity: sha512-SYLX05PwJVnW+WVegZt1T4Ip1qba1ik+pNJPDiqvk6zS5Y/i8PhRzLpGEtVd7sW0G8cMtkD8t4AZYhQwm8vnww==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+
'@inquirer/checkbox@4.2.4':
resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==}
engines: {node: '>=18'}
@@ -2639,6 +2646,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/checkbox@5.0.3':
+ resolution: {integrity: sha512-xtQP2eXMFlOcAhZ4ReKP2KZvDIBb1AnCfZ81wWXG3DXLVH0f0g4obE0XDPH+ukAEMRcZT0kdX2AS1jrWGXbpxw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/confirm@5.1.18':
resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==}
engines: {node: '>=18'}
@@ -2648,6 +2664,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/confirm@6.0.3':
+ resolution: {integrity: sha512-lyEvibDFL+NA5R4xl8FUmNhmu81B+LDL9L/MpKkZlQDJZXzG8InxiqYxiAlQYa9cqLLhYqKLQwZqXmSTqCLjyw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/core@10.2.2':
resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==}
engines: {node: '>=18'}
@@ -2657,6 +2682,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/core@11.1.0':
+ resolution: {integrity: sha512-+jD/34T1pK8M5QmZD/ENhOfXdl9Zr+BrQAUc5h2anWgi7gggRq15ZbiBeLoObj0TLbdgW7TAIQRU2boMc9uOKQ==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/editor@4.2.20':
resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==}
engines: {node: '>=18'}
@@ -2666,6 +2700,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/editor@5.0.3':
+ resolution: {integrity: sha512-wYyQo96TsAqIciP/r5D3cFeV8h4WqKQ/YOvTg5yOfP2sqEbVVpbxPpfV3LM5D0EP4zUI3EZVHyIUIllnoIa8OQ==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/expand@4.0.20':
resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==}
engines: {node: '>=18'}
@@ -2675,6 +2718,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/expand@5.0.3':
+ resolution: {integrity: sha512-2oINvuL27ujjxd95f6K2K909uZOU2x1WiAl7Wb1X/xOtL8CgQ1kSxzykIr7u4xTkXkXOAkCuF45T588/YKee7w==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/external-editor@1.0.2':
resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==}
engines: {node: '>=18'}
@@ -2684,10 +2736,23 @@ packages:
'@types/node':
optional: true
+ '@inquirer/external-editor@2.0.2':
+ resolution: {integrity: sha512-X/fMXK7vXomRWEex1j8mnj7s1mpnTeP4CO/h2gysJhHLT2WjBnLv4ZQEGpm/kcYI8QfLZ2fgW+9kTKD+jeopLg==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/figures@1.0.13':
resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==}
engines: {node: '>=18'}
+ '@inquirer/figures@2.0.2':
+ resolution: {integrity: sha512-qXm6EVvQx/FmnSrCWCIGtMHwqeLgxABP8XgcaAoywsL0NFga9gD5kfG0gXiv80GjK9Hsoz4pgGwF/+CjygyV9A==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+
'@inquirer/input@4.2.4':
resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==}
engines: {node: '>=18'}
@@ -2697,6 +2762,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/input@5.0.3':
+ resolution: {integrity: sha512-4R0TdWl53dtp79Vs6Df2OHAtA2FVNqya1hND1f5wjHWxZJxwDMSNB1X5ADZJSsQKYAJ5JHCTO+GpJZ42mK0Otw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/number@3.0.20':
resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==}
engines: {node: '>=18'}
@@ -2706,6 +2780,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/number@4.0.3':
+ resolution: {integrity: sha512-TjQLe93GGo5snRlu83JxE38ZPqj5ZVggL+QqqAF2oBA5JOJoxx25GG3EGH/XN/Os5WOmKfO8iLVdCXQxXRZIMQ==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/password@4.0.20':
resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==}
engines: {node: '>=18'}
@@ -2715,6 +2798,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/password@5.0.3':
+ resolution: {integrity: sha512-rCozGbUMAHedTeYWEN8sgZH4lRCdgG/WinFkit6ZPsp8JaNg2T0g3QslPBS5XbpORyKP/I+xyBO81kFEvhBmjA==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/prompts@7.8.6':
resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==}
engines: {node: '>=18'}
@@ -2724,6 +2816,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/prompts@8.1.0':
+ resolution: {integrity: sha512-LsZMdKcmRNF5LyTRuZE5nWeOjganzmN3zwbtNfcs6GPh3I2TsTtF1UYZlbxVfhxd+EuUqLGs/Lm3Xt4v6Az1wA==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/rawlist@4.1.8':
resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==}
engines: {node: '>=18'}
@@ -2733,6 +2834,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/rawlist@5.1.0':
+ resolution: {integrity: sha512-yUCuVh0jW026Gr2tZlG3kHignxcrLKDR3KBp+eUgNz+BAdSeZk0e18yt2gyBr+giYhj/WSIHCmPDOgp1mT2niQ==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/search@3.1.3':
resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==}
engines: {node: '>=18'}
@@ -2742,6 +2852,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/search@4.0.3':
+ resolution: {integrity: sha512-lzqVw0YwuKYetk5VwJ81Ba+dyVlhseHPx9YnRKQgwXdFS0kEavCz2gngnNhnMIxg8+j1N/rUl1t5s1npwa7bqg==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/select@4.3.4':
resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==}
engines: {node: '>=18'}
@@ -2751,6 +2870,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/select@5.0.3':
+ resolution: {integrity: sha512-M+ynbwS0ecQFDYMFrQrybA0qL8DV0snpc4kKevCCNaTpfghsRowRY7SlQBeIYNzHqXtiiz4RG9vTOeb/udew7w==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/type@3.0.8':
resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==}
engines: {node: '>=18'}
@@ -2760,6 +2888,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/type@4.0.2':
+ resolution: {integrity: sha512-cae7mzluplsjSdgFA6ACLygb5jC8alO0UUnFPyu0E7tNRPrL+q/f8VcSXp+cjZQ7l5CMpDpi2G1+IQvkOiL1Lw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@isaacs/balanced-match@4.0.1':
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
engines: {node: 20 || >=22}
@@ -2905,14 +3042,342 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@napi-rs/cli@2.18.4':
- resolution: {integrity: sha512-SgJeA4df9DE2iAEpr3M2H0OKl/yjtg1BnRI5/JyowS71tUWhrfSu2LT0V3vlHET+g1hBVlrO60PmEXwUEKp8Mg==}
- engines: {node: '>= 10'}
+ '@napi-rs/cli@3.5.0':
+ resolution: {integrity: sha512-bJsDvAa9qK9VMkFhr780XWfQlK+GDlAX8qpK20buSmA0ld6nxCtiZ5a0J45zbd0FWT+VTZE1/u8VPH2vLfnVvw==}
+ engines: {node: '>= 16'}
hasBin: true
+ peerDependencies:
+ '@emnapi/runtime': ^1.7.1
+ peerDependenciesMeta:
+ '@emnapi/runtime':
+ optional: true
+
+ '@napi-rs/cross-toolchain@1.0.3':
+ resolution: {integrity: sha512-ENPfLe4937bsKVTDA6zdABx4pq9w0tHqRrJHyaGxgaPq03a2Bd1unD5XSKjXJjebsABJ+MjAv1A2OvCgK9yehg==}
+ peerDependencies:
+ '@napi-rs/cross-toolchain-arm64-target-aarch64': ^1.0.3
+ '@napi-rs/cross-toolchain-arm64-target-armv7': ^1.0.3
+ '@napi-rs/cross-toolchain-arm64-target-ppc64le': ^1.0.3
+ '@napi-rs/cross-toolchain-arm64-target-s390x': ^1.0.3
+ '@napi-rs/cross-toolchain-arm64-target-x86_64': ^1.0.3
+ '@napi-rs/cross-toolchain-x64-target-aarch64': ^1.0.3
+ '@napi-rs/cross-toolchain-x64-target-armv7': ^1.0.3
+ '@napi-rs/cross-toolchain-x64-target-ppc64le': ^1.0.3
+ '@napi-rs/cross-toolchain-x64-target-s390x': ^1.0.3
+ '@napi-rs/cross-toolchain-x64-target-x86_64': ^1.0.3
+ peerDependenciesMeta:
+ '@napi-rs/cross-toolchain-arm64-target-aarch64':
+ optional: true
+ '@napi-rs/cross-toolchain-arm64-target-armv7':
+ optional: true
+ '@napi-rs/cross-toolchain-arm64-target-ppc64le':
+ optional: true
+ '@napi-rs/cross-toolchain-arm64-target-s390x':
+ optional: true
+ '@napi-rs/cross-toolchain-arm64-target-x86_64':
+ optional: true
+ '@napi-rs/cross-toolchain-x64-target-aarch64':
+ optional: true
+ '@napi-rs/cross-toolchain-x64-target-armv7':
+ optional: true
+ '@napi-rs/cross-toolchain-x64-target-ppc64le':
+ optional: true
+ '@napi-rs/cross-toolchain-x64-target-s390x':
+ optional: true
+ '@napi-rs/cross-toolchain-x64-target-x86_64':
+ optional: true
+
+ '@napi-rs/lzma-android-arm-eabi@1.4.5':
+ resolution: {integrity: sha512-Up4gpyw2SacmyKWWEib06GhiDdF+H+CCU0LAV8pnM4aJIDqKKd5LHSlBht83Jut6frkB0vwEPmAkv4NjQ5u//Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@napi-rs/lzma-android-arm64@1.4.5':
+ resolution: {integrity: sha512-uwa8sLlWEzkAM0MWyoZJg0JTD3BkPknvejAFG2acUA1raXM8jLrqujWCdOStisXhqQjZ2nDMp3FV6cs//zjfuQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@napi-rs/lzma-darwin-arm64@1.4.5':
+ resolution: {integrity: sha512-0Y0TQLQ2xAjVabrMDem1NhIssOZzF/y/dqetc6OT8mD3xMTDtF8u5BqZoX3MyPc9FzpsZw4ksol+w7DsxHrpMA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/lzma-darwin-x64@1.4.5':
+ resolution: {integrity: sha512-vR2IUyJY3En+V1wJkwmbGWcYiT8pHloTAWdW4pG24+51GIq+intst6Uf6D/r46citObGZrlX0QvMarOkQeHWpw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/lzma-freebsd-x64@1.4.5':
+ resolution: {integrity: sha512-XpnYQC5SVovO35tF0xGkbHYjsS6kqyNCjuaLQ2dbEblFRr5cAZVvsJ/9h7zj/5FluJPJRDojVNxGyRhTp4z2lw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@napi-rs/lzma-linux-arm-gnueabihf@1.4.5':
+ resolution: {integrity: sha512-ic1ZZMoRfRMwtSwxkyw4zIlbDZGC6davC9r+2oX6x9QiF247BRqqT94qGeL5ZP4Vtz0Hyy7TEViWhx5j6Bpzvw==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-arm64-gnu@1.4.5':
+ resolution: {integrity: sha512-asEp7FPd7C1Yi6DQb45a3KPHKOFBSfGuJWXcAd4/bL2Fjetb2n/KK2z14yfW8YC/Fv6x3rBM0VAZKmJuz4tysg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-arm64-musl@1.4.5':
+ resolution: {integrity: sha512-yWjcPDgJ2nIL3KNvi4536dlT/CcCWO0DUyEOlBs/SacG7BeD6IjGh6yYzd3/X1Y3JItCbZoDoLUH8iB1lTXo3w==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-ppc64-gnu@1.4.5':
+ resolution: {integrity: sha512-0XRhKuIU/9ZjT4WDIG/qnX7Xz7mSQHYZo9Gb3MP2gcvBgr6BA4zywQ9k3gmQaPn9ECE+CZg2V7DV7kT+x2pUMQ==}
+ engines: {node: '>= 10'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-riscv64-gnu@1.4.5':
+ resolution: {integrity: sha512-QrqDIPEUUB23GCpyQj/QFyMlr8SGxxyExeZz9OWFnHfb70kXdTLWrHS/hEI1Ru+lSbQ/6xRqeoGyQ4Aqdg+/RA==}
+ engines: {node: '>= 10'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-s390x-gnu@1.4.5':
+ resolution: {integrity: sha512-k8RVM5aMhW86E9H0QXdquwojew4H3SwPxbRVbl49/COJQWCUjGi79X6mYruMnMPEznZinUiT1jgKbFo2A00NdA==}
+ engines: {node: '>= 10'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-x64-gnu@1.4.5':
+ resolution: {integrity: sha512-6rMtBgnIq2Wcl1rQdZsnM+rtCcVCbws1nF8S2NzaUsVaZv8bjrPiAa0lwg4Eqnn1d9lgwqT+cZgm5m+//K08Kw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/lzma-linux-x64-musl@1.4.5':
+ resolution: {integrity: sha512-eiadGBKi7Vd0bCArBUOO/qqRYPHt/VQVvGyYvDFt6C2ZSIjlD+HuOl+2oS1sjf4CFjK4eDIog6EdXnL0NE6iyQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/lzma-wasm32-wasi@1.4.5':
+ resolution: {integrity: sha512-+VyHHlr68dvey6fXc2hehw9gHVFIW3TtGF1XkcbAu65qVXsA9D/T+uuoRVqhE+JCyFHFrO0ixRbZDRK1XJt1sA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@napi-rs/lzma-win32-arm64-msvc@1.4.5':
+ resolution: {integrity: sha512-eewnqvIyyhHi3KaZtBOJXohLvwwN27gfS2G/YDWdfHlbz1jrmfeHAmzMsP5qv8vGB+T80TMHNkro4kYjeh6Deg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/lzma-win32-ia32-msvc@1.4.5':
+ resolution: {integrity: sha512-OeacFVRCJOKNU/a0ephUfYZ2Yt+NvaHze/4TgOwJ0J0P4P7X1mHzN+ig9Iyd74aQDXYqc7kaCXA2dpAOcH87Cg==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@napi-rs/lzma-win32-x64-msvc@1.4.5':
+ resolution: {integrity: sha512-T4I1SamdSmtyZgDXGAGP+y5LEK5vxHUFwe8mz6D4R7Sa5/WCxTcCIgPJ9BD7RkpO17lzhlaM2vmVvMy96Lvk9Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/lzma@1.4.5':
+ resolution: {integrity: sha512-zS5LuN1OBPAyZpda2ZZgYOEDC+xecUdAGnrvbYzjnLXkrq/OBC3B9qcRvlxbDR3k5H/gVfvef1/jyUqPknqjbg==}
+ engines: {node: '>= 10'}
+
+ '@napi-rs/tar-android-arm-eabi@1.1.0':
+ resolution: {integrity: sha512-h2Ryndraj/YiKgMV/r5by1cDusluYIRT0CaE0/PekQ4u+Wpy2iUVqvzVU98ZPnhXaNeYxEvVJHNGafpOfaD0TA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@napi-rs/tar-android-arm64@1.1.0':
+ resolution: {integrity: sha512-DJFyQHr1ZxNZorm/gzc1qBNLF/FcKzcH0V0Vwan5P+o0aE2keQIGEjJ09FudkF9v6uOuJjHCVDdK6S6uHtShAw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@napi-rs/tar-darwin-arm64@1.1.0':
+ resolution: {integrity: sha512-Zz2sXRzjIX4e532zD6xm2SjXEym6MkvfCvL2RMpG2+UwNVDVscHNcz3d47Pf3sysP2e2af7fBB3TIoK2f6trPw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/tar-darwin-x64@1.1.0':
+ resolution: {integrity: sha512-EI+CptIMNweT0ms9S3mkP/q+J6FNZ1Q6pvpJOEcWglRfyfQpLqjlC0O+dptruTPE8VamKYuqdjxfqD8hifZDOA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/tar-freebsd-x64@1.1.0':
+ resolution: {integrity: sha512-J0PIqX+pl6lBIAckL/c87gpodLbjZB1OtIK+RDscKC9NLdpVv6VGOxzUV/fYev/hctcE8EfkLbgFOfpmVQPg2g==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@napi-rs/tar-linux-arm-gnueabihf@1.1.0':
+ resolution: {integrity: sha512-SLgIQo3f3EjkZ82ZwvrEgFvMdDAhsxCYjyoSuWfHCz0U16qx3SuGCp8+FYOPYCECHN3ZlGjXnoAIt9ERd0dEUg==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@napi-rs/tar-linux-arm64-gnu@1.1.0':
+ resolution: {integrity: sha512-d014cdle52EGaH6GpYTQOP9Py7glMO1zz/+ynJPjjzYFSxvdYx0byrjumZk2UQdIyGZiJO2MEFpCkEEKFSgPYA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/tar-linux-arm64-musl@1.1.0':
+ resolution: {integrity: sha512-L/y1/26q9L/uBqiW/JdOb/Dc94egFvNALUZV2WCGKQXc6UByPBMgdiEyW2dtoYxYYYYc+AKD+jr+wQPcvX2vrQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/tar-linux-ppc64-gnu@1.1.0':
+ resolution: {integrity: sha512-EPE1K/80RQvPbLRJDJs1QmCIcH+7WRi0F73+oTe1582y9RtfGRuzAkzeBuAGRXAQEjRQw/RjtNqr6UTJ+8UuWQ==}
+ engines: {node: '>= 10'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@napi-rs/tar-linux-s390x-gnu@1.1.0':
+ resolution: {integrity: sha512-B2jhWiB1ffw1nQBqLUP1h4+J1ovAxBOoe5N2IqDMOc63fsPZKNqF1PvO/dIem8z7LL4U4bsfmhy3gBfu547oNQ==}
+ engines: {node: '>= 10'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@napi-rs/tar-linux-x64-gnu@1.1.0':
+ resolution: {integrity: sha512-tbZDHnb9617lTnsDMGo/eAMZxnsQFnaRe+MszRqHguKfMwkisc9CCJnks/r1o84u5fECI+J/HOrKXgczq/3Oww==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/tar-linux-x64-musl@1.1.0':
+ resolution: {integrity: sha512-dV6cODlzbO8u6Anmv2N/ilQHq/AWz0xyltuXoLU3yUyXbZcnWYZuB2rL8OBGPmqNcD+x9NdScBNXh7vWN0naSQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/tar-wasm32-wasi@1.1.0':
+ resolution: {integrity: sha512-jIa9nb2HzOrfH0F8QQ9g3WE4aMH5vSI5/1NYVNm9ysCmNjCCtMXCAhlI3WKCdm/DwHf0zLqdrrtDFXODcNaqMw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@napi-rs/tar-win32-arm64-msvc@1.1.0':
+ resolution: {integrity: sha512-vfpG71OB0ijtjemp3WTdmBKJm9R70KM8vsSExMsIQtV0lVzP07oM1CW6JbNRPXNLhRoue9ofYLiUDk8bE0Hckg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/tar-win32-ia32-msvc@1.1.0':
+ resolution: {integrity: sha512-hGPyPW60YSpOSgzfy68DLBHgi6HxkAM+L59ZZZPMQ0TOXjQg+p2EW87+TjZfJOkSpbYiEkULwa/f4a2hcVjsqQ==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@napi-rs/tar-win32-x64-msvc@1.1.0':
+ resolution: {integrity: sha512-L6Ed1DxXK9YSCMyvpR8MiNAyKNkQLjsHsHK9E0qnHa8NzLFqzDKhvs5LfnWxM2kJ+F7m/e5n9zPm24kHb3LsVw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/tar@1.1.0':
+ resolution: {integrity: sha512-7cmzIu+Vbupriudo7UudoMRH2OA3cTw67vva8MxeoAe5S7vPFI7z0vp0pMXiA25S8IUJefImQ90FeJjl8fjEaQ==}
+ engines: {node: '>= 10'}
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
+ '@napi-rs/wasm-runtime@1.1.0':
+ resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==}
+
+ '@napi-rs/wasm-tools-android-arm-eabi@1.0.1':
+ resolution: {integrity: sha512-lr07E/l571Gft5v4aA1dI8koJEmF1F0UigBbsqg9OWNzg80H3lDPO+auv85y3T/NHE3GirDk7x/D3sLO57vayw==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@napi-rs/wasm-tools-android-arm64@1.0.1':
+ resolution: {integrity: sha512-WDR7S+aRLV6LtBJAg5fmjKkTZIdrEnnQxgdsb7Cf8pYiMWBHLU+LC49OUVppQ2YSPY0+GeYm9yuZWW3kLjJ7Bg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@napi-rs/wasm-tools-darwin-arm64@1.0.1':
+ resolution: {integrity: sha512-qWTI+EEkiN0oIn/N2gQo7+TVYil+AJ20jjuzD2vATS6uIjVz+Updeqmszi7zq7rdFTLp6Ea3/z4kDKIfZwmR9g==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/wasm-tools-darwin-x64@1.0.1':
+ resolution: {integrity: sha512-bA6hubqtHROR5UI3tToAF/c6TDmaAgF0SWgo4rADHtQ4wdn0JeogvOk50gs2TYVhKPE2ZD2+qqt7oBKB+sxW3A==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/wasm-tools-freebsd-x64@1.0.1':
+ resolution: {integrity: sha512-90+KLBkD9hZEjPQW1MDfwSt5J1L46EUKacpCZWyRuL6iIEO5CgWU0V/JnEgFsDOGyyYtiTvHc5bUdUTWd4I9Vg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@napi-rs/wasm-tools-linux-arm64-gnu@1.0.1':
+ resolution: {integrity: sha512-rG0QlS65x9K/u3HrKafDf8cFKj5wV2JHGfl8abWgKew0GVPyp6vfsDweOwHbWAjcHtp2LHi6JHoW80/MTHm52Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/wasm-tools-linux-arm64-musl@1.0.1':
+ resolution: {integrity: sha512-jAasbIvjZXCgX0TCuEFQr+4D6Lla/3AAVx2LmDuMjgG4xoIXzjKWl7c4chuaD+TI+prWT0X6LJcdzFT+ROKGHQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@napi-rs/wasm-tools-linux-x64-gnu@1.0.1':
+ resolution: {integrity: sha512-Plgk5rPqqK2nocBGajkMVbGm010Z7dnUgq0wtnYRZbzWWxwWcXfZMPa8EYxrK4eE8SzpI7VlZP1tdVsdjgGwMw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/wasm-tools-linux-x64-musl@1.0.1':
+ resolution: {integrity: sha512-GW7AzGuWxtQkyHknHWYFdR0CHmW6is8rG2Rf4V6GNmMpmwtXt/ItWYWtBe4zqJWycMNazpfZKSw/BpT7/MVCXQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@napi-rs/wasm-tools-wasm32-wasi@1.0.1':
+ resolution: {integrity: sha512-/nQVSTrqSsn7YdAc2R7Ips/tnw5SPUcl3D7QrXCNGPqjbatIspnaexvaOYNyKMU6xPu+pc0BTnKVmqhlJJCPLA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@napi-rs/wasm-tools-win32-arm64-msvc@1.0.1':
+ resolution: {integrity: sha512-PFi7oJIBu5w7Qzh3dwFea3sHRO3pojMsaEnUIy22QvsW+UJfNQwJCryVrpoUt8m4QyZXI+saEq/0r4GwdoHYFQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/wasm-tools-win32-ia32-msvc@1.0.1':
+ resolution: {integrity: sha512-gXkuYzxQsgkj05Zaq+KQTkHIN83dFAwMcTKa2aQcpYPRImFm2AQzEyLtpXmyCWzJ0F9ZYAOmbSyrNew8/us6bw==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@napi-rs/wasm-tools-win32-x64-msvc@1.0.1':
+ resolution: {integrity: sha512-rEAf05nol3e3eei2sRButmgXP+6ATgm0/38MKhz9Isne82T4rPIMYsCIFj0kOisaGeVwoi2fnm7O9oWp5YVnYQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/wasm-tools@1.0.1':
+ resolution: {integrity: sha512-enkZYyuCdo+9jneCPE/0fjIta4wWnvVN9hBo2HuiMpRF0q3lzv1J6b/cl7i0mxZUKhBrV3aCKDBQnCOhwKbPmQ==}
+ engines: {node: '>= 10'}
+
'@next/bundle-analyzer@16.0.0':
resolution: {integrity: sha512-OYufQoNm/Im2fYQBdXu9fqUrXaP3lPuPnryW0XNGG7kJiGxH/VWS8zc2/x4aW2LQGn+opqIJYNRXy7k5qV/09g==}
@@ -2986,6 +3451,58 @@ packages:
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
+ '@octokit/auth-token@6.0.0':
+ resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==}
+ engines: {node: '>= 20'}
+
+ '@octokit/core@7.0.6':
+ resolution: {integrity: sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==}
+ engines: {node: '>= 20'}
+
+ '@octokit/endpoint@11.0.2':
+ resolution: {integrity: sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==}
+ engines: {node: '>= 20'}
+
+ '@octokit/graphql@9.0.3':
+ resolution: {integrity: sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==}
+ engines: {node: '>= 20'}
+
+ '@octokit/openapi-types@27.0.0':
+ resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==}
+
+ '@octokit/plugin-paginate-rest@14.0.0':
+ resolution: {integrity: sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==}
+ engines: {node: '>= 20'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/plugin-request-log@6.0.0':
+ resolution: {integrity: sha512-UkOzeEN3W91/eBq9sPZNQ7sUBvYCqYbrrD8gTbBuGtHEuycE4/awMXcYvx6sVYo7LypPhmQwwpUe4Yyu4QZN5Q==}
+ engines: {node: '>= 20'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/plugin-rest-endpoint-methods@17.0.0':
+ resolution: {integrity: sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==}
+ engines: {node: '>= 20'}
+ peerDependencies:
+ '@octokit/core': '>=6'
+
+ '@octokit/request-error@7.1.0':
+ resolution: {integrity: sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==}
+ engines: {node: '>= 20'}
+
+ '@octokit/request@10.0.7':
+ resolution: {integrity: sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==}
+ engines: {node: '>= 20'}
+
+ '@octokit/rest@22.0.1':
+ resolution: {integrity: sha512-Jzbhzl3CEexhnivb1iQ0KJ7s5vvjMWcmRtq5aUsKmKDrRW6z3r84ngmiFKFvpZjpiU/9/S6ITPFRpn5s/3uQJw==}
+ engines: {node: '>= 20'}
+
+ '@octokit/types@16.0.0':
+ resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==}
+
'@one-ini/wasm@0.1.1':
resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
@@ -5044,6 +5561,9 @@ packages:
resolution: {integrity: sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==}
hasBin: true
+ before-after-hook@4.0.0:
+ resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==}
+
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
@@ -5199,6 +5719,9 @@ packages:
chardet@2.1.0:
resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
+ chardet@2.1.1:
+ resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==}
+
charenc@0.0.2:
resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
@@ -5247,6 +5770,11 @@ packages:
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+ clipanion@4.0.0-rc.4:
+ resolution: {integrity: sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q==}
+ peerDependencies:
+ typanion: '*'
+
cliui@6.0.0:
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
@@ -5730,6 +6258,14 @@ packages:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: '>=12'}
+ emnapi@1.7.1:
+ resolution: {integrity: sha512-wlLK2xFq+T+rCBlY6+lPlFVDEyE93b7hSn9dMrfWBIcPf4ArwUvymvvMnN9M5WWuiryYQe9M+UJrkqw4trdyRA==}
+ peerDependencies:
+ node-addon-api: '>= 6.1.0'
+ peerDependenciesMeta:
+ node-addon-api:
+ optional: true
+
emoji-regex@10.5.0:
resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==}
@@ -5795,6 +6331,9 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
+ es-toolkit@1.43.0:
+ resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==}
+
esbuild@0.25.10:
resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==}
engines: {node: '>=18'}
@@ -6012,6 +6551,9 @@ packages:
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ fast-content-type-parse@3.0.0:
+ resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==}
+
fast-deep-equal@2.0.1:
resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
@@ -7582,6 +8124,10 @@ packages:
resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
engines: {node: ^18.17.0 || >=20.5.0}
+ mute-stream@3.0.0:
+ resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==}
+ engines: {node: ^20.17.0 || >=22.9.0}
+
mysql2@3.9.9:
resolution: {integrity: sha512-Qtb2RUxwWMFkWXqF7Rd/7ySkupbQnNY7O0zQuQYgPcuJZ06M36JG3HIDEh/pEeq7LImcvA6O3lOVQ9XQK+HEZg==}
engines: {node: '>= 8.0'}
@@ -7738,6 +8284,9 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
+ obug@2.1.1:
+ resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
+
ogl@1.0.11:
resolution: {integrity: sha512-kUpC154AFfxi16pmZUK4jk3J+8zxwTWGPo03EoYA8QPbzikHoaC82n6pNTbd+oEaJonaE8aPWBlX7ad9zrqLsA==}
@@ -9099,6 +9648,9 @@ packages:
resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==}
hasBin: true
+ typanion@3.14.0:
+ resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==}
+
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -9202,6 +9754,9 @@ packages:
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ universal-user-agent@7.0.3:
+ resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==}
+
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
@@ -9991,7 +10546,7 @@ snapshots:
pluralize: 8.0.0
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- semver: 7.7.2
+ semver: 7.7.3
typescript: 4.4.4
optionalDependencies:
prettier: 2.3.2
@@ -11331,7 +11886,7 @@ snapshots:
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0)
+ '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.901.0)
'@aws-sdk/client-sts': 3.621.0
'@aws-sdk/core': 3.621.0
'@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)
@@ -11469,7 +12024,7 @@ snapshots:
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.901.0)
+ '@aws-sdk/client-sso-oidc': 3.621.0(@aws-sdk/client-sts@3.621.0)
'@aws-sdk/client-sts': 3.621.0
'@aws-sdk/core': 3.621.0
'@aws-sdk/credential-provider-node': 3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)
@@ -13996,6 +14551,12 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@emnapi/core@1.7.1':
+ dependencies:
+ '@emnapi/wasi-threads': 1.1.0
+ tslib: 2.8.1
+ optional: true
+
'@emnapi/runtime@1.7.1':
dependencies:
tslib: 2.8.1
@@ -14474,6 +15035,8 @@ snapshots:
'@inquirer/ansi@1.0.0': {}
+ '@inquirer/ansi@2.0.2': {}
+
'@inquirer/checkbox@4.2.4(@types/node@24.6.2)':
dependencies:
'@inquirer/ansi': 1.0.0
@@ -14484,6 +15047,15 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/checkbox@5.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/ansi': 2.0.2
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/figures': 2.0.2
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/confirm@5.1.18(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14491,6 +15063,13 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/confirm@6.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/core@10.2.2(@types/node@24.6.2)':
dependencies:
'@inquirer/ansi': 1.0.0
@@ -14504,6 +15083,18 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/core@11.1.0(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/ansi': 2.0.2
+ '@inquirer/figures': 2.0.2
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ cli-width: 4.1.0
+ mute-stream: 3.0.0
+ signal-exit: 4.1.0
+ wrap-ansi: 9.0.2
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/editor@4.2.20(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14512,6 +15103,14 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/editor@5.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/external-editor': 2.0.2(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/expand@4.0.20(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14520,6 +15119,13 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/expand@5.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/external-editor@1.0.2(@types/node@24.6.2)':
dependencies:
chardet: 2.1.0
@@ -14527,8 +15133,17 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/external-editor@2.0.2(@types/node@24.6.2)':
+ dependencies:
+ chardet: 2.1.1
+ iconv-lite: 0.7.0
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/figures@1.0.13': {}
+ '@inquirer/figures@2.0.2': {}
+
'@inquirer/input@4.2.4(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14536,6 +15151,13 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/input@5.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/number@3.0.20(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14543,6 +15165,13 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/number@4.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/password@4.0.20(@types/node@24.6.2)':
dependencies:
'@inquirer/ansi': 1.0.0
@@ -14551,6 +15180,14 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/password@5.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/ansi': 2.0.2
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/prompts@7.8.6(@types/node@24.6.2)':
dependencies:
'@inquirer/checkbox': 4.2.4(@types/node@24.6.2)
@@ -14566,6 +15203,21 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/prompts@8.1.0(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/checkbox': 5.0.3(@types/node@24.6.2)
+ '@inquirer/confirm': 6.0.3(@types/node@24.6.2)
+ '@inquirer/editor': 5.0.3(@types/node@24.6.2)
+ '@inquirer/expand': 5.0.3(@types/node@24.6.2)
+ '@inquirer/input': 5.0.3(@types/node@24.6.2)
+ '@inquirer/number': 4.0.3(@types/node@24.6.2)
+ '@inquirer/password': 5.0.3(@types/node@24.6.2)
+ '@inquirer/rawlist': 5.1.0(@types/node@24.6.2)
+ '@inquirer/search': 4.0.3(@types/node@24.6.2)
+ '@inquirer/select': 5.0.3(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/rawlist@4.1.8(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14574,6 +15226,13 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/rawlist@5.1.0(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/search@3.1.3(@types/node@24.6.2)':
dependencies:
'@inquirer/core': 10.2.2(@types/node@24.6.2)
@@ -14583,6 +15242,14 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/search@4.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/figures': 2.0.2
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/select@4.3.4(@types/node@24.6.2)':
dependencies:
'@inquirer/ansi': 1.0.0
@@ -14593,10 +15260,23 @@ snapshots:
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/select@5.0.3(@types/node@24.6.2)':
+ dependencies:
+ '@inquirer/ansi': 2.0.2
+ '@inquirer/core': 11.1.0(@types/node@24.6.2)
+ '@inquirer/figures': 2.0.2
+ '@inquirer/type': 4.0.2(@types/node@24.6.2)
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@inquirer/type@3.0.8(@types/node@24.6.2)':
optionalDependencies:
'@types/node': 24.6.2
+ '@inquirer/type@4.0.2(@types/node@24.6.2)':
+ optionalDependencies:
+ '@types/node': 24.6.2
+
'@isaacs/balanced-match@4.0.1': {}
'@isaacs/brace-expansion@5.0.0':
@@ -14852,7 +15532,186 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@napi-rs/cli@2.18.4': {}
+ '@napi-rs/cli@3.5.0(@emnapi/runtime@1.7.1)(@types/node@24.6.2)(node-addon-api@7.1.1)':
+ dependencies:
+ '@inquirer/prompts': 8.1.0(@types/node@24.6.2)
+ '@napi-rs/cross-toolchain': 1.0.3
+ '@napi-rs/wasm-tools': 1.0.1
+ '@octokit/rest': 22.0.1
+ clipanion: 4.0.0-rc.4(typanion@3.14.0)
+ colorette: 2.0.20
+ emnapi: 1.7.1(node-addon-api@7.1.1)
+ es-toolkit: 1.43.0
+ js-yaml: 4.1.0
+ obug: 2.1.1
+ semver: 7.7.3
+ typanion: 3.14.0
+ optionalDependencies:
+ '@emnapi/runtime': 1.7.1
+ transitivePeerDependencies:
+ - '@napi-rs/cross-toolchain-arm64-target-aarch64'
+ - '@napi-rs/cross-toolchain-arm64-target-armv7'
+ - '@napi-rs/cross-toolchain-arm64-target-ppc64le'
+ - '@napi-rs/cross-toolchain-arm64-target-s390x'
+ - '@napi-rs/cross-toolchain-arm64-target-x86_64'
+ - '@napi-rs/cross-toolchain-x64-target-aarch64'
+ - '@napi-rs/cross-toolchain-x64-target-armv7'
+ - '@napi-rs/cross-toolchain-x64-target-ppc64le'
+ - '@napi-rs/cross-toolchain-x64-target-s390x'
+ - '@napi-rs/cross-toolchain-x64-target-x86_64'
+ - '@types/node'
+ - node-addon-api
+ - supports-color
+
+ '@napi-rs/cross-toolchain@1.0.3':
+ dependencies:
+ '@napi-rs/lzma': 1.4.5
+ '@napi-rs/tar': 1.1.0
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@napi-rs/lzma-android-arm-eabi@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-android-arm64@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-darwin-arm64@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-darwin-x64@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-freebsd-x64@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-arm-gnueabihf@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-arm64-gnu@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-arm64-musl@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-ppc64-gnu@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-riscv64-gnu@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-s390x-gnu@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-x64-gnu@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-linux-x64-musl@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-wasm32-wasi@1.4.5':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.0
+ optional: true
+
+ '@napi-rs/lzma-win32-arm64-msvc@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-win32-ia32-msvc@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma-win32-x64-msvc@1.4.5':
+ optional: true
+
+ '@napi-rs/lzma@1.4.5':
+ optionalDependencies:
+ '@napi-rs/lzma-android-arm-eabi': 1.4.5
+ '@napi-rs/lzma-android-arm64': 1.4.5
+ '@napi-rs/lzma-darwin-arm64': 1.4.5
+ '@napi-rs/lzma-darwin-x64': 1.4.5
+ '@napi-rs/lzma-freebsd-x64': 1.4.5
+ '@napi-rs/lzma-linux-arm-gnueabihf': 1.4.5
+ '@napi-rs/lzma-linux-arm64-gnu': 1.4.5
+ '@napi-rs/lzma-linux-arm64-musl': 1.4.5
+ '@napi-rs/lzma-linux-ppc64-gnu': 1.4.5
+ '@napi-rs/lzma-linux-riscv64-gnu': 1.4.5
+ '@napi-rs/lzma-linux-s390x-gnu': 1.4.5
+ '@napi-rs/lzma-linux-x64-gnu': 1.4.5
+ '@napi-rs/lzma-linux-x64-musl': 1.4.5
+ '@napi-rs/lzma-wasm32-wasi': 1.4.5
+ '@napi-rs/lzma-win32-arm64-msvc': 1.4.5
+ '@napi-rs/lzma-win32-ia32-msvc': 1.4.5
+ '@napi-rs/lzma-win32-x64-msvc': 1.4.5
+
+ '@napi-rs/tar-android-arm-eabi@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-android-arm64@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-darwin-arm64@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-darwin-x64@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-freebsd-x64@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-arm-gnueabihf@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-arm64-gnu@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-arm64-musl@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-ppc64-gnu@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-s390x-gnu@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-x64-gnu@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-linux-x64-musl@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-wasm32-wasi@1.1.0':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.0
+ optional: true
+
+ '@napi-rs/tar-win32-arm64-msvc@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-win32-ia32-msvc@1.1.0':
+ optional: true
+
+ '@napi-rs/tar-win32-x64-msvc@1.1.0':
+ optional: true
+
+ '@napi-rs/tar@1.1.0':
+ optionalDependencies:
+ '@napi-rs/tar-android-arm-eabi': 1.1.0
+ '@napi-rs/tar-android-arm64': 1.1.0
+ '@napi-rs/tar-darwin-arm64': 1.1.0
+ '@napi-rs/tar-darwin-x64': 1.1.0
+ '@napi-rs/tar-freebsd-x64': 1.1.0
+ '@napi-rs/tar-linux-arm-gnueabihf': 1.1.0
+ '@napi-rs/tar-linux-arm64-gnu': 1.1.0
+ '@napi-rs/tar-linux-arm64-musl': 1.1.0
+ '@napi-rs/tar-linux-ppc64-gnu': 1.1.0
+ '@napi-rs/tar-linux-s390x-gnu': 1.1.0
+ '@napi-rs/tar-linux-x64-gnu': 1.1.0
+ '@napi-rs/tar-linux-x64-musl': 1.1.0
+ '@napi-rs/tar-wasm32-wasi': 1.1.0
+ '@napi-rs/tar-win32-arm64-msvc': 1.1.0
+ '@napi-rs/tar-win32-ia32-msvc': 1.1.0
+ '@napi-rs/tar-win32-x64-msvc': 1.1.0
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
@@ -14861,6 +15720,70 @@ snapshots:
'@tybys/wasm-util': 0.10.1
optional: true
+ '@napi-rs/wasm-runtime@1.1.0':
+ dependencies:
+ '@emnapi/core': 1.7.1
+ '@emnapi/runtime': 1.7.1
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
+ '@napi-rs/wasm-tools-android-arm-eabi@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-android-arm64@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-darwin-arm64@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-darwin-x64@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-freebsd-x64@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-linux-arm64-gnu@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-linux-arm64-musl@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-linux-x64-gnu@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-linux-x64-musl@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-wasm32-wasi@1.0.1':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.0
+ optional: true
+
+ '@napi-rs/wasm-tools-win32-arm64-msvc@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-win32-ia32-msvc@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools-win32-x64-msvc@1.0.1':
+ optional: true
+
+ '@napi-rs/wasm-tools@1.0.1':
+ optionalDependencies:
+ '@napi-rs/wasm-tools-android-arm-eabi': 1.0.1
+ '@napi-rs/wasm-tools-android-arm64': 1.0.1
+ '@napi-rs/wasm-tools-darwin-arm64': 1.0.1
+ '@napi-rs/wasm-tools-darwin-x64': 1.0.1
+ '@napi-rs/wasm-tools-freebsd-x64': 1.0.1
+ '@napi-rs/wasm-tools-linux-arm64-gnu': 1.0.1
+ '@napi-rs/wasm-tools-linux-arm64-musl': 1.0.1
+ '@napi-rs/wasm-tools-linux-x64-gnu': 1.0.1
+ '@napi-rs/wasm-tools-linux-x64-musl': 1.0.1
+ '@napi-rs/wasm-tools-wasm32-wasi': 1.0.1
+ '@napi-rs/wasm-tools-win32-arm64-msvc': 1.0.1
+ '@napi-rs/wasm-tools-win32-ia32-msvc': 1.0.1
+ '@napi-rs/wasm-tools-win32-x64-msvc': 1.0.1
+
'@next/bundle-analyzer@16.0.0':
dependencies:
webpack-bundle-analyzer: 4.10.1
@@ -14912,6 +15835,68 @@ snapshots:
'@nolyfill/is-core-module@1.0.39': {}
+ '@octokit/auth-token@6.0.0': {}
+
+ '@octokit/core@7.0.6':
+ dependencies:
+ '@octokit/auth-token': 6.0.0
+ '@octokit/graphql': 9.0.3
+ '@octokit/request': 10.0.7
+ '@octokit/request-error': 7.1.0
+ '@octokit/types': 16.0.0
+ before-after-hook: 4.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/endpoint@11.0.2':
+ dependencies:
+ '@octokit/types': 16.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/graphql@9.0.3':
+ dependencies:
+ '@octokit/request': 10.0.7
+ '@octokit/types': 16.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/openapi-types@27.0.0': {}
+
+ '@octokit/plugin-paginate-rest@14.0.0(@octokit/core@7.0.6)':
+ dependencies:
+ '@octokit/core': 7.0.6
+ '@octokit/types': 16.0.0
+
+ '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.6)':
+ dependencies:
+ '@octokit/core': 7.0.6
+
+ '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.6)':
+ dependencies:
+ '@octokit/core': 7.0.6
+ '@octokit/types': 16.0.0
+
+ '@octokit/request-error@7.1.0':
+ dependencies:
+ '@octokit/types': 16.0.0
+
+ '@octokit/request@10.0.7':
+ dependencies:
+ '@octokit/endpoint': 11.0.2
+ '@octokit/request-error': 7.1.0
+ '@octokit/types': 16.0.0
+ fast-content-type-parse: 3.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/rest@22.0.1':
+ dependencies:
+ '@octokit/core': 7.0.6
+ '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.6)
+ '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.6)
+ '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.6)
+
+ '@octokit/types@16.0.0':
+ dependencies:
+ '@octokit/openapi-types': 27.0.0
+
'@one-ini/wasm@0.1.1': {}
'@opentelemetry/api@1.9.0': {}
@@ -17472,6 +18457,8 @@ snapshots:
baseline-browser-mapping@2.9.7: {}
+ before-after-hook@4.0.0: {}
+
binary-extensions@2.3.0: {}
boolbase@1.0.0: {}
@@ -17679,6 +18666,8 @@ snapshots:
chardet@2.1.0: {}
+ chardet@2.1.1: {}
+
charenc@0.0.2: {}
chokidar@3.6.0:
@@ -17726,6 +18715,10 @@ snapshots:
client-only@0.0.1: {}
+ clipanion@4.0.0-rc.4(typanion@3.14.0):
+ dependencies:
+ typanion: 3.14.0
+
cliui@6.0.0:
dependencies:
string-width: 4.2.3
@@ -18168,6 +19161,10 @@ snapshots:
emittery@0.13.1: {}
+ emnapi@1.7.1(node-addon-api@7.1.1):
+ optionalDependencies:
+ node-addon-api: 7.1.1
+
emoji-regex@10.5.0: {}
emoji-regex@8.0.0: {}
@@ -18292,6 +19289,8 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
+ es-toolkit@1.43.0: {}
+
esbuild@0.25.10:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.10
@@ -18657,6 +19656,8 @@ snapshots:
extend@3.0.2: {}
+ fast-content-type-parse@3.0.0: {}
+
fast-deep-equal@2.0.1: {}
fast-deep-equal@3.1.3: {}
@@ -19734,7 +20735,7 @@ snapshots:
jest-message-util: 30.2.0
jest-util: 30.2.0
pretty-format: 30.2.0
- semver: 7.7.2
+ semver: 7.7.3
synckit: 0.11.11
transitivePeerDependencies:
- supports-color
@@ -20598,6 +21599,8 @@ snapshots:
mute-stream@2.0.0: {}
+ mute-stream@3.0.0: {}
+
mysql2@3.9.9:
dependencies:
denque: 2.1.0
@@ -20752,6 +21755,8 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.1
+ obug@2.1.1: {}
+
ogl@1.0.11: {}
once@1.4.0:
@@ -22246,6 +23251,8 @@ snapshots:
turbo-windows-64: 2.5.8
turbo-windows-arm64: 2.5.8
+ typanion@3.14.0: {}
+
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
@@ -22364,6 +23371,8 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
+ universal-user-agent@7.0.3: {}
+
universalify@0.1.2: {}
universalify@2.0.1: {}