From 03c0baf5b50bbb92a8b5626e325cf7e732824392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Sat, 31 Jan 2026 23:13:51 +0100 Subject: [PATCH] Lots + MIDI implementation --- .github/workflows/ci.yml | 12 +- .github/workflows/pages.yml | 22 +- Cargo.toml | 1 + crates/forth/src/lib.rs | 2 +- crates/forth/src/ops.rs | 7 + crates/forth/src/types.rs | 3 + crates/forth/src/vm.rs | 69 + crates/forth/src/words.rs | 127 ++ src/app.rs | 14 + src/engine/mod.rs | 4 +- src/engine/sequencer.rs | 160 +- src/input.rs | 34 + src/lib.rs | 1 + src/main.rs | 34 +- src/midi.rs | 176 ++ src/model/mod.rs | 2 +- src/model/script.rs | 2 +- src/settings.rs | 8 + src/state/options.rs | 10 +- src/views/options_view.rs | 38 +- src/views/render.rs | 1 + tests/forth.rs | 3 + tests/forth/harness.rs | 1 + tests/forth/midi.rs | 284 +++ website/.gitignore | 3 + website/.nojekyll | 0 website/astro.config.mjs | 5 + website/index.html | 164 -- website/package.json | 12 + website/pnpm-lock.yaml | 3142 ++++++++++++++++++++++++++++++ website/{ => public}/CNAME | 0 website/public/CozetteVector.ttf | Bin 0 -> 649328 bytes website/{ => public}/cagire.png | Bin website/src/pages/index.astro | 173 ++ 34 files changed, 4323 insertions(+), 191 deletions(-) create mode 100644 src/midi.rs create mode 100644 tests/forth/midi.rs create mode 100644 website/.gitignore delete mode 100644 website/.nojekyll create mode 100644 website/astro.config.mjs delete mode 100644 website/index.html create mode 100644 website/package.json create mode 100644 website/pnpm-lock.yaml rename website/{ => public}/CNAME (100%) create mode 100644 website/public/CozetteVector.ttf rename website/{ => public}/cagire.png (100%) create mode 100644 website/src/pages/index.astro diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03742de..a51907d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,6 +81,12 @@ jobs: if: runner.os != 'Windows' run: cargo bundle --release --features desktop --bin cagire-desktop --target ${{ matrix.target }} + - name: Zip macOS app bundle + if: runner.os == 'macOS' + run: | + cd target/${{ matrix.target }}/release/bundle/osx + zip -r Cagire.app.zip Cagire.app + - name: Upload artifact (Unix) if: runner.os != 'Windows' uses: actions/upload-artifact@v4 @@ -107,7 +113,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{ matrix.artifact }}-desktop - path: target/${{ matrix.target }}/release/bundle/osx/Cagire.app + path: target/${{ matrix.target }}/release/bundle/osx/Cagire.app.zip - name: Upload desktop artifact (Windows exe) if: runner.os == 'Windows' @@ -139,8 +145,8 @@ jobs: base="${name%-desktop}" if ls "$dir"/*.deb 1>/dev/null 2>&1; then cp "$dir"/*.deb "release/${base}-desktop.deb" - elif [ -d "$dir/Cagire.app" ]; then - (cd "$dir" && zip -r "../../release/${base}-desktop.app.zip" Cagire.app) + elif [ -f "$dir/Cagire.app.zip" ]; then + cp "$dir/Cagire.app.zip" "release/${base}-desktop.app.zip" elif [ -f "$dir/cagire-desktop.exe" ]; then cp "$dir/cagire-desktop.exe" "release/${base}-desktop.exe" fi diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index e6b840d..5644352 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -25,13 +25,33 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + cache-dependency-path: website/pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install + working-directory: website + + - name: Build + run: pnpm build + working-directory: website + - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - path: website + path: website/dist - name: Deploy to GitHub Pages id: deployment diff --git a/Cargo.toml b/Cargo.toml index d4be589..e8ecfd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,7 @@ rustfft = "6" thread-priority = "1" ringbuf = "0.4" arc-swap = "1" +midir = "0.10" # Desktop-only dependencies (behind feature flag) egui = { version = "0.33", optional = true } diff --git a/crates/forth/src/lib.rs b/crates/forth/src/lib.rs index a024ad8..c974809 100644 --- a/crates/forth/src/lib.rs +++ b/crates/forth/src/lib.rs @@ -5,6 +5,6 @@ mod types; mod vm; mod words; -pub use types::{Dictionary, ExecutionTrace, Rng, SourceSpan, StepContext, Value, Variables}; +pub use types::{CcMemory, Dictionary, ExecutionTrace, Rng, SourceSpan, StepContext, Value, Variables}; pub use vm::Forth; pub use words::{Word, WordCompile, WORDS}; diff --git a/crates/forth/src/ops.rs b/crates/forth/src/ops.rs index f71a3f0..cacb1f1 100644 --- a/crates/forth/src/ops.rs +++ b/crates/forth/src/ops.rs @@ -86,4 +86,11 @@ pub enum Op { Generate, GeomRange, Times, + // MIDI + MidiEmit, + GetMidiCC, + MidiClock, + MidiStart, + MidiStop, + MidiContinue, } diff --git a/crates/forth/src/types.rs b/crates/forth/src/types.rs index d5bbd52..9c7e8e9 100644 --- a/crates/forth/src/types.rs +++ b/crates/forth/src/types.rs @@ -29,6 +29,7 @@ pub struct StepContext { pub speed: f64, pub fill: bool, pub nudge_secs: f64, + pub cc_memory: Option, } impl StepContext { @@ -41,6 +42,7 @@ pub type Variables = Arc>>; pub type Dictionary = Arc>>>; pub type Rng = Arc>; pub type Stack = Arc>>; +pub type CcMemory = Arc>; pub(super) type CmdSnapshot<'a> = (Option<&'a Value>, &'a [(String, Value)]); #[derive(Clone, Debug)] @@ -124,6 +126,7 @@ pub(super) struct CmdRegister { deltas: Vec, } + impl CmdRegister { pub(super) fn set_sound(&mut self, val: Value) { self.sound = Some(val); diff --git a/crates/forth/src/vm.rs b/crates/forth/src/vm.rs index 2850274..52c4164 100644 --- a/crates/forth/src/vm.rs +++ b/crates/forth/src/vm.rs @@ -790,6 +790,75 @@ impl Forth { val *= ratio; } } + + // MIDI operations + Op::MidiEmit => { + let (_, params) = cmd.snapshot().unwrap_or((None, &[])); + let get_int = |name: &str| -> Option { + params + .iter() + .rev() + .find(|(k, _)| k == name) + .and_then(|(_, v)| v.as_int().ok()) + }; + let get_float = |name: &str| -> Option { + params + .iter() + .rev() + .find(|(k, _)| k == name) + .and_then(|(_, v)| v.as_float().ok()) + }; + let chan = get_int("chan") + .map(|c| (c.clamp(1, 16) - 1) as u8) + .unwrap_or(0); + + if let (Some(cc), Some(val)) = (get_int("ccnum"), get_int("ccout")) { + let cc = cc.clamp(0, 127) as u8; + let val = val.clamp(0, 127) as u8; + outputs.push(format!("/midi/cc/{cc}/{val}/chan/{chan}")); + } else if let Some(bend) = get_float("bend") { + let bend_clamped = bend.clamp(-1.0, 1.0); + let bend_14bit = ((bend_clamped + 1.0) * 8191.5) as u16; + outputs.push(format!("/midi/bend/{bend_14bit}/chan/{chan}")); + } else if let Some(pressure) = get_int("pressure") { + let pressure = pressure.clamp(0, 127) as u8; + outputs.push(format!("/midi/pressure/{pressure}/chan/{chan}")); + } else if let Some(program) = get_int("program") { + let program = program.clamp(0, 127) as u8; + outputs.push(format!("/midi/program/{program}/chan/{chan}")); + } else { + let note = get_int("note").unwrap_or(60).clamp(0, 127) as u8; + let velocity = get_int("velocity").unwrap_or(100).clamp(0, 127) as u8; + let dur = get_float("dur").unwrap_or(1.0); + let dur_secs = dur * ctx.step_duration(); + outputs.push(format!("/midi/note/{note}/vel/{velocity}/chan/{chan}/dur/{dur_secs}")); + } + } + Op::MidiClock => { + outputs.push("/midi/clock".to_string()); + } + Op::MidiStart => { + outputs.push("/midi/start".to_string()); + } + Op::MidiStop => { + outputs.push("/midi/stop".to_string()); + } + Op::MidiContinue => { + outputs.push("/midi/continue".to_string()); + } + Op::GetMidiCC => { + let chan = stack.pop().ok_or("stack underflow")?.as_int()?; + let cc = stack.pop().ok_or("stack underflow")?.as_int()?; + let cc_clamped = (cc.clamp(0, 127)) as usize; + let chan_clamped = (chan.clamp(1, 16) - 1) as usize; + let val = ctx + .cc_memory + .as_ref() + .and_then(|mem| mem.lock().ok()) + .map(|mem| mem[chan_clamped][cc_clamped]) + .unwrap_or(0); + stack.push(Value::Int(val as i64, None)); + } } pc += 1; } diff --git a/crates/forth/src/words.rs b/crates/forth/src/words.rs index eea5e36..6e34c28 100644 --- a/crates/forth/src/words.rs +++ b/crates/forth/src/words.rs @@ -2280,6 +2280,127 @@ pub const WORDS: &[Word] = &[ compile: Simple, varargs: false, }, + // MIDI + Word { + name: "chan", + aliases: &[], + category: "MIDI", + stack: "(n --)", + desc: "Set MIDI channel 1-16", + example: "1 chan", + compile: Param, + varargs: false, + }, + Word { + name: "ccnum", + aliases: &[], + category: "MIDI", + stack: "(n --)", + desc: "Set MIDI CC number 0-127", + example: "1 ccnum", + compile: Param, + varargs: false, + }, + Word { + name: "ccout", + aliases: &[], + category: "MIDI", + stack: "(n --)", + desc: "Set MIDI CC output value 0-127", + example: "64 ccout", + compile: Param, + varargs: false, + }, + Word { + name: "bend", + aliases: &[], + category: "MIDI", + stack: "(f --)", + desc: "Set pitch bend -1.0 to 1.0 (0 = center)", + example: "0.5 bend", + compile: Param, + varargs: false, + }, + Word { + name: "pressure", + aliases: &[], + category: "MIDI", + stack: "(n --)", + desc: "Set channel pressure (aftertouch) 0-127", + example: "64 pressure", + compile: Param, + varargs: false, + }, + Word { + name: "program", + aliases: &[], + category: "MIDI", + stack: "(n --)", + desc: "Set program change number 0-127", + example: "0 program", + compile: Param, + varargs: false, + }, + Word { + name: "m.", + aliases: &[], + category: "MIDI", + stack: "(--)", + desc: "Emit MIDI message from params (note/cc/bend/pressure/program)", + example: "60 note 100 velocity 1 chan m.", + compile: Simple, + varargs: false, + }, + Word { + name: "mclock", + aliases: &[], + category: "MIDI", + stack: "(--)", + desc: "Send MIDI clock pulse (24 per quarter note)", + example: "mclock", + compile: Simple, + varargs: false, + }, + Word { + name: "mstart", + aliases: &[], + category: "MIDI", + stack: "(--)", + desc: "Send MIDI start message", + example: "mstart", + compile: Simple, + varargs: false, + }, + Word { + name: "mstop", + aliases: &[], + category: "MIDI", + stack: "(--)", + desc: "Send MIDI stop message", + example: "mstop", + compile: Simple, + varargs: false, + }, + Word { + name: "mcont", + aliases: &[], + category: "MIDI", + stack: "(--)", + desc: "Send MIDI continue message", + example: "mcont", + compile: Simple, + varargs: false, + }, + Word { + name: "ccval", + aliases: &[], + category: "MIDI", + stack: "(cc chan -- val)", + desc: "Read CC value 0-127 from MIDI input", + example: "1 1 ccval", + compile: Simple, + varargs: false, + }, ]; pub(super) fn simple_op(name: &str) -> Option { @@ -2357,6 +2478,12 @@ pub(super) fn simple_op(name: &str) -> Option { "gen" => Op::Generate, "geom.." => Op::GeomRange, "times" => Op::Times, + "m." => Op::MidiEmit, + "ccval" => Op::GetMidiCC, + "mclock" => Op::MidiClock, + "mstart" => Op::MidiStart, + "mstop" => Op::MidiStop, + "mcont" => Op::MidiContinue, _ => return None, }) } diff --git a/src/app.rs b/src/app.rs index dcc4677..1eba0f0 100644 --- a/src/app.rs +++ b/src/app.rs @@ -10,6 +10,7 @@ use crate::commands::AppCommand; use crate::engine::{ LinkState, PatternChange, PatternSnapshot, SeqCommand, SequencerSnapshot, StepSnapshot, }; +use crate::midi::MidiState; use crate::model::{self, Bank, Dictionary, Pattern, Rng, ScriptEngine, StepContext, Variables}; use crate::page::Page; use crate::services::pattern_editor; @@ -46,6 +47,7 @@ pub struct App { pub audio: AudioSettings, pub options: OptionsState, pub panel: PanelState, + pub midi: MidiState, } impl Default for App { @@ -86,6 +88,7 @@ impl App { audio: AudioSettings::default(), options: OptionsState::default(), panel: PanelState::default(), + midi: MidiState::new(), } } @@ -114,6 +117,14 @@ impl App { tempo: link.tempo(), quantum: link.quantum(), }, + midi: crate::settings::MidiSettings { + output_device: self.midi.selected_output.and_then(|idx| { + crate::midi::list_midi_outputs().get(idx).map(|d| d.name.clone()) + }), + input_device: self.midi.selected_input.and_then(|idx| { + crate::midi::list_midi_inputs().get(idx).map(|d| d.name.clone()) + }), + }, }; settings.save(); } @@ -315,6 +326,7 @@ impl App { speed, fill: false, nudge_secs: 0.0, + cc_memory: None, }; let cmds = self.script_engine.evaluate(script, &ctx)?; @@ -365,6 +377,7 @@ impl App { speed, fill: false, nudge_secs: 0.0, + cc_memory: None, }; match self.script_engine.evaluate(&script, &ctx) { @@ -442,6 +455,7 @@ impl App { speed, fill: false, nudge_secs: 0.0, + cc_memory: None, }; if let Ok(cmds) = self.script_engine.evaluate(&script, &ctx) { diff --git a/src/engine/mod.rs b/src/engine/mod.rs index 870ed5d..d2eef50 100644 --- a/src/engine/mod.rs +++ b/src/engine/mod.rs @@ -5,6 +5,6 @@ pub mod sequencer; pub use audio::{build_stream, AnalysisHandle, AudioStreamConfig, ScopeBuffer, SpectrumBuffer}; pub use link::LinkState; pub use sequencer::{ - spawn_sequencer, AudioCommand, PatternChange, PatternSnapshot, SeqCommand, SequencerConfig, - SequencerHandle, SequencerSnapshot, StepSnapshot, + spawn_sequencer, AudioCommand, MidiCommand, PatternChange, PatternSnapshot, SeqCommand, + SequencerConfig, SequencerHandle, SequencerSnapshot, StepSnapshot, }; diff --git a/src/engine/sequencer.rs b/src/engine/sequencer.rs index 35be218..e04c38f 100644 --- a/src/engine/sequencer.rs +++ b/src/engine/sequencer.rs @@ -8,7 +8,7 @@ use std::time::Duration; use thread_priority::{set_current_thread_priority, ThreadPriority}; use super::LinkState; -use crate::model::{Dictionary, ExecutionTrace, Rng, ScriptEngine, StepContext, Value, Variables}; +use crate::model::{CcMemory, Dictionary, ExecutionTrace, Rng, ScriptEngine, StepContext, Value, Variables}; use crate::model::{LaunchQuantization, SyncMode, MAX_BANKS, MAX_PATTERNS}; use crate::state::LiveKeyState; @@ -51,6 +51,13 @@ pub enum AudioCommand { ResetEngine, } +#[derive(Clone, Debug)] +pub enum MidiCommand { + NoteOn { channel: u8, note: u8, velocity: u8 }, + NoteOff { channel: u8, note: u8 }, + CC { channel: u8, cc: u8, value: u8 }, +} + pub enum SeqCommand { PatternUpdate { bank: usize, @@ -142,6 +149,7 @@ impl SequencerSnapshot { pub struct SequencerHandle { pub cmd_tx: Sender, pub audio_tx: Arc>>, + pub midi_tx: Arc>>, shared_state: Arc>, thread: JoinHandle<()>, } @@ -163,6 +171,12 @@ impl SequencerHandle { new_rx } + pub fn swap_midi_channel(&self) -> Receiver { + let (new_tx, new_rx) = bounded::(256); + self.midi_tx.store(Arc::new(new_tx)); + new_rx + } + pub fn shutdown(self) { let _ = self.cmd_tx.send(SeqCommand::Shutdown); if let Err(e) = self.thread.join() { @@ -191,6 +205,7 @@ struct AudioState { active_patterns: HashMap, pending_starts: Vec, pending_stops: Vec, + flush_midi_notes: bool, } impl AudioState { @@ -200,6 +215,7 @@ impl AudioState { active_patterns: HashMap::new(), pending_starts: Vec::new(), pending_stops: Vec::new(), + flush_midi_notes: false, } } } @@ -208,6 +224,7 @@ pub struct SequencerConfig { pub audio_sample_pos: Arc, pub sample_rate: Arc, pub lookahead_ms: Arc, + pub cc_memory: Option, } #[allow(clippy::too_many_arguments)] @@ -221,14 +238,17 @@ pub fn spawn_sequencer( live_keys: Arc, nudge_us: Arc, config: SequencerConfig, -) -> (SequencerHandle, Receiver) { +) -> (SequencerHandle, Receiver, Receiver) { let (cmd_tx, cmd_rx) = bounded::(64); let (audio_tx, audio_rx) = bounded::(256); + let (midi_tx, midi_rx) = bounded::(256); let audio_tx = Arc::new(ArcSwap::from_pointee(audio_tx)); + let midi_tx = Arc::new(ArcSwap::from_pointee(midi_tx)); let shared_state = Arc::new(ArcSwap::from_pointee(SharedSequencerState::default())); let shared_state_clone = Arc::clone(&shared_state); let audio_tx_for_thread = Arc::clone(&audio_tx); + let midi_tx_for_thread = Arc::clone(&midi_tx); let thread = thread::Builder::new() .name("sequencer".into()) @@ -236,6 +256,7 @@ pub fn spawn_sequencer( sequencer_loop( cmd_rx, audio_tx_for_thread, + midi_tx_for_thread, link, playing, variables, @@ -248,6 +269,7 @@ pub fn spawn_sequencer( config.audio_sample_pos, config.sample_rate, config.lookahead_ms, + config.cc_memory, ); }) .expect("Failed to spawn sequencer thread"); @@ -255,10 +277,11 @@ pub fn spawn_sequencer( let handle = SequencerHandle { cmd_tx, audio_tx, + midi_tx, shared_state, thread, }; - (handle, audio_rx) + (handle, audio_rx, midi_rx) } struct PatternCache { @@ -388,6 +411,7 @@ pub(crate) struct TickOutput { pub audio_commands: Vec, pub new_tempo: Option, pub shared_state: SharedSequencerState, + pub flush_midi_notes: bool, } struct StepResult { @@ -434,6 +458,12 @@ impl KeyCache { } } +#[derive(Clone, Copy)] +struct ActiveNote { + off_time_us: i64, + start_time_us: i64, +} + pub(crate) struct SequencerState { audio_state: AudioState, pattern_cache: PatternCache, @@ -446,10 +476,12 @@ pub(crate) struct SequencerState { speed_overrides: HashMap<(usize, usize), f64>, key_cache: KeyCache, buf_audio_commands: Vec, + cc_memory: Option, + active_notes: HashMap<(u8, u8), ActiveNote>, } impl SequencerState { - pub fn new(variables: Variables, dict: Dictionary, rng: Rng) -> Self { + pub fn new(variables: Variables, dict: Dictionary, rng: Rng, cc_memory: Option) -> Self { let script_engine = ScriptEngine::new(Arc::clone(&variables), dict, rng); Self { audio_state: AudioState::new(), @@ -463,6 +495,8 @@ impl SequencerState { speed_overrides: HashMap::new(), key_cache: KeyCache::new(), buf_audio_commands: Vec::new(), + cc_memory, + active_notes: HashMap::new(), } } @@ -513,6 +547,7 @@ impl SequencerState { self.audio_state.pending_stops.clear(); Arc::make_mut(&mut self.step_traces).clear(); self.runs_counter.counts.clear(); + self.audio_state.flush_midi_notes = true; } SeqCommand::Shutdown => {} } @@ -556,10 +591,12 @@ impl SequencerState { self.audio_state.prev_beat = beat; + let flush = std::mem::take(&mut self.audio_state.flush_midi_notes); TickOutput { audio_commands: std::mem::take(&mut self.buf_audio_commands), new_tempo: vars.new_tempo, shared_state: self.build_shared_state(), + flush_midi_notes: flush, } } @@ -573,10 +610,12 @@ impl SequencerState { self.audio_state.pending_starts.clear(); self.audio_state.prev_beat = -1.0; self.buf_audio_commands.clear(); + let flush = std::mem::take(&mut self.audio_state.flush_midi_notes); TickOutput { audio_commands: std::mem::take(&mut self.buf_audio_commands), new_tempo: None, shared_state: self.build_shared_state(), + flush_midi_notes: flush, } } @@ -699,6 +738,7 @@ impl SequencerState { speed: speed_mult, fill, nudge_secs, + cc_memory: self.cc_memory.clone(), }; if let Some(script) = resolved_script { let mut trace = ExecutionTrace::default(); @@ -841,6 +881,7 @@ impl SequencerState { fn sequencer_loop( cmd_rx: Receiver, audio_tx: Arc>>, + midi_tx: Arc>>, link: Arc, playing: Arc, variables: Variables, @@ -853,12 +894,13 @@ fn sequencer_loop( audio_sample_pos: Arc, sample_rate: Arc, lookahead_ms: Arc, + cc_memory: Option, ) { use std::sync::atomic::Ordering; let _ = set_current_thread_priority(ThreadPriority::Max); - let mut seq_state = SequencerState::new(variables, dict, rng); + let mut seq_state = SequencerState::new(variables, dict, rng, cc_memory); loop { let mut commands = Vec::new(); @@ -899,18 +941,66 @@ fn sequencer_loop( let output = seq_state.tick(input); for tsc in output.audio_commands { - let cmd = AudioCommand::Evaluate { - cmd: tsc.cmd, - time: tsc.time, - }; - match audio_tx.load().try_send(cmd) { - Ok(()) => {} - Err(TrySendError::Full(_) | TrySendError::Disconnected(_)) => { - seq_state.dropped_events += 1; + if let Some((midi_cmd, dur)) = parse_midi_command(&tsc.cmd) { + match midi_tx.load().try_send(midi_cmd.clone()) { + Ok(()) => { + if let (MidiCommand::NoteOn { channel, note, .. }, Some(dur_secs)) = + (&midi_cmd, dur) + { + let dur_us = (dur_secs * 1_000_000.0) as i64; + seq_state.active_notes.insert( + (*channel, *note), + ActiveNote { + off_time_us: current_time_us + dur_us, + start_time_us: current_time_us, + }, + ); + } + } + Err(TrySendError::Full(_) | TrySendError::Disconnected(_)) => { + seq_state.dropped_events += 1; + } + } + } else { + let cmd = AudioCommand::Evaluate { + cmd: tsc.cmd, + time: tsc.time, + }; + match audio_tx.load().try_send(cmd) { + Ok(()) => {} + Err(TrySendError::Full(_) | TrySendError::Disconnected(_)) => { + seq_state.dropped_events += 1; + } } } } + const MAX_NOTE_DURATION_US: i64 = 30_000_000; // 30 second safety timeout + + if output.flush_midi_notes { + for ((channel, note), _) in seq_state.active_notes.drain() { + let _ = midi_tx.load().try_send(MidiCommand::NoteOff { channel, note }); + } + // Send MIDI panic (CC 123 = All Notes Off) on all 16 channels + for chan in 0..16u8 { + let _ = midi_tx + .load() + .try_send(MidiCommand::CC { channel: chan, cc: 123, value: 0 }); + } + } else { + seq_state.active_notes.retain(|&(channel, note), active| { + let should_release = current_time_us >= active.off_time_us; + let timed_out = (current_time_us - active.start_time_us) > MAX_NOTE_DURATION_US; + + if should_release || timed_out { + let _ = midi_tx.load().try_send(MidiCommand::NoteOff { channel, note }); + false + } else { + true + } + }); + } + if let Some(t) = output.new_tempo { link.set_tempo(t); } @@ -921,6 +1011,48 @@ fn sequencer_loop( } } +fn parse_midi_command(cmd: &str) -> Option<(MidiCommand, Option)> { + if !cmd.starts_with("/midi/") { + return None; + } + let parts: Vec<&str> = cmd.split('/').filter(|s| !s.is_empty()).collect(); + if parts.len() < 2 { + return None; + } + match parts[1] { + "note" => { + // /midi/note//vel//chan//dur/ + let note: u8 = parts.get(2)?.parse().ok()?; + let vel: u8 = parts.get(4)?.parse().ok()?; + let chan: u8 = parts.get(6)?.parse().ok()?; + let dur: Option = parts.get(8).and_then(|s| s.parse().ok()); + Some(( + MidiCommand::NoteOn { + channel: chan, + note, + velocity: vel, + }, + dur, + )) + } + "cc" => { + // /midi/cc///chan/ + let cc: u8 = parts.get(2)?.parse().ok()?; + let val: u8 = parts.get(3)?.parse().ok()?; + let chan: u8 = parts.get(5)?.parse().ok()?; + Some(( + MidiCommand::CC { + channel: chan, + cc, + value: val, + }, + None, + )) + } + _ => None, + } +} + #[cfg(test)] mod tests { use super::*; @@ -932,7 +1064,7 @@ mod tests { let rng: Rng = Arc::new(Mutex::new( ::seed_from_u64(0), )); - SequencerState::new(variables, dict, rng) + SequencerState::new(variables, dict, rng, None) } fn simple_pattern(length: usize) -> PatternSnapshot { diff --git a/src/input.rs b/src/input.rs index ffaff4f..e4f1fe1 100644 --- a/src/input.rs +++ b/src/input.rs @@ -1270,6 +1270,40 @@ fn handle_options_page(ctx: &mut InputContext, key: KeyEvent) -> InputResult { let delta = if key.code == KeyCode::Left { -1.0 } else { 1.0 }; ctx.link.set_quantum(ctx.link.quantum() + delta); } + OptionsFocus::MidiOutput => { + let devices = crate::midi::list_midi_outputs(); + if !devices.is_empty() { + let current = ctx.app.midi.selected_output.unwrap_or(0); + let new_idx = if key.code == KeyCode::Left { + if current == 0 { devices.len() - 1 } else { current - 1 } + } else { + (current + 1) % devices.len() + }; + if ctx.app.midi.connect_output(new_idx).is_ok() { + ctx.dispatch(AppCommand::SetStatus(format!( + "MIDI output: {}", + devices[new_idx].name + ))); + } + } + } + OptionsFocus::MidiInput => { + let devices = crate::midi::list_midi_inputs(); + if !devices.is_empty() { + let current = ctx.app.midi.selected_input.unwrap_or(0); + let new_idx = if key.code == KeyCode::Left { + if current == 0 { devices.len() - 1 } else { current - 1 } + } else { + (current + 1) % devices.len() + }; + if ctx.app.midi.connect_input(new_idx).is_ok() { + ctx.dispatch(AppCommand::SetStatus(format!( + "MIDI input: {}", + devices[new_idx].name + ))); + } + } + } } ctx.app.save_settings(ctx.link); } diff --git a/src/lib.rs b/src/lib.rs index fe1f4b3..e921b28 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,6 +4,7 @@ pub mod app; pub mod commands; pub mod engine; pub mod input; +pub mod midi; pub mod model; pub mod page; pub mod services; diff --git a/src/main.rs b/src/main.rs index c68e232..92ed83b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ mod app; mod commands; mod engine; mod input; +mod midi; mod model; mod page; mod services; @@ -101,6 +102,20 @@ fn main() -> io::Result<()> { app.ui.color_scheme = settings.display.color_scheme; theme::set(settings.display.color_scheme.to_theme()); + // Load MIDI settings + if let Some(output_name) = &settings.midi.output_device { + let outputs = midi::list_midi_outputs(); + if let Some(idx) = outputs.iter().position(|d| &d.name == output_name) { + let _ = app.midi.connect_output(idx); + } + } + if let Some(input_name) = &settings.midi.input_device { + let inputs = midi::list_midi_inputs(); + if let Some(idx) = inputs.iter().position(|d| &d.name == input_name) { + let _ = app.midi.connect_input(idx); + } + } + let metrics = Arc::new(EngineMetrics::default()); let scope_buffer = Arc::new(ScopeBuffer::new()); let spectrum_buffer = Arc::new(SpectrumBuffer::new()); @@ -120,9 +135,10 @@ fn main() -> io::Result<()> { audio_sample_pos: Arc::clone(&audio_sample_pos), sample_rate: Arc::clone(&sample_rate_shared), lookahead_ms: Arc::clone(&lookahead_ms), + cc_memory: Some(Arc::clone(&app.midi.cc_memory)), }; - let (sequencer, initial_audio_rx) = spawn_sequencer( + let (sequencer, initial_audio_rx, mut midi_rx) = spawn_sequencer( Arc::clone(&link), Arc::clone(&playing), Arc::clone(&app.variables), @@ -177,6 +193,7 @@ fn main() -> io::Result<()> { _analysis_handle = None; let new_audio_rx = sequencer.swap_audio_channel(); + midi_rx = sequencer.swap_midi_channel(); let new_config = AudioStreamConfig { output_device: app.audio.config.output_device.clone(), @@ -220,6 +237,21 @@ fn main() -> io::Result<()> { app.playback.playing = playing.load(Ordering::Relaxed); + // Process pending MIDI commands + while let Ok(midi_cmd) = midi_rx.try_recv() { + match midi_cmd { + engine::MidiCommand::NoteOn { channel, note, velocity } => { + app.midi.send_note_on(channel, note, velocity); + } + engine::MidiCommand::NoteOff { channel, note } => { + app.midi.send_note_off(channel, note); + } + engine::MidiCommand::CC { channel, cc, value } => { + app.midi.send_cc(channel, cc, value); + } + } + } + { app.metrics.active_voices = metrics.active_voices.load(Ordering::Relaxed) as usize; app.metrics.peak_voices = app.metrics.peak_voices.max(app.metrics.active_voices); diff --git a/src/midi.rs b/src/midi.rs new file mode 100644 index 0000000..f6a5782 --- /dev/null +++ b/src/midi.rs @@ -0,0 +1,176 @@ +use midir::{MidiInput, MidiOutput}; +use std::sync::{Arc, Mutex}; + +#[derive(Clone, Debug)] +pub struct MidiDeviceInfo { + pub name: String, + pub port_index: usize, +} + +pub fn list_midi_outputs() -> Vec { + let Ok(midi_out) = MidiOutput::new("cagire-probe") else { + return Vec::new(); + }; + midi_out + .ports() + .iter() + .enumerate() + .filter_map(|(idx, port)| { + midi_out.port_name(port).ok().map(|name| MidiDeviceInfo { + name, + port_index: idx, + }) + }) + .collect() +} + +pub fn list_midi_inputs() -> Vec { + let Ok(midi_in) = MidiInput::new("cagire-probe") else { + return Vec::new(); + }; + midi_in + .ports() + .iter() + .enumerate() + .filter_map(|(idx, port)| { + midi_in.port_name(port).ok().map(|name| MidiDeviceInfo { + name, + port_index: idx, + }) + }) + .collect() +} + +pub type CcMemory = Arc>; + +pub struct MidiState { + output_conn: Option, + input_conn: Option>, + pub selected_output: Option, + pub selected_input: Option, + pub cc_memory: CcMemory, +} + +impl Default for MidiState { + fn default() -> Self { + Self::new() + } +} + +impl MidiState { + pub fn new() -> Self { + Self { + output_conn: None, + input_conn: None, + selected_output: None, + selected_input: None, + cc_memory: Arc::new(Mutex::new([[0u8; 128]; 16])), + } + } + + pub fn connect_output(&mut self, index: usize) -> Result<(), String> { + let midi_out = MidiOutput::new("cagire-out").map_err(|e| e.to_string())?; + let ports = midi_out.ports(); + let port = ports.get(index).ok_or("MIDI output port not found")?; + let conn = midi_out + .connect(port, "cagire-midi-out") + .map_err(|e| e.to_string())?; + self.output_conn = Some(conn); + self.selected_output = Some(index); + Ok(()) + } + + pub fn disconnect_output(&mut self) { + if let Some(conn) = self.output_conn.take() { + conn.close(); + } + self.selected_output = None; + } + + pub fn connect_input(&mut self, index: usize) -> Result<(), String> { + let midi_in = MidiInput::new("cagire-in").map_err(|e| e.to_string())?; + let ports = midi_in.ports(); + let port = ports.get(index).ok_or("MIDI input port not found")?; + + let cc_mem = Arc::clone(&self.cc_memory); + let conn = midi_in + .connect( + port, + "cagire-midi-in", + move |_timestamp, message, cc_mem| { + if message.len() >= 3 { + let status = message[0]; + let data1 = message[1] as usize; + let data2 = message[2]; + // CC message: 0xBn where n is channel 0-15 + if (status & 0xF0) == 0xB0 && data1 < 128 { + let channel = (status & 0x0F) as usize; + if let Ok(mut mem) = cc_mem.lock() { + mem[channel][data1] = data2; + } + } + } + }, + cc_mem, + ) + .map_err(|e| e.to_string())?; + + self.input_conn = Some(conn); + self.selected_input = Some(index); + Ok(()) + } + + pub fn disconnect_input(&mut self) { + if let Some(conn) = self.input_conn.take() { + conn.close(); + } + self.selected_input = None; + } + + pub fn send_note_on(&mut self, channel: u8, note: u8, velocity: u8) { + if let Some(conn) = &mut self.output_conn { + let status = 0x90 | (channel & 0x0F); + let _ = conn.send(&[status, note & 0x7F, velocity & 0x7F]); + } + } + + pub fn send_note_off(&mut self, channel: u8, note: u8) { + if let Some(conn) = &mut self.output_conn { + let status = 0x80 | (channel & 0x0F); + let _ = conn.send(&[status, note & 0x7F, 0]); + } + } + + pub fn send_cc(&mut self, channel: u8, cc: u8, value: u8) { + if let Some(conn) = &mut self.output_conn { + let status = 0xB0 | (channel & 0x0F); + let _ = conn.send(&[status, cc & 0x7F, value & 0x7F]); + } + } + + pub fn send_all_notes_off(&mut self) { + if let Some(conn) = &mut self.output_conn { + for channel in 0..16u8 { + let status = 0xB0 | channel; + let _ = conn.send(&[status, 123, 0]); // CC 123 = All Notes Off + } + } + } + + pub fn get_cc(&self, channel: u8, cc: u8) -> u8 { + let channel = (channel as usize).min(15); + let cc = (cc as usize).min(127); + self.cc_memory + .lock() + .map(|mem| mem[channel][cc]) + .unwrap_or(0) + } + + pub fn is_output_connected(&self) -> bool { + self.output_conn.is_some() + } + + pub fn is_input_connected(&self) -> bool { + self.input_conn.is_some() + } +} diff --git a/src/model/mod.rs b/src/model/mod.rs index bd68f45..00e4c9c 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -5,4 +5,4 @@ pub use cagire_project::{ load, save, Bank, LaunchQuantization, Pattern, PatternSpeed, Project, SyncMode, MAX_BANKS, MAX_PATTERNS, }; -pub use script::{Dictionary, ExecutionTrace, Rng, ScriptEngine, SourceSpan, StepContext, Value, Variables}; +pub use script::{CcMemory, Dictionary, ExecutionTrace, Rng, ScriptEngine, SourceSpan, StepContext, Value, Variables}; diff --git a/src/model/script.rs b/src/model/script.rs index 5ba1f38..22aefde 100644 --- a/src/model/script.rs +++ b/src/model/script.rs @@ -1,6 +1,6 @@ use cagire_forth::Forth; -pub use cagire_forth::{Dictionary, ExecutionTrace, Rng, SourceSpan, StepContext, Value, Variables}; +pub use cagire_forth::{CcMemory, Dictionary, ExecutionTrace, Rng, SourceSpan, StepContext, Value, Variables}; pub struct ScriptEngine { forth: Forth, diff --git a/src/settings.rs b/src/settings.rs index f8daa38..4e4acbd 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -4,11 +4,19 @@ use crate::state::ColorScheme; const APP_NAME: &str = "cagire"; +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct MidiSettings { + pub output_device: Option, + pub input_device: Option, +} + #[derive(Debug, Default, Serialize, Deserialize)] pub struct Settings { pub audio: AudioSettings, pub display: DisplaySettings, pub link: LinkSettings, + #[serde(default)] + pub midi: MidiSettings, } #[derive(Debug, Serialize, Deserialize)] diff --git a/src/state/options.rs b/src/state/options.rs index 06da768..886f24e 100644 --- a/src/state/options.rs +++ b/src/state/options.rs @@ -11,6 +11,8 @@ pub enum OptionsFocus { LinkEnabled, StartStopSync, Quantum, + MidiOutput, + MidiInput, } #[derive(Default)] @@ -30,13 +32,15 @@ impl OptionsState { OptionsFocus::FlashBrightness => OptionsFocus::LinkEnabled, OptionsFocus::LinkEnabled => OptionsFocus::StartStopSync, OptionsFocus::StartStopSync => OptionsFocus::Quantum, - OptionsFocus::Quantum => OptionsFocus::ColorScheme, + OptionsFocus::Quantum => OptionsFocus::MidiOutput, + OptionsFocus::MidiOutput => OptionsFocus::MidiInput, + OptionsFocus::MidiInput => OptionsFocus::ColorScheme, }; } pub fn prev_focus(&mut self) { self.focus = match self.focus { - OptionsFocus::ColorScheme => OptionsFocus::Quantum, + OptionsFocus::ColorScheme => OptionsFocus::MidiInput, OptionsFocus::RefreshRate => OptionsFocus::ColorScheme, OptionsFocus::RuntimeHighlight => OptionsFocus::RefreshRate, OptionsFocus::ShowScope => OptionsFocus::RuntimeHighlight, @@ -46,6 +50,8 @@ impl OptionsState { OptionsFocus::LinkEnabled => OptionsFocus::FlashBrightness, OptionsFocus::StartStopSync => OptionsFocus::LinkEnabled, OptionsFocus::Quantum => OptionsFocus::StartStopSync, + OptionsFocus::MidiOutput => OptionsFocus::Quantum, + OptionsFocus::MidiInput => OptionsFocus::MidiOutput, }; } } diff --git a/src/views/options_view.rs b/src/views/options_view.rs index b7dfdf7..1703194 100644 --- a/src/views/options_view.rs +++ b/src/views/options_view.rs @@ -6,6 +6,7 @@ use ratatui::Frame; use crate::app::App; use crate::engine::LinkState; +use crate::midi; use crate::state::OptionsFocus; use crate::theme; @@ -73,6 +74,32 @@ pub fn render(frame: &mut Frame, app: &App, link: &LinkState, area: Rect) { let tempo_style = Style::new().fg(theme.values.tempo).add_modifier(Modifier::BOLD); let value_style = Style::new().fg(theme.values.value); + // MIDI device lists + let midi_outputs = midi::list_midi_outputs(); + let midi_inputs = midi::list_midi_inputs(); + + let midi_out_display = if let Some(idx) = app.midi.selected_output { + midi_outputs + .get(idx) + .map(|d| d.name.as_str()) + .unwrap_or("(disconnected)") + } else if midi_outputs.is_empty() { + "(none found)" + } else { + "(not connected)" + }; + + let midi_in_display = if let Some(idx) = app.midi.selected_input { + midi_inputs + .get(idx) + .map(|d| d.name.as_str()) + .unwrap_or("(disconnected)") + } else if midi_inputs.is_empty() { + "(none found)" + } else { + "(not connected)" + }; + // Build flat list of all lines let lines: Vec = vec![ // DISPLAY section (lines 0-8) @@ -143,12 +170,19 @@ pub fn render(frame: &mut Frame, app: &App, link: &LinkState, area: Rect) { render_option_line("Quantum", &quantum_str, focus == OptionsFocus::Quantum, &theme), // Blank line (line 16) Line::from(""), - // SESSION section (lines 17-22) + // SESSION section (lines 17-20) render_section_header("SESSION", &theme), render_divider(content_width, &theme), render_readonly_line("Tempo", &tempo_str, tempo_style, &theme), render_readonly_line("Beat", &beat_str, value_style, &theme), render_readonly_line("Phase", &phase_str, value_style, &theme), + // Blank line (line 22) + Line::from(""), + // MIDI section (lines 23-26) + render_section_header("MIDI", &theme), + render_divider(content_width, &theme), + render_option_line("Output", midi_out_display, focus == OptionsFocus::MidiOutput, &theme), + render_option_line("Input", midi_in_display, focus == OptionsFocus::MidiInput, &theme), ]; let total_lines = lines.len(); @@ -166,6 +200,8 @@ pub fn render(frame: &mut Frame, app: &App, link: &LinkState, area: Rect) { OptionsFocus::LinkEnabled => 12, OptionsFocus::StartStopSync => 13, OptionsFocus::Quantum => 14, + OptionsFocus::MidiOutput => 25, + OptionsFocus::MidiInput => 26, }; // Calculate scroll offset to keep focused line visible (centered when possible) diff --git a/src/views/render.rs b/src/views/render.rs index 414c2da..689d1ad 100644 --- a/src/views/render.rs +++ b/src/views/render.rs @@ -70,6 +70,7 @@ fn compute_stack_display(lines: &[String], editor: &cagire_ratatui::Editor, cach speed: 1.0, fill: false, nudge_secs: 0.0, + cc_memory: None, }; match forth.evaluate(&script, &ctx) { diff --git a/tests/forth.rs b/tests/forth.rs index 91c9ccb..f5a20d8 100644 --- a/tests/forth.rs +++ b/tests/forth.rs @@ -51,3 +51,6 @@ mod ramps; #[path = "forth/generator.rs"] mod generator; + +#[path = "forth/midi.rs"] +mod midi; diff --git a/tests/forth/harness.rs b/tests/forth/harness.rs index 6a209de..f50d88b 100644 --- a/tests/forth/harness.rs +++ b/tests/forth/harness.rs @@ -18,6 +18,7 @@ pub fn default_ctx() -> StepContext { speed: 1.0, fill: false, nudge_secs: 0.0, + cc_memory: None, } } diff --git a/tests/forth/midi.rs b/tests/forth/midi.rs new file mode 100644 index 0000000..a7ddace --- /dev/null +++ b/tests/forth/midi.rs @@ -0,0 +1,284 @@ +use crate::harness::{default_ctx, expect_outputs, forth}; +use cagire::forth::{CcMemory, StepContext}; +use std::sync::{Arc, Mutex}; + +#[test] +fn test_midi_channel_set() { + let outputs = expect_outputs("60 note 100 velocity 3 chan m.", 1); + assert!(outputs[0].starts_with("/midi/note/60/vel/100/chan/2/dur/")); +} + +#[test] +fn test_midi_note_default_channel() { + let outputs = expect_outputs("72 note 80 velocity m.", 1); + assert!(outputs[0].starts_with("/midi/note/72/vel/80/chan/0/dur/")); +} + +#[test] +fn test_midi_cc() { + let outputs = expect_outputs("64 ccnum 127 ccout m.", 1); + assert!(outputs[0].contains("/midi/cc/64/127/chan/0")); +} + +#[test] +fn test_midi_cc_with_channel() { + let outputs = expect_outputs("5 chan 1 ccnum 64 ccout m.", 1); + assert!(outputs[0].contains("/midi/cc/1/64/chan/4")); +} + +#[test] +fn test_ccval_returns_zero_without_cc_memory() { + let f = forth(); + let ctx = default_ctx(); + let outputs = f.evaluate("1 1 ccval", &ctx).unwrap(); + assert!(outputs.is_empty()); + let stack = f.stack(); + assert_eq!(stack.len(), 1); + match &stack[0] { + cagire::forth::Value::Int(v, _) => assert_eq!(*v, 0), + _ => panic!("expected Int"), + } +} + +#[test] +fn test_ccval_reads_from_cc_memory() { + let cc_memory: CcMemory = Arc::new(Mutex::new([[0u8; 128]; 16])); + { + let mut mem = cc_memory.lock().unwrap(); + mem[0][1] = 64; // channel 1 (0-indexed), CC 1, value 64 + mem[5][74] = 127; // channel 6 (0-indexed), CC 74, value 127 + } + + let f = forth(); + let ctx = StepContext { + cc_memory: Some(Arc::clone(&cc_memory)), + ..default_ctx() + }; + + // Test CC 1 on channel 1 (user provides 1, internally 0) + f.evaluate("1 1 ccval", &ctx).unwrap(); + let stack = f.stack(); + assert_eq!(stack.len(), 1); + match &stack[0] { + cagire::forth::Value::Int(v, _) => assert_eq!(*v, 64), + _ => panic!("expected Int"), + } + f.clear_stack(); + + // Test CC 74 on channel 6 (user provides 6, internally 5) + f.evaluate("74 6 ccval", &ctx).unwrap(); + let stack = f.stack(); + assert_eq!(stack.len(), 1); + match &stack[0] { + cagire::forth::Value::Int(v, _) => assert_eq!(*v, 127), + _ => panic!("expected Int"), + } +} + +#[test] +fn test_midi_channel_clamping() { + // Channel should be clamped 1-16, then converted to 0-15 internally + let outputs = expect_outputs("60 note 100 velocity 0 chan m.", 1); + assert!(outputs[0].contains("/chan/0")); // 0 clamped to 1, then -1 = 0 + + let outputs = expect_outputs("60 note 100 velocity 17 chan m.", 1); + assert!(outputs[0].contains("/chan/15")); // 17 clamped to 16, then -1 = 15 +} + +#[test] +fn test_midi_note_clamping() { + let outputs = expect_outputs("-1 note 100 velocity m.", 1); + assert!(outputs[0].contains("/note/0")); + + let outputs = expect_outputs("200 note 100 velocity m.", 1); + assert!(outputs[0].contains("/note/127")); +} + +#[test] +fn test_midi_velocity_clamping() { + let outputs = expect_outputs("60 note -10 velocity m.", 1); + assert!(outputs[0].contains("/vel/0")); + + let outputs = expect_outputs("60 note 200 velocity m.", 1); + assert!(outputs[0].contains("/vel/127")); +} + +#[test] +fn test_midi_defaults() { + // With only note specified, velocity defaults to 100 and channel to 0 + let outputs = expect_outputs("60 note m.", 1); + assert!(outputs[0].starts_with("/midi/note/60/vel/100/chan/0/dur/")); +} + +#[test] +fn test_midi_full_defaults() { + // With nothing specified, defaults to note=60, velocity=100, channel=0 + let outputs = expect_outputs("m.", 1); + assert!(outputs[0].starts_with("/midi/note/60/vel/100/chan/0/dur/")); +} + +// Pitch bend tests +#[test] +fn test_midi_bend_center() { + let outputs = expect_outputs("0.0 bend m.", 1); + // 0.0 -> 8192 (center) + assert!(outputs[0].contains("/midi/bend/8191/chan/0") || outputs[0].contains("/midi/bend/8192/chan/0")); +} + +#[test] +fn test_midi_bend_max() { + let outputs = expect_outputs("1.0 bend m.", 1); + // 1.0 -> 16383 (max) + assert!(outputs[0].contains("/midi/bend/16383/chan/0")); +} + +#[test] +fn test_midi_bend_min() { + let outputs = expect_outputs("-1.0 bend m.", 1); + // -1.0 -> 0 (min) + assert!(outputs[0].contains("/midi/bend/0/chan/0")); +} + +#[test] +fn test_midi_bend_with_channel() { + let outputs = expect_outputs("0.5 bend 3 chan m.", 1); + assert!(outputs[0].contains("/chan/2")); // channel 3 -> 2 (0-indexed) + assert!(outputs[0].contains("/midi/bend/")); +} + +#[test] +fn test_midi_bend_clamping() { + let outputs = expect_outputs("2.0 bend m.", 1); + // 2.0 clamped to 1.0 -> 16383 + assert!(outputs[0].contains("/midi/bend/16383/chan/0")); + + let outputs = expect_outputs("-5.0 bend m.", 1); + // -5.0 clamped to -1.0 -> 0 + assert!(outputs[0].contains("/midi/bend/0/chan/0")); +} + +// Channel pressure (aftertouch) tests +#[test] +fn test_midi_pressure() { + let outputs = expect_outputs("64 pressure m.", 1); + assert!(outputs[0].contains("/midi/pressure/64/chan/0")); +} + +#[test] +fn test_midi_pressure_with_channel() { + let outputs = expect_outputs("100 pressure 5 chan m.", 1); + assert!(outputs[0].contains("/midi/pressure/100/chan/4")); +} + +#[test] +fn test_midi_pressure_clamping() { + let outputs = expect_outputs("-10 pressure m.", 1); + assert!(outputs[0].contains("/midi/pressure/0/chan/0")); + + let outputs = expect_outputs("200 pressure m.", 1); + assert!(outputs[0].contains("/midi/pressure/127/chan/0")); +} + +// Program change tests +#[test] +fn test_midi_program() { + let outputs = expect_outputs("0 program m.", 1); + assert!(outputs[0].contains("/midi/program/0/chan/0")); +} + +#[test] +fn test_midi_program_with_channel() { + let outputs = expect_outputs("42 program 10 chan m.", 1); + assert!(outputs[0].contains("/midi/program/42/chan/9")); +} + +#[test] +fn test_midi_program_clamping() { + let outputs = expect_outputs("-1 program m.", 1); + assert!(outputs[0].contains("/midi/program/0/chan/0")); + + let outputs = expect_outputs("200 program m.", 1); + assert!(outputs[0].contains("/midi/program/127/chan/0")); +} + +// MIDI real-time messages +#[test] +fn test_midi_clock() { + let outputs = expect_outputs("mclock", 1); + assert_eq!(outputs[0], "/midi/clock"); +} + +#[test] +fn test_midi_start() { + let outputs = expect_outputs("mstart", 1); + assert_eq!(outputs[0], "/midi/start"); +} + +#[test] +fn test_midi_stop() { + let outputs = expect_outputs("mstop", 1); + assert_eq!(outputs[0], "/midi/stop"); +} + +#[test] +fn test_midi_continue() { + let outputs = expect_outputs("mcont", 1); + assert_eq!(outputs[0], "/midi/continue"); +} + +// Test message type priority (first matching type wins) +#[test] +fn test_midi_message_priority_cc_over_note() { + // CC params take priority over note + let outputs = expect_outputs("60 note 1 ccnum 64 ccout m.", 1); + assert!(outputs[0].contains("/midi/cc/1/64")); +} + +#[test] +fn test_midi_message_priority_bend_over_note() { + // bend takes priority over note (but not over CC) + let outputs = expect_outputs("60 note 0.5 bend m.", 1); + assert!(outputs[0].contains("/midi/bend/")); +} + +// MIDI note duration tests +#[test] +fn test_midi_note_default_duration() { + // Default dur=1.0, with tempo=120 and speed=1.0, step_duration = 60/120/4/1 = 0.125 + let outputs = expect_outputs("60 note m.", 1); + assert!(outputs[0].contains("/dur/0.125")); +} + +#[test] +fn test_midi_note_explicit_duration() { + // dur=0.5 means half step duration = 0.0625 seconds + let outputs = expect_outputs("60 note 0.5 dur m.", 1); + assert!(outputs[0].contains("/dur/0.0625")); +} + +#[test] +fn test_midi_note_long_duration() { + // dur=2.0 means two step durations = 0.25 seconds + let outputs = expect_outputs("60 note 2 dur m.", 1); + assert!(outputs[0].contains("/dur/0.25")); +} + +#[test] +fn test_midi_note_duration_with_tempo() { + use crate::harness::{ctx_with, forth}; + let f = forth(); + // At tempo=60, step_duration = 60/60/4/1 = 0.25 seconds + let ctx = ctx_with(|c| c.tempo = 60.0); + let outputs = f.evaluate("60 note m.", &ctx).unwrap(); + assert!(outputs[0].contains("/dur/0.25")); +} + +#[test] +fn test_midi_note_duration_with_speed() { + use crate::harness::{ctx_with, forth}; + let f = forth(); + // At tempo=120 speed=2, step_duration = 60/120/4/2 = 0.0625 seconds + let ctx = ctx_with(|c| c.speed = 2.0); + let outputs = f.evaluate("60 note m.", &ctx).unwrap(); + assert!(outputs[0].contains("/dur/0.0625")); +} diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 0000000..ddce69b --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ +.astro/ diff --git a/website/.nojekyll b/website/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/website/astro.config.mjs b/website/astro.config.mjs new file mode 100644 index 0000000..f1f0c30 --- /dev/null +++ b/website/astro.config.mjs @@ -0,0 +1,5 @@ +import { defineConfig } from "astro/config"; + +export default defineConfig({ + output: "static", +}); diff --git a/website/index.html b/website/index.html deleted file mode 100644 index 45330a8..0000000 --- a/website/index.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - Cagire - - - -
-
-
-  ██████╗ █████╗  ██████╗ ██╗██████╗ ███████╗
- ██╔════╝██╔══██╗██╔════╝ ██║██╔══██╗██╔════╝
- ██║     ███████║██║  ███╗██║██████╔╝█████╗
- ██║     ██╔══██║██║   ██║██║██╔══██╗██╔══╝
- ╚██████╗██║  ██║╚██████╔╝██║██║  ██║███████╗
-  ╚═════╝╚═╝  ╚═╝ ╚═════╝ ╚═╝╚═╝  ╚═╝╚══════╝
-
- -
- -
- Cagire screenshot -

Cagire is a terminal-based step sequencer for live coding music. Each step in a pattern contains a Forth script that produces sound and creates events. Synchronize with other musicians using Ableton Link. Cagire uses its own audio engine for audio synthesis and sampling!

-
- -
-

Releases

- -

CLI binaries also available on GitHub Releases.

-
- -
-

Credits

-

Cagire is built by BuboBubo (Raphael Maurice Forment).

-

Doux (audio engine) is a Rust port of Dough, originally written in C by Felix Roos.

-

mi-plaits-dsp-rs by Oliver Rockstedt, based on Mutable Instruments Plaits by Emilie Gillet.

-
- -
-

Support

-

Report issues and contribute on GitHub.

-

Support the project on Ko-fi.

-
- -
- - diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..9eb4844 --- /dev/null +++ b/website/package.json @@ -0,0 +1,12 @@ +{ + "name": "cagire-website", + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "astro": "^5.2.5" + } +} diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml new file mode 100644 index 0000000..60a3adf --- /dev/null +++ b/website/pnpm-lock.yaml @@ -0,0 +1,3142 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + astro: + specifier: ^5.2.5 + version: 5.17.1(rollup@4.57.1)(typescript@5.9.3) + +packages: + + '@astrojs/compiler@2.13.0': + resolution: {integrity: sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==} + + '@astrojs/internal-helpers@0.7.5': + resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} + + '@astrojs/markdown-remark@6.3.10': + resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==} + + '@astrojs/prism@3.3.0': + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/telemetry@3.3.0': + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@capsizecss/unpack@4.0.0': + resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} + engines: {node: '>=18'} + + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@img/colour@1.0.0': + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} + cpu: [x64] + os: [win32] + + '@shikijs/core@3.22.0': + resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==} + + '@shikijs/engine-javascript@3.22.0': + resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==} + + '@shikijs/engine-oniguruma@3.22.0': + resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==} + + '@shikijs/langs@3.22.0': + resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==} + + '@shikijs/themes@3.22.0': + resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==} + + '@shikijs/types@3.22.0': + resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + + astro@5.17.1: + resolution: {integrity: sha512-oD3tlxTaVWGq/Wfbqk6gxzVRz98xa/rYlpe+gU2jXJMSD01k6sEDL01ZlT8mVSYB/rMgnvIOfiQQ3BbLdN237A==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.6.2: + resolution: {integrity: sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diff@8.0.3: + resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} + engines: {node: '>=0.3.1'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + + fontace@0.4.0: + resolution: {integrity: sha512-moThBCItUe2bjZip5PF/iZClpKHGLwMvR79Kp8XpGRBrvoRSnySN4VcILdv3/MJzbhvUA5WeiUXF5o538m5fvg==} + + fontkitten@1.0.2: + resolution: {integrity: sha512-piJxbLnkD9Xcyi7dWJRnqszEURixe7CrF/efBfbffe2DPyabmuIuqraruY8cXTs19QoM8VJzx47BDRVNXETM7Q==} + engines: {node: '>=20'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + h3@1.15.5: + resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@11.2.5: + resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} + engines: {node: 20 || >=22} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + magicast@0.5.1: + resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + + oniguruma-to-es@4.3.4: + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} + engines: {node: '>=18'} + + p-queue@8.1.1: + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} + engines: {node: '>=18'} + + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} + + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + piccolore@0.1.3: + resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sax@1.4.4: + resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} + engines: {node: '>=11.0.0'} + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shiki@3.22.0: + resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + smol-toml@1.6.0: + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} + engines: {node: '>= 18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + svgo@4.0.0: + resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} + engines: {node: '>=16'} + hasBin: true + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unifont@0.7.3: + resolution: {integrity: sha512-b0GtQzKCyuSHGsfj5vyN8st7muZ6VCI4XD4vFlr7Uy1rlWVYxC3npnfk8MyreHxJYrz1ooLDqDzFe9XqQTlAhA==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + unstorage@1.17.4: + resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6 || ^7 || ^8 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1 || ^2 || ^3 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@6.4.1: + resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} + + yocto-spinner@0.2.3: + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + + zod-to-json-schema@3.25.1: + resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} + peerDependencies: + zod: ^3.25 || ^4 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@astrojs/compiler@2.13.0': {} + + '@astrojs/internal-helpers@0.7.5': {} + + '@astrojs/markdown-remark@6.3.10': + dependencies: + '@astrojs/internal-helpers': 0.7.5 + '@astrojs/prism': 3.3.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.2.0 + js-yaml: 4.1.1 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-smartypants: 3.0.2 + shiki: 3.22.0 + smol-toml: 1.6.0 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.1.0 + unist-util-visit-parents: 6.0.2 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@3.3.0': + dependencies: + prismjs: 1.30.0 + + '@astrojs/telemetry@3.3.0': + dependencies: + ci-info: 4.4.0 + debug: 4.4.3 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@capsizecss/unpack@4.0.0': + dependencies: + fontkitten: 1.0.2 + + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@img/colour@1.0.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.4 + optional: true + + '@img/sharp-darwin-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.2.4': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.2.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + optional: true + + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 + optional: true + + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 + optional: true + + '@img/sharp-linux-ppc64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.4 + optional: true + + '@img/sharp-linux-riscv64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.2.4 + optional: true + + '@img/sharp-linux-s390x@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.4 + optional: true + + '@img/sharp-linux-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + optional: true + + '@img/sharp-wasm32@0.34.5': + dependencies: + '@emnapi/runtime': 1.8.1 + optional: true + + '@img/sharp-win32-arm64@0.34.5': + optional: true + + '@img/sharp-win32-ia32@0.34.5': + optional: true + + '@img/sharp-win32-x64@0.34.5': + optional: true + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@oslojs/encoding@1.1.0': {} + + '@rollup/pluginutils@5.3.0(rollup@4.57.1)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.57.1 + + '@rollup/rollup-android-arm-eabi@4.57.1': + optional: true + + '@rollup/rollup-android-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-x64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.57.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.57.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.57.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.57.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.57.1': + optional: true + + '@shikijs/core@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.4 + + '@shikijs/engine-oniguruma@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + + '@shikijs/themes@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + + '@shikijs/types@3.22.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree@1.0.8': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@2.1.0': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/unist@3.0.3': {} + + '@ungap/structured-clone@1.3.0': {} + + acorn@8.15.0: {} + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-iterate@2.0.1: {} + + astro@5.17.1(rollup@4.57.1)(typescript@5.9.3): + dependencies: + '@astrojs/compiler': 2.13.0 + '@astrojs/internal-helpers': 0.7.5 + '@astrojs/markdown-remark': 6.3.10 + '@astrojs/telemetry': 3.3.0 + '@capsizecss/unpack': 4.0.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.4.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 1.1.1 + cssesc: 3.0.0 + debug: 4.4.3 + deterministic-object-hash: 2.0.2 + devalue: 5.6.2 + diff: 8.0.3 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.7.0 + esbuild: 0.25.12 + estree-walker: 3.0.3 + flattie: 1.1.1 + fontace: 0.4.0 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.2.0 + import-meta-resolve: 4.2.0 + js-yaml: 4.1.1 + magic-string: 0.30.21 + magicast: 0.5.1 + mrmime: 2.0.1 + neotraverse: 0.6.18 + p-limit: 6.2.0 + p-queue: 8.1.1 + package-manager-detector: 1.6.0 + piccolore: 0.1.3 + picomatch: 4.0.3 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.7.3 + shiki: 3.22.0 + smol-toml: 1.6.0 + svgo: 4.0.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tsconfck: 3.1.6(typescript@5.9.3) + ultrahtml: 1.6.0 + unifont: 0.7.3 + unist-util-visit: 5.1.0 + unstorage: 1.17.4 + vfile: 6.0.3 + vite: 6.4.1 + vitefu: 1.1.1(vite@6.4.1) + xxhash-wasm: 1.1.0 + yargs-parser: 21.1.1 + yocto-spinner: 0.2.3 + zod: 3.25.76 + zod-to-json-schema: 3.25.1(zod@3.25.76) + zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) + optionalDependencies: + sharp: 0.34.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - yaml + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + base-64@1.0.0: {} + + boolbase@1.0.0: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.6.2 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.2 + + camelcase@8.0.0: {} + + ccount@2.0.1: {} + + chalk@5.6.2: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + ci-info@4.4.0: {} + + cli-boxes@3.0.0: {} + + clsx@2.1.1: {} + + comma-separated-tokens@2.0.3: {} + + commander@11.1.0: {} + + common-ancestor-path@1.0.1: {} + + cookie-es@1.2.2: {} + + cookie@1.1.1: {} + + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + + cssesc@3.0.0: {} + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + defu@6.1.4: {} + + dequal@2.0.3: {} + + destr@2.0.5: {} + + detect-libc@2.1.2: + optional: true + + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.6.2: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diff@8.0.3: {} + + dlv@1.1.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dset@3.1.4: {} + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + + entities@6.0.1: {} + + es-module-lexer@1.7.0: {} + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + escape-string-regexp@5.0.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + eventemitter3@5.0.4: {} + + extend@3.0.2: {} + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + flattie@1.1.1: {} + + fontace@0.4.0: + dependencies: + fontkitten: 1.0.2 + + fontkitten@1.0.2: + dependencies: + tiny-inflate: 1.0.3 + + fsevents@2.3.3: + optional: true + + get-east-asian-width@1.4.0: {} + + github-slugger@2.0.0: {} + + h3@1.15.5: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.5 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.4 + radix3: 1.1.2 + ufo: 1.6.3 + uncrypto: 0.1.3 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + http-cache-semantics@4.2.0: {} + + import-meta-resolve@4.2.0: {} + + iron-webcrypto@1.2.1: {} + + is-docker@3.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-plain-obj@4.1.0: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + kleur@3.0.3: {} + + longest-streak@3.1.0: {} + + lru-cache@11.2.5: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + magicast@0.5.1: + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + source-map-js: 1.2.1 + + markdown-table@3.0.4: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.28: {} + + mdn-data@2.12.2: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-fetch-native@1.6.7: {} + + node-mock-http@1.0.4: {} + + normalize-path@3.0.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.3 + + ohash@2.0.11: {} + + oniguruma-parser@0.12.1: {} + + oniguruma-to-es@4.3.4: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.1.0 + regex-recursion: 6.0.2 + + p-limit@6.2.0: + dependencies: + yocto-queue: 1.2.2 + + p-queue@8.1.1: + dependencies: + eventemitter3: 5.0.4 + p-timeout: 6.1.4 + + p-timeout@6.1.4: {} + + package-manager-detector@1.6.0: {} + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + piccolore@0.1.3: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prismjs@1.30.0: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@7.1.0: {} + + radix3@1.1.2: {} + + readdirp@5.0.0: {} + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.1.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + rollup@4.57.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 + fsevents: 2.3.3 + + sax@1.4.4: {} + + semver@7.7.3: {} + + sharp@0.34.5: + dependencies: + '@img/colour': 1.0.0 + detect-libc: 2.1.2 + semver: 7.7.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.5 + '@img/sharp-darwin-x64': 0.34.5 + '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-linux-arm': 0.34.5 + '@img/sharp-linux-arm64': 0.34.5 + '@img/sharp-linux-ppc64': 0.34.5 + '@img/sharp-linux-riscv64': 0.34.5 + '@img/sharp-linux-s390x': 0.34.5 + '@img/sharp-linux-x64': 0.34.5 + '@img/sharp-linuxmusl-arm64': 0.34.5 + '@img/sharp-linuxmusl-x64': 0.34.5 + '@img/sharp-wasm32': 0.34.5 + '@img/sharp-win32-arm64': 0.34.5 + '@img/sharp-win32-ia32': 0.34.5 + '@img/sharp-win32-x64': 0.34.5 + optional: true + + shiki@3.22.0: + dependencies: + '@shikijs/core': 3.22.0 + '@shikijs/engine-javascript': 3.22.0 + '@shikijs/engine-oniguruma': 3.22.0 + '@shikijs/langs': 3.22.0 + '@shikijs/themes': 3.22.0 + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + sisteransi@1.0.5: {} + + smol-toml@1.6.0: {} + + source-map-js@1.2.1: {} + + space-separated-tokens@2.0.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + svgo@4.0.0: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.1.0 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.4.4 + + tiny-inflate@1.0.3: {} + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + tsconfck@3.1.6(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + + tslib@2.8.1: + optional: true + + type-fest@4.41.0: {} + + typescript@5.9.3: {} + + ufo@1.6.3: {} + + ultrahtml@1.6.0: {} + + uncrypto@0.1.3: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unifont@0.7.3: + dependencies: + css-tree: 3.1.0 + ofetch: 1.5.1 + ohash: 2.0.11 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unstorage@1.17.4: + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.5 + lru-cache: 11.2.5 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.3 + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vite@6.4.1: + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.57.1 + tinyglobby: 0.2.15 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@1.1.1(vite@6.4.1): + optionalDependencies: + vite: 6.4.1 + + web-namespaces@2.0.1: {} + + which-pm-runs@1.1.0: {} + + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 + + xxhash-wasm@1.1.0: {} + + yargs-parser@21.1.1: {} + + yocto-queue@1.2.2: {} + + yocto-spinner@0.2.3: + dependencies: + yoctocolors: 2.1.2 + + yoctocolors@2.1.2: {} + + zod-to-json-schema@3.25.1(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): + dependencies: + typescript: 5.9.3 + zod: 3.25.76 + + zod@3.25.76: {} + + zwitch@2.0.4: {} diff --git a/website/CNAME b/website/public/CNAME similarity index 100% rename from website/CNAME rename to website/public/CNAME diff --git a/website/public/CozetteVector.ttf b/website/public/CozetteVector.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff273b7487ac134fb17c0c71f9eb3b1227ad40b9 GIT binary patch literal 649328 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%0D%Ekqp>3YoTX%3n`M2 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
  • 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%0Doe2c(9a23%Dpnb2xB>-#2SAiOcO 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 literal 0 HcmV?d00001 diff --git a/website/cagire.png b/website/public/cagire.png similarity index 100% rename from website/cagire.png rename to website/public/cagire.png diff --git a/website/src/pages/index.astro b/website/src/pages/index.astro new file mode 100644 index 0000000..ecc8998 --- /dev/null +++ b/website/src/pages/index.astro @@ -0,0 +1,173 @@ +--- +--- + + + + + + + Cagire + + + +

    CAGIRE: LIVE CODING IN FORTH

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PlatformDesktopTerminal
    macOS (ARM).app.tar.gz
    macOS (Intel).app.tar.gz
    Windows.exe.zip
    Linux.deb.tar.gz
    +

    All releases on GitHub. You can also compile the software yourself or get it from Cargo!

    + + Cagire screenshot + +

    About

    +

    Cagire is a step sequencer where each step contains a Forth script instead of typical note data. When the sequencer reaches a step, it runs the script. Scripts can produce sound, trigger samples, apply effects, or do nothing at all. You are free to define what your scripts will do. Cagire includes a built-in audio engine called Doux. No external software is needed to make sound. It comes with oscillators, sample players, filters, reverb, delay, distortion, and more.

    + +

    Code Examples

    +

    A minimal script that plays a middle C note using a sine wave:

    +
    c4 note sine sound .
    + +

    Sawtooth wave with lowpass filter, chorus and reverb:

    +
    saw sound 1200 lpf 0.2 chorus 0.8 verb .
    + +

    Pitched-down kick drum sample with distortion:

    +
    kkick sound 1.5 distort 0.8 speed .
    + +

    Features

    +
      +
    • 32 banks × 32 patterns × 128 steps per project
    • +
    • Ableton Link synchronization
    • +
    • Built-in synthesis engine (oscillators, samples, wavetables)
    • +
    • Effects: filters, reverb, delay, distortion, chorus
    • +
    • User-defined words and shared variables
    • +
    • Embedded dictionary and documentation
    • +
    + +

    Live Coding

    +

    Live coding is a technique where a programmer writes code in real-time, often in front of an audience. It can be used to create music, visual art, and other forms of media. Learn more at TOPLAP or livecoding.fr.

    + +

    Credits

    + + +

    Links

    + + +

    AGPL-3.0 License

    + +