From aedbc4d65cb930d31badc798eea61ead818a8204 Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Sat, 24 Oct 2026 10:05:04 -0700 Subject: [PATCH] feat: driga.dev site with generated reference and real footage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A Starlight site for driga.dev, built from the code where it can be: - cmd/driga-docgen writes the CLI, settings, MCP tools and hooks reference pages from the parser, the settings table, the MCP server and dry-run hook installers; `just docs-check` and the docgen tests fail on a stale page. - llms.txt, llms-full.txt and a Markdown alternate of every page, including the landing page's headings, commands and install line. - Catppuccin Mocha and Latte as in the app, Geist and Geist Mono, one heading scale and focus ring, state colours at 4.5:1 or better. The landing page leads with real-time screen recordings of the shipped binary: the terminal from typing `driga` to an allowed permission prompt, then the same prompt allowed in the browser, then the install command, with a Terminal · Browser · Install chapter bar. Feature sections play tight crops of the same takes, light or dark with the site theme; phones get the Needs-you crop in the hero. - cmd/driga-demo plays scripted sessions into a private temporary data directory: it holds the collector lock, writes the store and runs the real prompt broker, so `driga` and `driga web` read it as a live collector. It never reads the process table, agent files or Git. - site/footage records the TUI with VHS and `driga web` with Playwright (a drawn pointer, both themes), refusing to film unless the viewer reads the demo, and cuts the films with Remotion from film/cut.json. - Videos live in the R2 bucket driga-assets under content-hashed keys, served from assets.driga.dev and listed in src/data/media.json; posters are committed. `just site-footage` re-records, `just site-footage-publish` uploads. Docs follow #58 (one-time macOS notification prompt) and #59 (bare `driga` opens the viewer; no activity, conflicts or --watch). Deployed to Cloudflare Pages by .github/workflows/site.yml. Claude-Session: https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4 --- .github/workflows/site.yml | 91 + Justfile | 33 +- cmd/driga-demo/main.go | 352 + cmd/driga-docgen/cli.go | 225 + cmd/driga-docgen/hooks.go | 167 + cmd/driga-docgen/main.go | 251 + cmd/driga-docgen/main_test.go | 179 + cmd/driga-docgen/mcp.go | 262 + cmd/driga-docgen/settings.go | 138 + internal/cli/root.go | 16 +- internal/config/settings.go | 12 +- site/.gitignore | 6 + site/astro.config.mjs | 125 + site/footage/.gitignore | 2 + site/footage/film/Root.tsx | 116 + site/footage/film/cut.json | 13 + site/footage/film/index.ts | 4 + site/footage/flow.tape | 59 + site/footage/package-lock.json | 4345 ++++++++++ site/footage/package.json | 22 + site/footage/record.sh | 31 + site/footage/render.mjs | 29 + site/footage/tsconfig.json | 15 + site/footage/upload.mjs | 37 + site/footage/web.mjs | 123 + site/package-lock.json | 7543 +++++++++++++++++ site/package.json | 36 + site/public/apple-touch-icon.png | Bin 0 -> 9201 bytes site/public/favicon.svg | 13 + site/public/robots.txt | 6 + site/public/social-card.png | Bin 0 -> 42971 bytes site/scripts/check-canonical.mjs | 111 + site/scripts/check-links.mjs | 77 + site/scripts/check-social-card.mjs | 114 + site/scripts/check-tables.mjs | 99 + site/scripts/social-card.mjs | 44 + site/src/assets/lockup-white.svg | 22 + site/src/assets/lockup.svg | 22 + site/src/assets/media/flow-dark.jpg | Bin 0 -> 62916 bytes site/src/assets/media/flow-light.jpg | Bin 0 -> 63977 bytes site/src/assets/media/hero-dark.jpg | Bin 0 -> 167348 bytes site/src/assets/media/hero-light.jpg | Bin 0 -> 160269 bytes site/src/assets/media/machines-dark.jpg | Bin 0 -> 126623 bytes site/src/assets/media/machines-light.jpg | Bin 0 -> 121273 bytes site/src/assets/media/needs-dark.jpg | Bin 0 -> 71726 bytes site/src/assets/media/needs-light.jpg | Bin 0 -> 71178 bytes site/src/components/Analytics.astro | 405 + site/src/components/AnalyticsConsent.astro | 152 + site/src/components/AnalyticsPreference.astro | 160 + site/src/components/Footer.astro | 99 + site/src/components/Head.astro | 50 + site/src/components/PageFrame.astro | 125 + site/src/components/SiteFooter.astro | 149 + site/src/components/SocialIcons.astro | 13 + site/src/components/TerminalFrame.astro | 142 + site/src/components/landing/Feature.astro | 102 + site/src/components/landing/Film.astro | 270 + site/src/components/landing/Hero.astro | 163 + .../components/landing/InstallCommand.astro | 128 + site/src/components/landing/Section.astro | 111 + site/src/components/landing/Way.astro | 54 + site/src/components/landing/film.ts | 100 + site/src/components/landing/media.ts | 9 + site/src/content.config.ts | 28 + .../docs/explanation/how-driga-observes.mdx | 79 + .../docs/explanation/privacy-and-data.mdx | 62 + site/src/content/docs/guides/chat.mdx | 98 + site/src/content/docs/guides/cleanup.mdx | 53 + site/src/content/docs/guides/fleet.mdx | 133 + site/src/content/docs/guides/flow.mdx | 79 + site/src/content/docs/guides/mcp.mdx | 69 + site/src/content/docs/guides/needs-you.mdx | 70 + .../src/content/docs/guides/notifications.mdx | 71 + .../docs/guides/projects-and-machines.mdx | 107 + site/src/content/docs/guides/windows.mdx | 63 + site/src/content/docs/index.mdx | 92 + site/src/content/docs/privacy.mdx | 66 + site/src/content/docs/reference/cli.mdx | 922 ++ site/src/content/docs/reference/hooks.mdx | 77 + site/src/content/docs/reference/mcp-tools.mdx | 265 + site/src/content/docs/reference/settings.mdx | 374 + site/src/content/docs/start/first-run.mdx | 96 + site/src/content/docs/start/install.mdx | 93 + site/src/content/docs/start/what-driga-is.mdx | 69 + site/src/data/media.json | 34 + site/src/lib/markdown.ts | 108 + site/src/lib/site-assets.ts | 5 + site/src/pages/[...slug].md.ts | 55 + site/src/pages/llms-full.txt.ts | 49 + site/src/pages/llms.txt.ts | 98 + site/src/plugins/rehype-table-wrap.mjs | 52 + site/src/starlight-route-data.ts | 52 + site/src/styles/driga.css | 211 + site/tsconfig.json | 5 + 94 files changed, 20601 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/site.yml create mode 100644 cmd/driga-demo/main.go create mode 100644 cmd/driga-docgen/cli.go create mode 100644 cmd/driga-docgen/hooks.go create mode 100644 cmd/driga-docgen/main.go create mode 100644 cmd/driga-docgen/main_test.go create mode 100644 cmd/driga-docgen/mcp.go create mode 100644 cmd/driga-docgen/settings.go create mode 100644 site/.gitignore create mode 100644 site/astro.config.mjs create mode 100644 site/footage/.gitignore create mode 100644 site/footage/film/Root.tsx create mode 100644 site/footage/film/cut.json create mode 100644 site/footage/film/index.ts create mode 100644 site/footage/flow.tape create mode 100644 site/footage/package-lock.json create mode 100644 site/footage/package.json create mode 100755 site/footage/record.sh create mode 100644 site/footage/render.mjs create mode 100644 site/footage/tsconfig.json create mode 100644 site/footage/upload.mjs create mode 100644 site/footage/web.mjs create mode 100644 site/package-lock.json create mode 100644 site/package.json create mode 100644 site/public/apple-touch-icon.png create mode 100644 site/public/favicon.svg create mode 100644 site/public/robots.txt create mode 100644 site/public/social-card.png create mode 100644 site/scripts/check-canonical.mjs create mode 100644 site/scripts/check-links.mjs create mode 100644 site/scripts/check-social-card.mjs create mode 100644 site/scripts/check-tables.mjs create mode 100644 site/scripts/social-card.mjs create mode 100644 site/src/assets/lockup-white.svg create mode 100644 site/src/assets/lockup.svg create mode 100644 site/src/assets/media/flow-dark.jpg create mode 100644 site/src/assets/media/flow-light.jpg create mode 100644 site/src/assets/media/hero-dark.jpg create mode 100644 site/src/assets/media/hero-light.jpg create mode 100644 site/src/assets/media/machines-dark.jpg create mode 100644 site/src/assets/media/machines-light.jpg create mode 100644 site/src/assets/media/needs-dark.jpg create mode 100644 site/src/assets/media/needs-light.jpg create mode 100644 site/src/components/Analytics.astro create mode 100644 site/src/components/AnalyticsConsent.astro create mode 100644 site/src/components/AnalyticsPreference.astro create mode 100644 site/src/components/Footer.astro create mode 100644 site/src/components/Head.astro create mode 100644 site/src/components/PageFrame.astro create mode 100644 site/src/components/SiteFooter.astro create mode 100644 site/src/components/SocialIcons.astro create mode 100644 site/src/components/TerminalFrame.astro create mode 100644 site/src/components/landing/Feature.astro create mode 100644 site/src/components/landing/Film.astro create mode 100644 site/src/components/landing/Hero.astro create mode 100644 site/src/components/landing/InstallCommand.astro create mode 100644 site/src/components/landing/Section.astro create mode 100644 site/src/components/landing/Way.astro create mode 100644 site/src/components/landing/film.ts create mode 100644 site/src/components/landing/media.ts create mode 100644 site/src/content.config.ts create mode 100644 site/src/content/docs/explanation/how-driga-observes.mdx create mode 100644 site/src/content/docs/explanation/privacy-and-data.mdx create mode 100644 site/src/content/docs/guides/chat.mdx create mode 100644 site/src/content/docs/guides/cleanup.mdx create mode 100644 site/src/content/docs/guides/fleet.mdx create mode 100644 site/src/content/docs/guides/flow.mdx create mode 100644 site/src/content/docs/guides/mcp.mdx create mode 100644 site/src/content/docs/guides/needs-you.mdx create mode 100644 site/src/content/docs/guides/notifications.mdx create mode 100644 site/src/content/docs/guides/projects-and-machines.mdx create mode 100644 site/src/content/docs/guides/windows.mdx create mode 100644 site/src/content/docs/index.mdx create mode 100644 site/src/content/docs/privacy.mdx create mode 100644 site/src/content/docs/reference/cli.mdx create mode 100644 site/src/content/docs/reference/hooks.mdx create mode 100644 site/src/content/docs/reference/mcp-tools.mdx create mode 100644 site/src/content/docs/reference/settings.mdx create mode 100644 site/src/content/docs/start/first-run.mdx create mode 100644 site/src/content/docs/start/install.mdx create mode 100644 site/src/content/docs/start/what-driga-is.mdx create mode 100644 site/src/data/media.json create mode 100644 site/src/lib/markdown.ts create mode 100644 site/src/lib/site-assets.ts create mode 100644 site/src/pages/[...slug].md.ts create mode 100644 site/src/pages/llms-full.txt.ts create mode 100644 site/src/pages/llms.txt.ts create mode 100644 site/src/plugins/rehype-table-wrap.mjs create mode 100644 site/src/starlight-route-data.ts create mode 100644 site/src/styles/driga.css create mode 100644 site/tsconfig.json diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml new file mode 100644 index 00000000..bdbe9315 --- /dev/null +++ b/.github/workflows/site.yml @@ -0,0 +1,91 @@ +# Publishing the documentation site at https://driga.dev. +# +# The reference under site/src/content/docs/reference is generated from the +# code by cmd/driga-docgen and committed, and `just check` fails a change that +# edits the code without regenerating. Publication deploys from main, where the +# documentation and the code it describes agree. +name: Site + +on: + push: + branches: [main] + # Every source the generator reads is listed: the command tree in + # internal/cli, settings in internal/config, MCP tools in internal/mcp and + # internal/chat, hook installers in internal/hooks, and the TUI golden + # frames the site renders from internal/tui/testdata. + paths: + - "site/**" + - "cmd/driga-docgen/**" + - "internal/cli/**" + - "internal/config/**" + - "internal/mcp/**" + - "internal/chat/**" + - "internal/hooks/**" + - "internal/tui/testdata/**" + - "internal/web/static/brand/**" + - "go.mod" + - "go.sum" + - ".github/workflows/site.yml" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + # One publication at a time; a newer build supersedes an older one. + group: site + cancel-in-progress: true + +jobs: + publish: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 + with: + go-version-file: go.mod + cache: true + + - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 + with: + node-version: 24.19.0 + cache: npm + cache-dependency-path: site/package-lock.json + + # Publishing a reference that is behind the code would document flags + # and settings the binary no longer accepts. + - name: Refuse a reference that is behind the code + env: + CGO_ENABLED: "0" + run: go run ./cmd/driga-docgen --check + + - name: Install dependencies + working-directory: site + run: npm ci + + # astro check, the build, and the table, social-card, canonical and link + # checks. + - name: Build + working-directory: site + env: + SITE_URL: https://driga.dev + # A GA4 measurement id is public in the delivered page, so this is a + # repository variable rather than a secret. When absent, the build + # emits no analytics script or request. + PUBLIC_GA_MEASUREMENT_ID: ${{ vars.PUBLIC_GA_MEASUREMENT_ID }} + run: npm run build + + # main is the production branch of the Cloudflare Pages project. + - name: Publish + working-directory: site + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: e6379d37f788129207ab5f566abfb4ff + run: | + npx --yes wrangler@4.123.0 pages deploy dist \ + --project-name driga \ + --branch main \ + --commit-hash "${GITHUB_SHA}" diff --git a/Justfile b/Justfile index 2b35f330..619db2bf 100644 --- a/Justfile +++ b/Justfile @@ -34,7 +34,7 @@ clean: # ---------- Verification ---------- # Local pre-commit gate. -check: _fmt-check tidy-check vet generate-check test +check: _fmt-check tidy-check vet generate-check docs-check test @echo "All checks passed" # Adds race, vulnerability, workflow and release-snapshot checks. @@ -76,6 +76,37 @@ generate-check: go generate ./internal/config git diff --exit-code -- .env.example +# Rewrite the generated reference pages under site/ from the code. +docs: + go run ./cmd/driga-docgen + +# Fail when a committed reference page is behind the code it documents. +docs-check: + go run ./cmd/driga-docgen --check + +# ---------- Documentation site ---------- + +# Install the site's dependencies from the lockfile. +site-deps: + cd site && npm ci --no-audit --no-fund + +# Serve the site locally with live reload on http://localhost:7431. +site: docs site-deps + cd site && npm run dev + +# Re-record site footage of the real TUI and web on demo data (needs vhs, ffmpeg). +site-footage: + site/footage/record.sh + +# Publish the rendered footage to R2 (assets.driga.dev) and update the manifest. +site-footage-publish: + cd site/footage && node upload.mjs + +# Build the site into site/dist: astro check, build, then the output checks. +# Depends on the checking recipe, not the writing one, so it cannot hide a stale page. +site-build: docs-check site-deps + cd site && npm run build + # Run tests with a disposable home and Driga data (scripts/isolated.sh). test *args: scripts/isolated.sh go test {{ args }} ./... diff --git a/cmd/driga-demo/main.go b/cmd/driga-demo/main.go new file mode 100644 index 00000000..af47d850 --- /dev/null +++ b/cmd/driga-demo/main.go @@ -0,0 +1,352 @@ +// Command driga-demo plays a scripted set of agent sessions into a private +// data directory, so the real `driga top` and `driga web` can be filmed for +// the website without showing anyone's machine. It never reads the process +// table, agent files or Git: every row is written here. +// +// driga-demo --data-dir /tmp/driga-demo +// DRIGA_DATA_DIR=/tmp/driga-demo DRIGA_CONFIG=/tmp/driga-demo/config.toml driga top +package main + +import ( + "context" + "encoding/json" + "errors" + "flag" + "fmt" + "os" + "os/signal" + "path/filepath" + "strings" + "syscall" + "time" + + "github.com/labstack/driga/internal/chat" + "github.com/labstack/driga/internal/collector" + "github.com/labstack/driga/internal/model" + "github.com/labstack/driga/internal/store" +) + +const marker = ".driga-demo" + +func main() { + dir := flag.String("data-dir", "", "empty or demo data directory (required)") + flag.Parse() + if err := run(*dir); err != nil && !errors.Is(err, context.Canceled) { + fmt.Fprintln(os.Stderr, "driga-demo:", err) + os.Exit(1) + } +} + +// prepare takes the collector lock on a demo directory and resets it. It +// refuses anything outside the temporary directory and any directory holding +// something other than a demo, so a mistyped path can never touch real Driga +// data, and a second run cannot reset a demo that is still playing. +func prepare(dir string) (*os.File, error) { + if dir == "" { + return nil, errors.New("--data-dir is required") + } + if !temporary(dir) { + return nil, fmt.Errorf("%s is outside the temporary directory; demos only run in scratch space", dir) + } + entries, err := os.ReadDir(dir) + if err != nil && !errors.Is(err, os.ErrNotExist) { + return nil, err + } + if _, err := os.Stat(filepath.Join(dir, marker)); len(entries) > 0 && err != nil { + return nil, fmt.Errorf("%s is not empty and is not a driga-demo directory", dir) + } + lock, err := collector.Lock(dir) + if err != nil { + return nil, err + } + for _, e := range entries { + if e.Name() == "driga.lock" { + continue + } + if err := os.RemoveAll(filepath.Join(dir, e.Name())); err != nil { + lock.Close() + return nil, err + } + } + // Prompt input is shown to the viewer only under the snippets policy. + for name, body := range map[string]string{marker: "", "config.toml": "capture_text = \"snippets\"\nno_service_hint = true\n"} { + if err := os.WriteFile(filepath.Join(dir, name), []byte(body), 0o600); err != nil { + lock.Close() + return nil, err + } + } + return lock, nil +} + +func temporary(dir string) bool { + abs, err := filepath.Abs(dir) + if err != nil { + return false + } + for _, root := range []string{os.TempDir(), "/tmp"} { + root, err := filepath.EvalSymlinks(root) + if err != nil { + continue + } + parent, err := filepath.EvalSymlinks(filepath.Dir(abs)) + if err != nil { + parent = filepath.Dir(abs) + } + if rel, err := filepath.Rel(root, filepath.Join(parent, filepath.Base(abs))); err == nil && rel != "." && !strings.HasPrefix(rel, "..") { + return true + } + } + return false +} + +type session struct { + key, adapter, title, project string + parent string + label string + start time.Duration // before the demo starts + appear time.Duration // after the demo starts + files []string + pid int32 + mem uint64 +} + +var projects = []string{"atlas", "canon", "relay"} + +var script = []session{ + {key: "billing", adapter: "claude", title: "Migrate billing to Stripe v3", project: "atlas", label: "working", start: 12 * time.Minute, files: []string{"src/billing.ts", "src/webhooks.ts"}, pid: 4101, mem: 1800 << 20}, + {key: "webhooks", adapter: "claude", title: "Update webhook handlers", project: "atlas", parent: "billing", label: "working", appear: 3 * time.Second, files: []string{"src/webhooks.ts"}}, + {key: "tests", adapter: "claude", title: "Write migration tests", project: "atlas", parent: "billing", label: "working", appear: 5 * time.Second}, + {key: "react", adapter: "codex", title: "Upgrade to React 20", project: "atlas", label: "stalled", start: 41 * time.Minute, pid: 4104, mem: 1200 << 20}, + {key: "upload", adapter: "codex", title: "Fix flaky upload test", project: "canon", label: "working", start: 19 * time.Minute, files: []string{"src/upload.ts"}, pid: 4201, mem: 1100 << 20}, + {key: "darkmode", adapter: "gemini", title: "Add dark mode to settings", project: "canon", label: "working", start: 27 * time.Minute, files: []string{"src/upload.ts", "src/settings.tsx"}, pid: 4202, mem: 800 << 20}, + {key: "notes", adapter: "copilot", title: "Release notes for 2.4", project: "relay", label: "finished", start: 62 * time.Minute, pid: 4301, mem: 300 << 20}, + {key: "triage", adapter: "claude", title: "Triage open issues", project: "relay", label: "idle", start: 34 * time.Minute, pid: 4302, mem: 500 << 20}, +} + +// The permission prompt arrives after the opening beats of the film. +const promptAt = 8 * time.Second + +func run(dir string) error { + lock, err := prepare(dir) + if err != nil { + return err + } + defer lock.Close() + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer stop() + st, err := store.Open(filepath.Join(dir, "driga.db"), store.ReadWrite) + if err != nil { + return err + } + defer st.Close() + broker, err := chat.New(ctx, st, noAgent{}, chat.Options{Snippets: true, DataDir: dir}) + if err != nil { + return err + } + defer broker.Close() + stopChat, err := chat.Listen(ctx, dir, broker) + if err != nil { + return err + } + defer stopChat() + + t0 := time.Now().UTC() + d := &demo{st: st, t0: t0, ids: map[string]int64{}, repos: map[string]int64{}} + if err := st.Tx(ctx, d.seed); err != nil { + return err + } + answered := make(chan bool, 1) + tick := time.NewTicker(time.Second) + defer tick.Stop() + asked := false + for { + now := time.Now().UTC() + if !asked && now.Sub(t0) >= promptAt { + asked = true + if err := d.ask(ctx, broker, answered); err != nil { + return err + } + } + select { + case allow := <-answered: + d.answered(allow) // either answer resumes the session in the script + default: + } + if err := st.Tx(ctx, func(tx *store.Tx) error { return d.pass(tx, now) }); err != nil { + return err + } + select { + case <-ctx.Done(): + return nil + case <-tick.C: + } + } +} + +type noAgent struct{} + +func (noAgent) Run(context.Context, chat.Request, func(chat.Delta) error) error { + return errors.New("Chat is not part of the demo") +} + +type demo struct { + st *store.Store + t0 time.Time + ids map[string]int64 + repos map[string]int64 + waiting bool // billing is waiting on the prompt + resolved bool +} + +func cwd(project string) string { return "/Users/demo/code/" + project } + +func (d *demo) seed(tx *store.Tx) error { + if err := tx.UpsertMachine(model.Machine{Hostname: "studio", OS: "darwin", Arch: "arm64", Cores: 12, MemTotal: 36 << 30}); err != nil { + return err + } + for _, p := range projects { + id, err := tx.UpsertRepo(model.Repo{Path: cwd(p), Name: p}) + if err != nil { + return err + } + d.repos[p] = id + if _, err := tx.UpsertWorktree(model.Worktree{RepoID: id, Path: cwd(p), Branch: "main", Dirty: 3, LastCommitAt: d.t0.Add(-2 * time.Hour), LastCommitSubject: "Prepare " + p + " release", UpdatedAt: d.t0}); err != nil { + return err + } + } + // An hour of activity history gives every bar its past. + for _, s := range script { + if s.appear > 0 { + continue + } + id, err := d.upsert(tx, s, d.t0) + if err != nil { + return err + } + for m := s.start; m > 0; m -= time.Minute { + at := d.t0.Add(-m) + active := s.label == "working" || s.label == "waiting" || (s.label == "stalled" && m > 20*time.Minute) || (s.label == "finished" && m > 45*time.Minute) + if active && int(m/time.Minute)%7 != 3 { + if err := tx.Observe(id, at, int64(2000+int(m/time.Minute)%5*900), 400); err != nil { + return err + } + } + } + } + return tx.ReplaceOrphans([]model.Orphan{{ID: "5120:1", RootPID: 5120, StartTime: d.t0.Add(-3 * time.Hour), Signature: "vite dev server", ProcCount: 4, RSSTotal: 900 << 20, Cwd: cwd("canon"), Verified: true, Evidence: []string{"parent session ended 2h ago", "no open connections"}, FirstSeen: d.t0.Add(-2 * time.Hour), PIDs: []int32{5120, 5121, 5122, 5123}}}) +} + +func (d *demo) upsert(tx *store.Tx, s session, now time.Time) (int64, error) { + label := s.label + if s.key == "billing" && d.waiting { + label = "waiting" + } + repo := d.repos[s.project] + obs := model.SessionObs{Adapter: s.adapter, ExternalID: "demo-" + s.key, Origin: "interactive", PID: s.pid, ProcStart: d.t0.Add(-s.start), Cwd: cwd(s.project), Branch: "main", Title: s.title, + StartedAt: d.t0.Add(-s.start + s.appear), LastActivityAt: now, TurnOpen: label == "working" || label == "waiting"} + if label == "stalled" { + obs.LastActivityAt = d.t0.Add(-20 * time.Minute) + } + if label == "finished" || label == "idle" { + obs.LastActivityAt = d.t0.Add(-s.start + 18*time.Minute) + } + session := model.Session{SessionObs: obs, Label: label, Evidence: "demo script", RepoID: &repo} + if s.parent != "" { + parent := d.ids[s.parent] + session.ParentID = &parent + session.Hosted = true + session.Origin = "" + } + id, err := tx.UpsertSession(session) + if err != nil { + return 0, err + } + d.ids[s.key] = id + if len(s.files) > 0 { + var touches []model.FileTouch + for _, f := range s.files { + touches = append(touches, model.FileTouch{Path: filepath.Join(cwd(s.project), f), TS: now}) + } + if err := tx.ReplaceSessionFiles(id, touches); err != nil { + return 0, err + } + } + return id, nil +} + +// pass rewrites what a collector pass would: sessions, the current minute of +// activity, processes, a machine sample and freshness. +func (d *demo) pass(tx *store.Tx, now time.Time) error { + var procs []model.Proc + for _, s := range script { + if now.Sub(d.t0) < s.appear { + continue + } + id, err := d.upsert(tx, s, now) + if err != nil { + return err + } + if s.label == "working" && !(s.key == "billing" && d.waiting) { + // Observe adds into the current minute, so a pass a second adds 1/60th. + if err := tx.Observe(id, now, 60, 6); err != nil { + return err + } + } + if s.pid == 0 { + continue // workers run inside their lead's process + } + procs = append(procs, model.Proc{PID: s.pid, PPID: 1, StartTime: d.t0.Add(-s.start), Footprint: s.mem, RSS: s.mem, CPUPercent: map[bool]float64{true: 18, false: 0.4}[s.label == "working"], + Cmdline: s.adapter, Exe: "/usr/local/bin/" + s.adapter, Cwd: cwd(s.project), Agent: s.adapter, Role: "agent", SessionID: id}) + } + // A machine always runs other apps; without them the Machines tab is not representative. + procs = append(procs, + model.Proc{PID: 900, PPID: 1, StartTime: d.t0.Add(-5 * time.Hour), Footprint: 2600 << 20, RSS: 2600 << 20, CPUPercent: 6, Cmdline: "Safari", Exe: "/Applications/Safari.app/Contents/MacOS/Safari"}, + model.Proc{PID: 901, PPID: 1, StartTime: d.t0.Add(-5 * time.Hour), Footprint: 1900 << 20, RSS: 1900 << 20, CPUPercent: 3, Cmdline: "Code Helper", Exe: "/Applications/Visual Studio Code.app/Contents/MacOS/Electron"}) + if err := tx.ReplaceProcs(procs); err != nil { + return err + } + if err := tx.InsertSample(model.MachineSample{TS: now, MemUsed: 22 << 30, MemCompressed: 3 << 30, MemTotal: 36 << 30, SwapUsed: 1 << 30, SwapTotal: 4 << 30, + DiskFree: 210_000_000_000, DiskTotal: 994_000_000_000, PressureLevel: "normal", PressureFree: 38, Load1: 6.2, Load5: 5.8, Load15: 5.1, Cores: 12}); err != nil { + return err + } + for _, source := range []string{"procs", "machine", "git", "claude", "codex", "copilot", "gemini"} { + if err := tx.SetSourceOK(source, now); err != nil { + return err + } + } + return tx.SetMeta("last_pass_at", now.Format(time.RFC3339Nano)) +} + +// ask raises the wait the way the PermissionRequest hook does: an inbox item +// plus a pending prompt in the real broker, answered from top or web. +func (d *demo) ask(ctx context.Context, broker *chat.Broker, answered chan<- bool) error { + now := time.Now().UTC() + command := "pnpm prisma migrate deploy --schema packages/db/prisma/schema.prisma" + input, _ := json.Marshal(map[string]string{"command": command}) + d.waiting = true + if err := d.st.Tx(ctx, func(tx *store.Tx) error { + return tx.UpsertInboxItem(model.InboxItem{ID: "demo-billing-permission", SessionID: d.ids["billing"], Kind: "waiting", Reason: "permission", Tool: "Bash", + Detail: command, TS: now, WaitingSinceAt: now, Summary: "Permission · Bash"}) + }); err != nil { + return err + } + prompt := chat.Prompt{ID: "demo-billing", Session: "demo-billing", Cwd: cwd("atlas"), Tool: "Bash", Input: input} + go func() { + decision, err := broker.WaitPrompt(ctx, prompt) + if err == nil { + answered <- decision.Behavior == "allow" + } + }() + return nil +} + +func (d *demo) answered(_ bool) { + if d.resolved { + return + } + d.resolved, d.waiting = true, false + // Resumed activity closes the wait, as a collector pass does. + _ = d.st.Tx(context.Background(), func(tx *store.Tx) error { + return tx.CloseAttentionActivity(d.ids["billing"], time.Now().UTC()) + }) +} diff --git a/cmd/driga-docgen/cli.go b/cmd/driga-docgen/cli.go new file mode 100644 index 00000000..f4143c90 --- /dev/null +++ b/cmd/driga-docgen/cli.go @@ -0,0 +1,225 @@ +package main + +import ( + "fmt" + "io" + "strings" + + "github.com/alecthomas/kong" + + "github.com/labstack/driga/internal/cli" +) + +// cliModel builds the same Kong model `driga --help` prints from. Nothing is +// parsed or run; the model is only walked. +func cliModel() (*kong.Application, error) { + root := new(cli.Root) + parser, err := cli.NewParser(root, + kong.Vars{"version": "driga (documentation)"}, + kong.Writers(io.Discard, io.Discard), + kong.Exit(func(int) {}), + ) + if err != nil { + return nil, err + } + return parser.Model, nil +} + +func renderCLI() (string, error) { + app, err := cliModel() + if err != nil { + return "", err + } + var b strings.Builder + frontmatter(&b, + "CLI reference", + "Every driga command, subcommand, argument and flag, with defaults and allowed values.", + "Every visible driga command and flag, generated from the same Kong command tree that prints `driga --help`.", + "You need the exact spelling, default or allowed values of a driga flag.", + "You are scripting driga and want to know which commands take --json or --yes.", + ) + fmt.Fprintf(&b, "%s\n\n", text(app.Help)) + b.WriteString("This page is generated from the command tree that `driga --help` prints, so it\n") + b.WriteString("matches the binary built from the same commit. Run `driga --help` for\n") + b.WriteString("the same text in a terminal.\n\n") + if app.DefaultCmd != nil { + fmt.Fprintf(&b, "Running `driga` with no command runs `driga %s`.\n\n", app.DefaultCmd.Name) + } + b.WriteString("Exit codes: `0` success; `1` failure, refusal or partial completion; `2` invalid\n") + b.WriteString("usage or missing required non-interactive input. A command that needs\n") + b.WriteString("confirmation exits `2` when stdin is not a terminal unless `--yes` is passed.\n\n") + + // Application-level flags (--version, --help) apply everywhere. + if flags := visibleFlags(app.Flags); len(flags) > 0 { + b.WriteString("## Global flags\n\n") + flagTable(&b, flags) + } + + b.WriteString("## Commands\n\n") + b.WriteString("| Command | Description |\n|---|---|\n") + for _, node := range visibleChildren(app.Node) { + fmt.Fprintf(&b, "| [%s](#%s) | %s |\n", code(node.FullPath()), anchor(node), cell(node.Help)) + } + b.WriteString("\n") + + for _, node := range visibleChildren(app.Node) { + renderCommand(&b, node, 2) + } + return strings.TrimRight(b.String(), "\n") + "\n", nil +} + +func renderCommand(b *strings.Builder, node *kong.Node, depth int) { + fmt.Fprintf(b, "%s %s\n\n", strings.Repeat("#", depth), node.FullPath()) + if node.Help != "" { + fmt.Fprintf(b, "%s\n\n", text(sentence(node.Help))) + } + if node.Detail != "" && node.Detail != node.Help { + fmt.Fprintf(b, "```text\n%s\n```\n\n", strings.TrimSpace(node.Detail)) + } + children := visibleChildren(node) + if len(children) == 0 || len(node.Positional) > 0 || len(visibleFlags(node.Flags)) > 0 { + fmt.Fprintf(b, "```sh\n%s\n```\n\n", usage(node)) + } + if node.DefaultCmd != nil { + fmt.Fprintf(b, "Without a subcommand, runs `%s`.\n\n", node.DefaultCmd.FullPath()) + } + if len(node.Positional) > 0 { + b.WriteString("| Argument | Default | Description |\n|---|---|---|\n") + for _, arg := range node.Positional { + name := "<" + arg.Name + ">" + if arg.IsCumulative() { + name += " ..." + } + if !arg.Required { + name = "[" + name + "]" + } + fmt.Fprintf(b, "| %s | %s | %s |\n", code(name), defaultCell(arg), cell(describe(arg))) + } + b.WriteString("\n") + } + if flags := visibleFlags(node.Flags); len(flags) > 0 { + flagTable(b, flags) + } + if len(children) > 0 { + b.WriteString("| Subcommand | Description |\n|---|---|\n") + for _, child := range children { + fmt.Fprintf(b, "| [%s](#%s) | %s |\n", code(child.FullPath()), anchor(child), cell(child.Help)) + } + b.WriteString("\n") + for _, child := range children { + renderCommand(b, child, min(depth+1, 4)) + } + } +} + +func flagTable(b *strings.Builder, flags []*kong.Flag) { + b.WriteString("| Flag | Default | Description |\n|---|---|---|\n") + for _, flag := range flags { + fmt.Fprintf(b, "| %s | %s | %s |\n", code(flagName(flag)), defaultCell(flag.Value), cell(describe(flag.Value))) + } + b.WriteString("\n") +} + +func flagName(flag *kong.Flag) string { + name := "--" + flag.Name + if flag.Negated { + name = "--[no-]" + flag.Name + } + if !flag.IsBool() && !flag.IsCounter() { + placeholder := flag.PlaceHolder + if placeholder == "" { + placeholder = strings.ToLower(flag.Name) + } + name += "=<" + placeholder + ">" + } + if flag.Short != 0 { + name = fmt.Sprintf("-%c, %s", flag.Short, name) + } + return name +} + +func describe(v *kong.Value) string { + help := sentence(v.Help) + if v.Enum != "" && !strings.Contains(v.OrigHelp, "${enum}") && !mentionsEvery(v.Help, v.EnumSlice()) { + values := v.EnumSlice() + for i, value := range values { + values[i] = "`" + value + "`" + } + help = strings.TrimSpace(help + " One of " + strings.Join(values, ", ") + ".") + } + if v.Required && v.Flag != nil { + help = strings.TrimSpace(help + " Required.") + } + return help +} + +func defaultCell(v *kong.Value) string { + if !v.HasDefault || v.Default == "" { + return "" + } + return code(v.Default) +} + +func usage(node *kong.Node) string { + parts := []string{node.FullPath()} + for _, arg := range node.Positional { + s := "<" + arg.Name + ">" + if arg.IsCumulative() { + s += "..." + } + if !arg.Required { + s = "[" + s + "]" + } + parts = append(parts, s) + } + if len(visibleFlags(node.Flags)) > 0 { + parts = append(parts, "[flags]") + } + return strings.Join(parts, " ") +} + +func visibleChildren(node *kong.Node) []*kong.Node { + var out []*kong.Node + for _, child := range node.Children { + if child.Hidden || child.Type != kong.CommandNode { + continue + } + out = append(out, child) + } + return out +} + +func visibleFlags(flags []*kong.Flag) []*kong.Flag { + var out []*kong.Flag + for _, flag := range flags { + if flag.Hidden { + continue + } + out = append(out, flag) + } + return out +} + +// anchor reproduces the heading slug Starlight generates for a command heading +// ("driga fleet peers add" -> "driga-fleet-peers-add"). +func anchor(node *kong.Node) string { + return strings.ReplaceAll(strings.ToLower(node.FullPath()), " ", "-") +} + +func sentence(s string) string { + s = strings.TrimSpace(s) + if s == "" || strings.HasSuffix(s, ".") || strings.HasSuffix(s, "?") || strings.HasSuffix(s, "!") { + return s + } + return s + "." +} + +// mentionsEvery reports whether help already names every allowed value. +func mentionsEvery(help string, values []string) bool { + for _, value := range values { + if !strings.Contains(help, value) { + return false + } + } + return true +} diff --git a/cmd/driga-docgen/hooks.go b/cmd/driga-docgen/hooks.go new file mode 100644 index 00000000..d1591515 --- /dev/null +++ b/cmd/driga-docgen/hooks.go @@ -0,0 +1,167 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "sort" + "strings" + "time" + + "github.com/pelletier/go-toml/v2" + + "github.com/labstack/driga/internal/hooks" +) + +// hookEvent is one installed hook as the installer would write it. +type hookEvent struct { + Event string + Timeout string +} + +// installedHooks runs each installer in dry-run mode against an empty file in +// a temporary directory and reads the events back out of the proposed +// contents. Nothing outside that directory is read or written, and the page +// lists what the installer would actually write rather than a copy of its +// event list. +func installedHooks() (claude, codex, copilot []hookEvent, err error) { + dir, err := os.MkdirTemp("", "driga-docgen-hooks-") + if err != nil { + return nil, nil, nil, err + } + defer os.RemoveAll(dir) + const bin = "/usr/local/bin/driga" + epoch := time.Unix(0, 0) + + d, err := hooks.ClaudeInstall(filepath.Join(dir, "settings.json"), bin, true, epoch) + if err != nil { + return nil, nil, nil, fmt.Errorf("claude: %w", err) + } + var claudeFile struct { + Hooks map[string][]struct { + Hooks []struct { + Timeout int `json:"timeout"` + } `json:"hooks"` + } `json:"hooks"` + } + if err := json.Unmarshal([]byte(d.After), &claudeFile); err != nil { + return nil, nil, nil, fmt.Errorf("claude: %w", err) + } + for event, groups := range claudeFile.Hooks { + timeout := 0 + for _, g := range groups { + for _, h := range g.Hooks { + timeout = max(timeout, h.Timeout) + } + } + claude = append(claude, hookEvent{event, seconds(timeout, "agent default")}) + } + + d, err = hooks.CodexInstall(filepath.Join(dir, "config.toml"), bin, true, epoch) + if err != nil { + return nil, nil, nil, fmt.Errorf("codex: %w", err) + } + var codexFile struct { + Hooks map[string][]struct { + Hooks []struct { + Timeout int `toml:"timeout"` + } `toml:"hooks"` + } `toml:"hooks"` + } + if err := toml.Unmarshal([]byte(d.After), &codexFile); err != nil { + return nil, nil, nil, fmt.Errorf("codex: %w", err) + } + for event, groups := range codexFile.Hooks { + timeout := 0 + for _, g := range groups { + for _, h := range g.Hooks { + timeout = max(timeout, h.Timeout) + } + } + codex = append(codex, hookEvent{event, seconds(timeout, "agent default")}) + } + + d, err = hooks.CopilotInstall(filepath.Join(dir, "driga.json"), bin, true, epoch) + if err != nil { + return nil, nil, nil, fmt.Errorf("copilot: %w", err) + } + var copilotFile struct { + Hooks map[string][]struct { + TimeoutSec int `json:"timeoutSec"` + } `json:"hooks"` + } + if err := json.Unmarshal([]byte(d.After), &copilotFile); err != nil { + return nil, nil, nil, fmt.Errorf("copilot: %w", err) + } + for event, entries := range copilotFile.Hooks { + timeout := 0 + for _, e := range entries { + timeout = max(timeout, e.TimeoutSec) + } + copilot = append(copilot, hookEvent{event, seconds(timeout, "agent default")}) + } + + for _, list := range [][]hookEvent{claude, codex, copilot} { + if len(list) == 0 { + return nil, nil, nil, fmt.Errorf("an installer proposed no hook events") + } + sort.Slice(list, func(i, j int) bool { return strings.ToLower(list[i].Event) < strings.ToLower(list[j].Event) }) + } + return claude, codex, copilot, nil +} + +func seconds(n int, fallback string) string { + if n == 0 { + return fallback + } + return fmt.Sprintf("%d s", n) +} + +func renderHooks() (string, error) { + claude, codex, copilot, err := installedHooks() + if err != nil { + return "", err + } + var b strings.Builder + frontmatter(&b, + "Hooks", + "Which agent hook events `driga hooks install` writes for Claude Code, Codex and Copilot, with timeouts.", + "The hook events driga installs per agent and their timeouts, generated by running each installer in dry-run mode.", + "You want to know exactly what `driga hooks install` adds to an agent's configuration.", + "You are reviewing a hooks diff before accepting it.", + ) + b.WriteString("Hooks are optional. Without them Driga still reads session files and the\n") + b.WriteString("process table; hooks add lifecycle and attention events, Claude prompt\n") + b.WriteString("answering and Copilot session state. Every install shows a unified diff and asks before\n") + b.WriteString("writing, backs up edited files to `*.driga-bak-`, and uninstall\n") + b.WriteString("removes only Driga's own entries. A hook always exits successfully and\n") + b.WriteString("prints nothing, so a failing hook never blocks the agent.\n\n") + b.WriteString("Each hook runs `driga hook `. The tables below are produced\n") + b.WriteString("by running each installer against an empty configuration, so they list what\n") + b.WriteString("the installer writes.\n\n") + b.WriteString("```sh\ndriga hooks install --dry-run # preview every adapter\ndriga hooks install claude # or codex, copilot, all\ndriga hooks status\ndriga hooks uninstall\n```\n\n") + + section := func(title, file, note string, events []hookEvent) { + fmt.Fprintf(&b, "## %s\n\n%s\n\n", title, note) + fmt.Fprintf(&b, "Written to %s.\n\n", file) + b.WriteString("| Event | Timeout |\n|---|---|\n") + for _, e := range events { + fmt.Fprintf(&b, "| %s | %s |\n", code(e.Event), e.Timeout) + } + b.WriteString("\n") + } + section("Claude Code", "`~/.claude/settings.json` (or under `CLAUDE_CONFIG_DIR`), appended beside existing hooks", + "`PermissionRequest` lets Driga answer permission prompts; its long timeout keeps the prompt open while you decide. The other events record lifecycle and attention.", + claude) + section("Codex", "a marked block in `~/.codex/config.toml` (or `$CODEX_HOME/config.toml`), preserving comments and existing `notify` settings", + "Codex reports permission requests to Driga. Driga does not answer Codex prompts.", + codex) + section("GitHub Copilot CLI", "Driga's own file, `~/.copilot/hooks/driga.json` (or under `COPILOT_HOME`); uninstall deletes only that file", + "Copilot session state comes only from hooks and the process table. Restart running Copilot sessions after installing or removing hooks.", + copilot) + b.WriteString("## Gemini CLI\n\n") + b.WriteString("Driga installs no Gemini hooks. Gemini sessions are read from their chat\n") + b.WriteString("transcripts.\n") + return b.String(), nil +} diff --git a/cmd/driga-docgen/main.go b/cmd/driga-docgen/main.go new file mode 100644 index 00000000..a2b9366a --- /dev/null +++ b/cmd/driga-docgen/main.go @@ -0,0 +1,251 @@ +// Command driga-docgen writes the generated half of the documentation site. +// +// Every reference surface it documents is already enumerated in Go: the Kong +// command tree behind `driga --help`, the settings table behind .env.example, +// the MCP server's own tools/list answer, and the hook installers. Writing them +// again by hand would create a second source that can disagree with the first, +// so this program is the only writer of the pages under +// site/src/content/docs/reference/ that carry the generated marker. +// +// Run `just docs` to rewrite the pages and `just docs-check` (part of +// `just check`) to fail when a committed page is behind the code. Edit this +// generator, never the pages. +package main + +import ( + "bytes" + "flag" + "fmt" + "io" + "os" + "path/filepath" + "sort" + "strings" +) + +// MDX parses HTML comments as JSX, so the marker uses the MDX comment form. +const generatedMarker = "{/* Generated by cmd/driga-docgen. Do not edit by hand; run `just docs` to regenerate. */}" + +func main() { + var ( + out string + check bool + ) + flag.StringVar(&out, "out", "site/src/content/docs/reference", "directory to write generated reference pages into") + flag.BoolVar(&check, "check", false, "fail if the pages on disk differ from what would be generated") + flag.Parse() + + if err := run(out, check, os.Stdout); err != nil { + fmt.Fprintln(os.Stderr, "driga-docgen:", err) + os.Exit(1) + } +} + +func run(out string, check bool, stdout io.Writer) error { + pages, err := generate() + if err != nil { + return err + } + if check { + if err := verify(out, pages); err != nil { + return err + } + fmt.Fprintf(stdout, "driga-docgen: %d generated page(s) match the code\n", len(pages)) + return nil + } + if err := write(out, pages); err != nil { + return err + } + fmt.Fprintf(stdout, "driga-docgen: wrote %d page(s) to %s\n", len(pages), out) + return nil +} + +// generate renders every page, keyed by file name relative to the reference +// directory. +func generate() (map[string]string, error) { + pages := map[string]string{} + cli, err := renderCLI() + if err != nil { + return nil, fmt.Errorf("cli reference: %w", err) + } + pages["cli.mdx"] = cli + pages["settings.mdx"] = renderSettings() + tools, err := renderMCP() + if err != nil { + return nil, fmt.Errorf("mcp reference: %w", err) + } + pages["mcp-tools.mdx"] = tools + hooks, err := renderHooks() + if err != nil { + return nil, fmt.Errorf("hooks reference: %w", err) + } + pages["hooks.mdx"] = hooks + for name, body := range pages { + if !strings.Contains(body, generatedMarker) { + return nil, fmt.Errorf("%s is missing the generated marker", name) + } + } + return pages, nil +} + +func write(out string, pages map[string]string) error { + if err := os.MkdirAll(out, 0o755); err != nil { + return err + } + for name, body := range pages { + if err := os.WriteFile(filepath.Join(out, name), []byte(body), 0o644); err != nil { + return err + } + } + orphans, err := orphaned(out, pages) + if err != nil { + return err + } + for _, path := range orphans { + if err := os.Remove(path); err != nil { + return err + } + } + return nil +} + +// verify compares in both directions: a page that differs or is missing, and a +// marked page that no generator produces any more. +func verify(out string, pages map[string]string) error { + var stale []string + for name, body := range pages { + path := filepath.Join(out, name) + existing, err := os.ReadFile(path) + if err != nil { + stale = append(stale, path+" (missing)") + continue + } + if !bytes.Equal(existing, []byte(body)) { + stale = append(stale, path) + } + } + orphans, err := orphaned(out, pages) + if err != nil { + return err + } + for _, path := range orphans { + stale = append(stale, path+" (no longer generated)") + } + if len(stale) == 0 { + return nil + } + sort.Strings(stale) + return fmt.Errorf("generated reference pages are out of date:\n %s\nrun `just docs` (go run ./cmd/driga-docgen) and commit the result", + strings.Join(stale, "\n ")) +} + +// orphaned lists marked pages in out that the current generator does not +// produce. Hand-written pages carry no marker and are never touched. +func orphaned(out string, pages map[string]string) ([]string, error) { + entries, err := os.ReadDir(out) + if os.IsNotExist(err) { + return nil, nil + } + if err != nil { + return nil, err + } + var orphans []string + for _, entry := range entries { + if entry.IsDir() || !strings.HasSuffix(entry.Name(), ".mdx") { + continue + } + if _, ok := pages[entry.Name()]; ok { + continue + } + path := filepath.Join(out, entry.Name()) + body, err := os.ReadFile(path) + if err != nil { + return nil, err + } + if bytes.Contains(body, []byte(generatedMarker)) { + orphans = append(orphans, path) + } + } + sort.Strings(orphans) + return orphans, nil +} + +// frontmatter writes the shared page header. Values are JSON-quoted, which is +// valid YAML for any string. +func frontmatter(b *strings.Builder, title, description, summary string, readWhen ...string) { + b.WriteString("---\n") + fmt.Fprintf(b, "title: %s\n", quote(title)) + fmt.Fprintf(b, "description: %s\n", quote(description)) + fmt.Fprintf(b, "summary: %s\n", quote(summary)) + if len(readWhen) > 0 { + b.WriteString("read_when:\n") + for _, when := range readWhen { + fmt.Fprintf(b, " - %s\n", quote(when)) + } + } + b.WriteString("generated: true\n") + b.WriteString("---\n\n") + b.WriteString(generatedMarker + "\n\n") +} + +func quote(s string) string { + r := strings.NewReplacer(`\`, `\\`, `"`, `\"`, "\n", `\n`) + return `"` + r.Replace(s) + `"` +} + +// text escapes prose for MDX: braces open expressions and angle brackets open +// JSX, so both are written as literals. Backticked spans are left alone because +// MDX treats code as literal text. +func text(s string) string { + var b strings.Builder + inCode := false + for _, r := range s { + if r == '`' { + inCode = !inCode + b.WriteRune(r) + continue + } + if inCode { + b.WriteRune(r) + continue + } + switch r { + case '{': + b.WriteString(`\{`) + case '}': + b.WriteString(`\}`) + case '<': + b.WriteString("<") + case '>': + b.WriteString(">") + case '*': + b.WriteString(`\*`) + default: + b.WriteRune(r) + } + } + return b.String() +} + +// cell escapes prose for a GFM table cell. +func cell(s string) string { + s = strings.ReplaceAll(text(s), "|", `\|`) + return strings.ReplaceAll(s, "\n", " ") +} + +// code renders a literal as inline code, safe inside a table cell. A literal +// containing a backtick is fenced with two. +func code(s string) string { + s = strings.ReplaceAll(s, "|", `\|`) + if strings.Contains(s, "`") { + return "`` " + s + " ``" + } + return "`" + s + "`" +} + +func plural(n int, word string) string { + if n == 1 { + return fmt.Sprintf("%d %s", n, word) + } + return fmt.Sprintf("%d %ss", n, word) +} diff --git a/cmd/driga-docgen/main_test.go b/cmd/driga-docgen/main_test.go new file mode 100644 index 00000000..13fce020 --- /dev/null +++ b/cmd/driga-docgen/main_test.go @@ -0,0 +1,179 @@ +// The reference pages document the macOS and Linux hook commands; on Windows +// the installers write Windows paths, so the pages are generated and checked +// on Unix only (`just docs`, `just docs-check`, CI's Unix job). + +//go:build !windows + +package main + +import ( + "io" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/alecthomas/kong" + + "github.com/labstack/driga/internal/config" +) + +// The committed reference must match what this generator writes, so currency +// is enforced by `go test ./...` as well as by `just docs-check`. +func TestCommittedPagesMatchTheGenerator(t *testing.T) { + if err := run(filepath.Join("..", "..", "site", "src", "content", "docs", "reference"), true, io.Discard); err != nil { + t.Fatal(err) + } +} + +func generated(t *testing.T) map[string]string { + t.Helper() + pages, err := generate() + if err != nil { + t.Fatal(err) + } + return pages +} + +func TestCLIReferenceCoversEveryVisibleCommandAndFlag(t *testing.T) { + page := generated(t)["cli.mdx"] + app, err := cliModel() + if err != nil { + t.Fatal(err) + } + var walk func(*kong.Node) + walk = func(node *kong.Node) { + for _, child := range node.Children { + if child.Type != kong.CommandNode { + continue + } + heading := "# " + child.FullPath() + "\n" + if child.Hidden { + if strings.Contains(page, heading) { + t.Errorf("hidden command %q is documented", child.FullPath()) + } + continue + } + if !strings.Contains(page, heading) { + t.Errorf("command %q has no section", child.FullPath()) + } + for _, flag := range child.Flags { + if flag.Hidden { + continue + } + if !strings.Contains(page, "--"+flag.Name) { + t.Errorf("%s flag --%s is missing", child.FullPath(), flag.Name) + } + } + walk(child) + } + } + walk(app.Node) + for _, hidden := range []string{"driga hook ", "driga feed", "driga dev", "--chat"} { + if strings.Contains(page, hidden) { + t.Errorf("hidden interface %q leaked into the CLI reference", hidden) + } + } +} + +func TestSettingsReferenceCoversEverySetting(t *testing.T) { + page := generated(t)["settings.mdx"] + for _, s := range config.Settings() { + if !strings.Contains(page, "### "+s.Key+"\n") { + t.Errorf("setting %s has no section", s.Key) + } + if name := s.EnvName(); name != "" && !strings.Contains(page, "`"+name+"`") { + t.Errorf("setting %s does not name %s", s.Key, name) + } + } + for _, s := range config.RuntimeSettings() { + if !strings.Contains(page, "`"+s.Name+"`") { + t.Errorf("runtime name %s is missing", s.Name) + } + } +} + +func TestMCPReferenceSplitsReadAndChatTools(t *testing.T) { + page := generated(t)["mcp-tools.mdx"] + readPart, chatPart, ok := strings.Cut(page, "## Chat tools") + if !ok { + t.Fatal("no Chat tools section") + } + for _, name := range []string{"get_flow", "list_agents", "inspect_setup", "list_cleanup_candidates"} { + if !strings.Contains(readPart, "### "+name+"\n") { + t.Errorf("read tool %s missing", name) + } + } + for _, name := range []string{"answer_prompt", "ack_inbox", "approve", "list_prompts"} { + if strings.Contains(readPart, "### "+name+"\n") { + t.Errorf("chat tool %s documented as served by driga mcp", name) + } + if !strings.Contains(chatPart, "### "+name+"\n") { + t.Errorf("chat tool %s missing", name) + } + } +} + +func TestHooksReferenceReadsTheInstallers(t *testing.T) { + page := generated(t)["hooks.mdx"] + for _, want := range []string{"`PermissionRequest` | 660 s", "`sessionStart` | 3 s", "## Codex"} { + if !strings.Contains(page, want) { + t.Errorf("hooks page lacks %q", want) + } + } +} + +func TestTextEscapesMDX(t *testing.T) { + got := text("Editor command; {cwd} is substituted for in `{cwd}` *now*") + want := "Editor command; \\{cwd\\} is substituted for <dir> in `{cwd}` \\*now\\*" + if got != want { + t.Fatalf("text() = %q, want %q", got, want) + } + if got := cell("a | b\nc"); got != `a \| b c` { + t.Fatalf("cell() = %q", got) + } +} + +func TestVerifyReportsStaleMissingAndOrphanedPages(t *testing.T) { + dir := t.TempDir() + pages := map[string]string{"a.mdx": "A " + generatedMarker, "b.mdx": "B " + generatedMarker} + if err := write(dir, pages); err != nil { + t.Fatal(err) + } + if err := verify(dir, pages); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(filepath.Join(dir, "a.mdx"), []byte("edited"), 0o644); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(filepath.Join(dir, "old.mdx"), []byte(generatedMarker), 0o644); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(filepath.Join(dir, "hand.mdx"), []byte("hand-written"), 0o644); err != nil { + t.Fatal(err) + } + if err := os.Remove(filepath.Join(dir, "b.mdx")); err != nil { + t.Fatal(err) + } + err := verify(dir, pages) + if err == nil { + t.Fatal("verify accepted stale pages") + } + for _, want := range []string{"a.mdx", "b.mdx (missing)", "old.mdx (no longer generated)", "just docs"} { + if !strings.Contains(err.Error(), want) { + t.Errorf("error %q does not mention %q", err, want) + } + } + if strings.Contains(err.Error(), "hand.mdx") { + t.Error("a hand-written page was reported") + } + if err := write(dir, pages); err != nil { + t.Fatal(err) + } + if _, err := os.Stat(filepath.Join(dir, "old.mdx")); !os.IsNotExist(err) { + t.Error("write kept an orphaned generated page") + } + if _, err := os.Stat(filepath.Join(dir, "hand.mdx")); err != nil { + t.Error("write removed a hand-written page") + } +} diff --git a/cmd/driga-docgen/mcp.go b/cmd/driga-docgen/mcp.go new file mode 100644 index 00000000..25710a94 --- /dev/null +++ b/cmd/driga-docgen/mcp.go @@ -0,0 +1,262 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "io" + "sort" + "strings" + + sdk "github.com/modelcontextprotocol/go-sdk/mcp" + + "github.com/labstack/driga/internal/chat" + "github.com/labstack/driga/internal/cli" + drigamcp "github.com/labstack/driga/internal/mcp" +) + +// listTools asks a server for its tools/list answer over an in-memory +// transport: the same question a connecting agent asks, rather than a reading +// of the registration calls. +func listTools(server *sdk.Server) ([]*sdk.Tool, error) { + ctx := context.Background() + a, b := sdk.NewInMemoryTransports() + ss, err := server.Connect(ctx, a, nil) + if err != nil { + return nil, err + } + defer ss.Close() + cs, err := sdk.NewClient(&sdk.Implementation{Name: "driga-docgen", Version: "docs"}, nil).Connect(ctx, b, nil) + if err != nil { + return nil, err + } + defer cs.Close() + var tools []*sdk.Tool + for tool, err := range cs.Tools(ctx, nil) { + if err != nil { + return nil, err + } + tools = append(tools, tool) + } + return tools, nil +} + +func renderMCP() (string, error) { + // `driga mcp` serves exactly this server. + read, err := listTools(cli.NewMCPServer(&cli.Globals{Stderr: io.Discard})) + if err != nil { + return "", err + } + // Chat's private `mcp --chat` child adds prompts and action tools. + full, err := listTools(drigamcp.NewServer(drigamcp.Options{ + Chat: true, + Prompts: func(context.Context) ([]chat.Prompt, error) { return nil, nil }, + })) + if err != nil { + return "", err + } + readNames := map[string]bool{} + for _, tool := range read { + readNames[tool.Name] = true + } + var chatOnly []*sdk.Tool + for _, tool := range full { + if !readNames[tool.Name] { + chatOnly = append(chatOnly, tool) + } + } + for _, tools := range [][]*sdk.Tool{read, chatOnly} { + sort.Slice(tools, func(i, j int) bool { return tools[i].Name < tools[j].Name }) + } + for _, tool := range read { + if tool.Annotations == nil || !tool.Annotations.ReadOnlyHint { + return "", fmt.Errorf("tool %s is served by `driga mcp` without readOnlyHint, but the page states that server is read-only", tool.Name) + } + } + + var b strings.Builder + frontmatter(&b, + "MCP tools", + "Every tool driga's MCP server exposes, with its inputs, generated from the server's tools/list answer.", + fmt.Sprintf("The %s `driga mcp` serves to your agents and the %s only Driga's own Chat receives, with their inputs.", plural(len(read), "read-only tool"), plural(len(chatOnly), "tool")), + "You are connecting an agent to driga over MCP and want to know what it can call.", + "You need a tool's exact input fields, defaults or limits.", + ) + b.WriteString("`driga mcp` serves read-only tools over stdio. Every response is the same\n") + b.WriteString("schema-2 view envelope as the CLI's `--json` output, and reading never\n") + b.WriteString("acknowledges inbox items. Without a running collector the tools answer from a\n") + b.WriteString("labelled one-shot snapshot with no history. Registration is covered in\n") + b.WriteString("[Connect an agent over MCP](/guides/mcp).\n\n") + + suffix := sharedSuffix(read) + if suffix != "" { + b.WriteString("Every read tool shares this contract:\n\n") + fmt.Fprintf(&b, "> %s\n\n", text(suffix)) + } + + fmt.Fprintf(&b, "## Read tools\n\nServed by `driga mcp`. All %d are annotated read-only.\n\n", len(read)) + toolIndex(&b, read) + for _, tool := range read { + if err := renderTool(&b, tool, suffix); err != nil { + return "", err + } + } + + b.WriteString("## Chat tools\n\n") + b.WriteString("Offered only to Driga's own Chat turn through a private MCP child, never by\n") + b.WriteString("`driga mcp`. Action tools run through Chat's approval cards and trust modes;\n") + b.WriteString("see [Chat and actions](/guides/chat).\n\n") + toolIndex(&b, chatOnly) + for _, tool := range chatOnly { + if err := renderTool(&b, tool, ""); err != nil { + return "", err + } + } + return strings.TrimRight(b.String(), "\n") + "\n", nil +} + +func toolIndex(b *strings.Builder, tools []*sdk.Tool) { + b.WriteString("| Tool | Read-only |\n|---|---|\n") + for _, tool := range tools { + ro := "no" + if tool.Annotations != nil && tool.Annotations.ReadOnlyHint { + ro = "yes" + } + fmt.Fprintf(b, "| [%s](#%s) | %s |\n", code(tool.Name), tool.Name, ro) + } + b.WriteString("\n") +} + +type schemaProp struct { + Type json.RawMessage `json:"type"` + Description string `json:"description"` + Enum []any `json:"enum"` + Default json.RawMessage `json:"default"` + Minimum *float64 `json:"minimum"` + Maximum *float64 `json:"maximum"` + MinLength *int `json:"minLength"` +} + +type objectSchema struct { + Properties map[string]schemaProp `json:"properties"` + Required []string `json:"required"` +} + +func renderTool(b *strings.Builder, tool *sdk.Tool, suffix string) error { + fmt.Fprintf(b, "### %s\n\n", tool.Name) + description := strings.TrimSpace(strings.TrimSuffix(tool.Description, suffix)) + fmt.Fprintf(b, "%s\n\n", text(description)) + raw, err := json.Marshal(tool.InputSchema) + if err != nil { + return err + } + var schema objectSchema + if err := json.Unmarshal(raw, &schema); err != nil { + return fmt.Errorf("%s input schema: %w", tool.Name, err) + } + if len(schema.Properties) == 0 { + b.WriteString("No inputs.\n\n") + return nil + } + required := map[string]bool{} + for _, name := range schema.Required { + required[name] = true + } + names := make([]string, 0, len(schema.Properties)) + for name := range schema.Properties { + names = append(names, name) + } + sort.Strings(names) + b.WriteString("| Input | Type | Required | Description |\n|---|---|---|---|\n") + for _, name := range names { + p := schema.Properties[name] + req := "" + if required[name] { + req = "yes" + } + fmt.Fprintf(b, "| %s | %s | %s | %s |\n", code(name), schemaType(p.Type), req, propDescription(p)) + } + b.WriteString("\n") + return nil +} + +func schemaType(raw json.RawMessage) string { + if len(raw) == 0 { + return "any" + } + var one string + if json.Unmarshal(raw, &one) == nil { + return one + } + var many []string + if json.Unmarshal(raw, &many) == nil { + return strings.Join(many, " or ") + } + return string(raw) +} + +func propDescription(p schemaProp) string { + parts := []string{} + if p.Description != "" { + parts = append(parts, cell(sentence(p.Description))) + } + // Limits the description already states are not repeated. + said := strings.ToLower(p.Description) + if len(p.Enum) > 0 && !mentionsAll(said, p.Enum) { + values := make([]string, len(p.Enum)) + for i, v := range p.Enum { + values[i] = code(fmt.Sprint(v)) + } + parts = append(parts, "One of "+strings.Join(values, ", ")+".") + } + switch { + case p.Minimum != nil && p.Maximum != nil && !strings.Contains(said, fmt.Sprintf("%g", *p.Maximum)): + parts = append(parts, fmt.Sprintf("Range %g–%g.", *p.Minimum, *p.Maximum)) + case p.Minimum != nil && p.Maximum == nil: + parts = append(parts, fmt.Sprintf("Minimum %g.", *p.Minimum)) + } + if p.MinLength != nil && *p.MinLength > 0 { + parts = append(parts, "Must not be empty.") + } + if len(p.Default) > 0 && !strings.Contains(said, "default") { + parts = append(parts, "Default "+code(string(p.Default))+".") + } + return strings.Join(parts, " ") +} + +func mentionsAll(text string, values []any) bool { + for _, v := range values { + if !strings.Contains(text, strings.ToLower(fmt.Sprint(v))) { + return false + } + } + return true +} + +// sharedSuffix returns the closing sentences every tool description repeats, +// so the page states that contract once. It is cut at a sentence boundary. +func sharedSuffix(tools []*sdk.Tool) string { + if len(tools) < 2 { + return "" + } + suffix := tools[0].Description + for _, tool := range tools[1:] { + d := tool.Description + n := 0 + for n < len(suffix) && n < len(d) && suffix[len(suffix)-1-n] == d[len(d)-1-n] { + n++ + } + suffix = suffix[len(suffix)-n:] + } + i := strings.Index(suffix, ". ") + if i < 0 { + if strings.HasPrefix(suffix, " ") { + return strings.TrimSpace(suffix) + } + return "" + } + if strings.HasPrefix(suffix, " ") { + return strings.TrimSpace(suffix) + } + return strings.TrimSpace(suffix[i+1:]) +} diff --git a/cmd/driga-docgen/settings.go b/cmd/driga-docgen/settings.go new file mode 100644 index 00000000..05e54ac2 --- /dev/null +++ b/cmd/driga-docgen/settings.go @@ -0,0 +1,138 @@ +package main + +import ( + "fmt" + "reflect" + "strings" + + "github.com/labstack/driga/internal/config" +) + +// settingGroups names each TOML table. A setting whose table is missing here +// fails generation rather than landing under a heading nobody chose. +var settingGroups = []struct{ prefix, title, intro string }{ + {"", "General", "Top-level keys of `config.toml`."}, + {"ui", "Terminal UI", "The `[ui]` table."}, + {"adapters", "Agent adapters", "One `[adapters.]` table per agent."}, + {"orphans", "Orphans", "The `[orphans]` table."}, + {"machine", "Machine health", "The `[machine]` table."}, + {"summaries", "Summaries", "The `[summaries]` table. Summaries run your installed Claude CLI on demand."}, + {"cleanup", "Cleanup", "The `[cleanup]` table."}, + {"fleet", "Fleet", "The `[fleet]` table for paired machines."}, + {"inbox", "Inbox and alerts", "The `[inbox]` table."}, + {"intake", "OTLP intake", "The `[intake]` table for the optional loopback OTLP receiver."}, +} + +func settingGroup(key string) string { + group, _, ok := strings.Cut(key, ".") + if !ok { + return "" + } + return group +} + +func renderSettings() string { + settings := config.Settings() + var b strings.Builder + frontmatter(&b, + "Settings reference", + "Every driga configuration key with its type, default, allowed values and DRIGA_* environment variable.", + "Every configuration key, its type, default, allowed values and environment variable, generated from the settings table that also writes .env.example.", + "You want to change a default in config.toml or through the environment.", + "A DRIGA_* variable is rejected as unknown and you want the valid names.", + ) + b.WriteString("Driga reads `config.toml` and the process environment. Precedence is explicit\n") + b.WriteString("flags, then environment, then the TOML file, then the defaults below. Empty\n") + b.WriteString("environment values count as unset, and dotenv files are never loaded. An\n") + b.WriteString("unknown `DRIGA_*` name is an error. Restart the collector after changing its\n") + b.WriteString("configuration; the CLI and hooks reload on every invocation.\n\n") + b.WriteString("Find and edit the file with `driga config path`, `driga config show` and\n") + b.WriteString("`driga config edit`. List settings are file-only and have no environment\n") + b.WriteString("variable.\n\n") + + b.WriteString("## Summary\n\n") + b.WriteString("| Key | Type | Default | Environment |\n|---|---|---|---|\n") + for _, s := range settings { + env := "file only" + if name := s.EnvName(); name != "" { + env = code(name) + } + fmt.Fprintf(&b, "| [%s](#%s) | %s | %s | %s |\n", code(s.Key), settingAnchor(s.Key), s.Type, defaultValue(s.Default), env) + } + b.WriteString("\n") + + seen := 0 + for _, group := range settingGroups { + var members []config.Setting + for _, s := range settings { + if settingGroup(s.Key) == group.prefix { + members = append(members, s) + } + } + if len(members) == 0 { + continue + } + seen += len(members) + fmt.Fprintf(&b, "## %s\n\n%s\n\n", group.title, text(group.intro)) + for _, s := range members { + fmt.Fprintf(&b, "### %s\n\n", s.Key) + fmt.Fprintf(&b, "%s\n\n", text(sentence(s.Purpose))) + b.WriteString("| Type | Default | Allowed | Environment |\n|---|---|---|---|\n") + env := "file only" + if name := s.EnvName(); name != "" { + env = code(name) + } + fmt.Fprintf(&b, "| %s | %s | %s | %s |\n\n", s.Type, defaultValue(s.Default), cell(s.Range), env) + } + } + if seen != len(settings) { + panic(fmt.Sprintf("settings reference covers %d of %d settings; add the missing table to settingGroups", seen, len(settings))) + } + + var paths, internal []config.RuntimeSetting + for _, s := range config.RuntimeSettings() { + if s.Type == "path" && s.Default != "unset" { + paths = append(paths, s) + } else { + internal = append(internal, s) + } + } + b.WriteString("## Path overrides\n\n") + b.WriteString("Relative values resolve against the working directory at startup.\n\n") + b.WriteString("| Variable | Default | Purpose |\n|---|---|---|\n") + for _, s := range paths { + fmt.Fprintf(&b, "| %s | %s | %s |\n", code(s.Name), cell(s.Default), cell(s.Purpose)) + } + b.WriteString("\n## Internal names\n\n") + b.WriteString("Driga sets these for its own child processes and tests. They are accepted so\n") + b.WriteString("those processes start cleanly; they are not configuration.\n\n") + b.WriteString("| Variable | Kind | Purpose |\n|---|---|---|\n") + for _, s := range internal { + fmt.Fprintf(&b, "| %s | %s | %s |\n", code(s.Name), s.Type, cell(s.Purpose)) + } + return strings.TrimRight(b.String(), "\n") + "\n" +} + +func defaultValue(v any) string { + rv := reflect.ValueOf(v) + if rv.Kind() == reflect.Slice { + if rv.Len() == 0 { + return "empty" + } + items := make([]string, rv.Len()) + for i := range rv.Len() { + items[i] = code(fmt.Sprint(rv.Index(i).Interface())) + } + return strings.Join(items, ", ") + } + s := fmt.Sprint(v) + if s == "" { + return "empty" + } + return code(s) +} + +// settingAnchor is the slug Starlight gives a heading that is the key itself. +func settingAnchor(key string) string { + return strings.ReplaceAll(strings.ToLower(key), ".", "") +} diff --git a/internal/cli/root.go b/internal/cli/root.go index 19ed6375..c722987d 100644 --- a/internal/cli/root.go +++ b/internal/cli/root.go @@ -149,13 +149,10 @@ func run(args []string, version string, stdin io.Reader, stdout, stderr io.Write } } exit := -1 - parser, err := kong.New(&root, - kong.Name("driga"), + parser, err := NewParser(&root, kong.Vars{"version": "driga " + version}, - kong.Description("Watch AI coding agent sessions across your machines and projects."), kong.Writers(stdout, stderr), kong.Exit(func(code int) { exit = code; panic(exitPanic{}) }), - kong.Bind(&root.Globals), ) if err != nil { report(err, 2) @@ -203,6 +200,17 @@ func run(args []string, version string, stdin io.Reader, stdout, stderr io.Write return code } +// NewParser builds the kong parser for the full command tree. The CLI and the +// documentation generator (cmd/driga-docgen) share it, so `driga --help` and +// the published command reference come from one model. +func NewParser(root *Root, options ...kong.Option) (*kong.Kong, error) { + return kong.New(root, append([]kong.Option{ + kong.Name("driga"), + kong.Description("Watch AI coding agent sessions across your machines and projects."), + kong.Bind(&root.Globals), + }, options...)...) +} + type exitPanic struct{} func interactive(in io.Reader, out io.Writer) bool { diff --git a/internal/config/settings.go b/internal/config/settings.go index c8eb5df1..0b016068 100644 --- a/internal/config/settings.go +++ b/internal/config/settings.go @@ -83,7 +83,7 @@ func (s Setting) Value(c Config) any { // runtimeSettings documents the explicit namespace extensions. No wildcard // exemptions are accepted. Internal names are inherited by helper/test processes. -var runtimeSettings = []struct{ Name, Type, Default, Purpose string }{ +var runtimeSettings = []RuntimeSetting{ {"DRIGA_CONFIG", "path", "$XDG_CONFIG_HOME/driga/config.toml or ~/.config/driga/config.toml", "Configuration file override."}, {"DRIGA_DATA_DIR", "path", "Linux: $XDG_DATA_HOME/driga or ~/.local/share/driga; macOS: ~/Library/Application Support/driga", "Database and fleet data directory override."}, {"DRIGA_SPOOL_DIR", "path", "Linux: $XDG_STATE_HOME/driga/events or ~/.local/state/driga/events; macOS: ~/Library/Application Support/driga/events", "Hook/ack spool directory override."}, @@ -100,6 +100,16 @@ var runtimeSettings = []struct{ Name, Type, Default, Purpose string }{ {"DRIGA_TEST_MCP_PROCESS", "marker", "unset", "1 selects isolated MCP-test child."}, } +// RuntimeSetting is an environment name outside the settings table: a path +// override or an internal/test marker. +type RuntimeSetting struct{ Name, Type, Default, Purpose string } + +// RuntimeSettings returns the explicit DRIGA_* namespace extensions, in stable +// display order. +func RuntimeSettings() []RuntimeSetting { + return append([]RuntimeSetting(nil), runtimeSettings...) +} + func Default() Config { c := Config{Adapters: map[string]AdapterConfig{}} for _, s := range settings { diff --git a/site/.gitignore b/site/.gitignore new file mode 100644 index 00000000..ab50e283 --- /dev/null +++ b/site/.gitignore @@ -0,0 +1,6 @@ +dist/ +node_modules/ +.astro/ + +# Local renders of the footage, for astro dev only; published media lives in R2. +public/media-local/ diff --git a/site/astro.config.mjs b/site/astro.config.mjs new file mode 100644 index 00000000..3f9b7b94 --- /dev/null +++ b/site/astro.config.mjs @@ -0,0 +1,125 @@ +// @ts-check +import { defineConfig } from "astro/config"; +import starlight from "@astrojs/starlight"; +import catppuccin from "@catppuccin/starlight"; +import { unified } from "@astrojs/markdown-remark"; +import { rehypeTableWrap } from "./src/plugins/rehype-table-wrap.mjs"; + +// The site URL is what makes llms.txt and the Markdown alternates absolute. +// An agent that resolves a relative link against the wrong origin fetches +// nothing, so this is set rather than inferred. +const SITE = process.env.SITE_URL ?? "https://driga.dev"; + +export default defineConfig({ + site: SITE, + trailingSlash: "never", + build: { format: "file" }, + // A fixed local-development port. strictPort belongs to Vite, not Astro's + // `server`, so a busy port is an error rather than a silent move elsewhere. + server: { port: 7431 }, + vite: { server: { strictPort: true } }, + markdown: { processor: unified({ rehypePlugins: [rehypeTableWrap] }) }, + integrations: [ + starlight({ + title: "Driga", + // The separator between a page's title and the site's: "Install · Driga". + titleDelimiter: "·", + description: + "See what your coding agents are doing, and what needs you. A CLI, terminal UI and local web dashboard for Claude Code, Codex, Gemini and Copilot sessions.", + logo: { + light: "./src/assets/lockup.svg", + dark: "./src/assets/lockup-white.svg", + replacesTitle: true, + }, + social: [ + { + icon: "github", + label: "GitHub", + href: "https://github.com/labstack/driga", + }, + ], + editLink: { + baseUrl: "https://github.com/labstack/driga/edit/main/site/", + }, + // Latte and Mocha are the app's own two themes (`ui.theme`), so the + // documentation and the product it documents share one palette. + plugins: [ + catppuccin({ + dark: { flavor: "mocha", accent: "mauve" }, + light: { flavor: "latte", accent: "mauve" }, + }), + ], + // Expressive Code's syntax palette is independent of Starlight's tokens; + // without naming themes the code blocks keep GitHub's colours inside a + // Catppuccin frame. + expressiveCode: { + themes: ["catppuccin-mocha", "catppuccin-latte"], + styleOverrides: { borderColor: "var(--sl-color-gray-5)" }, + }, + customCss: ["./src/styles/driga.css"], + components: { + SocialIcons: "./src/components/SocialIcons.astro", + // Advertises the Markdown alternate for the current page, so an agent + // that reads the HTML head never has to parse the HTML body. + Head: "./src/components/Head.astro", + // Rendered in place of the title on the landing page, the only page + // with `hero` frontmatter. + Hero: "./src/components/landing/Hero.astro", + // Starlight's own footer, minus the documentation affordances on the + // splash page. + Footer: "./src/components/Footer.astro", + // Adds the site footer band below splash content. + PageFrame: "./src/components/PageFrame.astro", + }, + // Starlight derives the canonical URL from the on-disk file name, which + // under `build.format: "file"` carries a `.html` nothing else uses. + routeMiddleware: "./src/starlight-route-data.ts", + lastUpdated: true, + pagination: true, + favicon: "/favicon.svg", + head: [ + { tag: "link", attrs: { rel: "apple-touch-icon", href: "/apple-touch-icon.png" } }, + ], + sidebar: [ + { + label: "Start here", + items: [ + { label: "What Driga is", slug: "start/what-driga-is" }, + { label: "Install", slug: "start/install" }, + { label: "First run", slug: "start/first-run" }, + ], + }, + { + label: "Guides", + items: [ + { label: "Flow", slug: "guides/flow" }, + { label: "Needs you and prompts", slug: "guides/needs-you" }, + { label: "Chat and actions", slug: "guides/chat" }, + { label: "Notifications", slug: "guides/notifications" }, + { label: "Projects and machines", slug: "guides/projects-and-machines" }, + { label: "Paired machines", slug: "guides/fleet" }, + { label: "Cleanup", slug: "guides/cleanup" }, + { label: "Connect an agent over MCP", slug: "guides/mcp" }, + { label: "Windows", slug: "guides/windows" }, + ], + }, + { + label: "Reference", + items: [ + { label: "CLI", slug: "reference/cli" }, + { label: "Settings", slug: "reference/settings" }, + { label: "MCP tools", slug: "reference/mcp-tools" }, + { label: "Hooks", slug: "reference/hooks" }, + ], + }, + { + label: "Explanation", + items: [ + { label: "How Driga observes sessions", slug: "explanation/how-driga-observes" }, + { label: "Privacy and data", slug: "explanation/privacy-and-data" }, + ], + }, + ], + }), + ], +}); diff --git a/site/footage/.gitignore b/site/footage/.gitignore new file mode 100644 index 00000000..ed1bf778 --- /dev/null +++ b/site/footage/.gitignore @@ -0,0 +1,2 @@ +out/ +node_modules/ diff --git a/site/footage/film/Root.tsx b/site/footage/film/Root.tsx new file mode 100644 index 00000000..c4645def --- /dev/null +++ b/site/footage/film/Root.tsx @@ -0,0 +1,116 @@ +import { loadFont as loadGeist } from "@remotion/google-fonts/Geist"; +import { loadFont as loadMono } from "@remotion/google-fonts/GeistMono"; +import type { ReactNode } from "react"; +import { AbsoluteFill, Composition, Img, interpolate, OffthreadVideo, Sequence, staticFile, useCurrentFrame } from "remotion"; +import cut from "./cut.json"; + +// Every moving picture here is a real-time recording of the real driga binary +// on driga-demo's scripted sessions (flow.tape, web.mjs). This file only cuts +// those takes, crops the feature loops, and puts the browser take in a browser +// window: no zoom animation, no speed change, no captions. cut.json holds the +// moments and crops, and render.mjs reads the same file for the chapters. + +const { fontFamily: sans } = loadGeist(); +const { fontFamily: mono } = loadMono(); +const { fps, takes, crops } = cut; +const s = (seconds: number) => Math.round(seconds * fps); +type Theme = "dark" | "light"; + +// Catppuccin Mocha and Latte, as on driga.dev. +const palette = { + dark: { page: "#11111b", bar: "#1e1e2e", field: "#181825", muted: "#9399b2", text: "#cdd6f4", line: "#313244" }, + light: { page: "#dce0e8", bar: "#e6e9ef", field: "#ccd0da", muted: "#5c5f77", text: "#4c4f69", line: "#bcc0cc" }, +}; + +// The terminal take already carries its window (VHS draws it). +function Terminal({ src, from }: { src: string; from: number }) { + return ; +} + +// The browser take, in a window matching the terminal's margin and corners. +function Browser({ theme, from }: { theme: Theme; from: number }) { + const p = palette[theme]; + return ( + +
+
+ {["#ff5f57", "#febc2e", "#28c840"].map((dot) => )} +
+ 127.0.0.1 · driga web +
+ +
+ +
+
+ ); +} + +// One panel of the detail take, scaled to fill the loop's frame. +function Crop({ theme, from, crop }: { theme: Theme; from: number; crop: { x: number; y: number; width: number; height: number } }) { + const scale = 1200 / crop.width; + return ( + + + + ); +} + +function EndCard({ theme }: { theme: Theme }) { + const p = palette[theme]; + const frame = useCurrentFrame(); + const opacity = interpolate(frame, [0, 10], [0, 1], { extrapolateRight: "clamp" }); + return ( + + +
+ $brew install --cask labstack/tap/driga +
+
+ ); +} + +type Shot = [length: number, node: ReactNode]; + +function Cut({ shots }: { shots: Shot[] }) { + let at = 0; + return ( + + {shots.map(([length, node], i) => { + const from = at; + at += s(length); + return {node}; + })} + + ); +} + +const { tui, web, machines } = takes; + +// The terminal from `driga` typed to an answered prompt, the same prompt in +// the browser, then the install command. +const films: Record Shot[]> = { + hero: (theme) => [ + [tui.answered - tui.typed, ], + [web.selected - web.prompt, ], + [cut.hero.end, ], + ], + needs: (theme) => [[web.allowed - web.prompt + 1.5, ]], + flow: (theme) => [[web.selected - web.overlap + 2, ]], + machines: (theme) => [[machines.length, ]], +}; + +const total = (shots: Shot[]) => shots.reduce((sum, [length]) => sum + s(length), 0); + +export function Root() { + return ( + <> + {Object.entries(films).flatMap(([id, film]) => (["dark", "light"] as const).map((theme) => { + const shots = film(theme); + const [width, height] = id === "hero" ? [1920, 1080] : [1200, 900]; + return } width={width} height={height} fps={fps} durationInFrames={total(shots)} />; + }))} + + ); +} diff --git a/site/footage/film/cut.json b/site/footage/film/cut.json new file mode 100644 index 00000000..a16fbcf0 --- /dev/null +++ b/site/footage/film/cut.json @@ -0,0 +1,13 @@ +{ + "fps": 30, + "takes": { + "tui": { "typed": 1.4, "answered": 11.8 }, + "machines": { "start": 14.1, "length": 3.2 }, + "web": { "prompt": 8, "allowed": 13.5, "overlap": 15, "selected": 18.5 } + }, + "hero": { "end": 3, "poster": 8 }, + "crops": { + "needs": { "x": 1290, "y": 220, "width": 620, "height": 465 }, + "flow": { "x": 0, "y": 112, "width": 1290, "height": 968 } + } +} diff --git a/site/footage/film/index.ts b/site/footage/film/index.ts new file mode 100644 index 00000000..e78af8ba --- /dev/null +++ b/site/footage/film/index.ts @@ -0,0 +1,4 @@ +import { registerRoot } from "remotion"; +import { Root } from "./Root"; + +registerRoot(Root); diff --git a/site/footage/flow.tape b/site/footage/flow.tape new file mode 100644 index 00000000..5e5ab267 --- /dev/null +++ b/site/footage/flow.tape @@ -0,0 +1,59 @@ +# One continuous, real-time take of the real `driga` terminal UI on +# driga-demo's scripted sessions: type driga, watch workers start, answer the +# permission prompt, look at Machines. Run through `just site-footage`; +# FOOTAGE_DEMO, FOOTAGE_DRIGA, FOOTAGE_DIR and FOOTAGE_UI come from it, and +# record.sh writes a light copy of this tape (theme, fill, output) and a +# narrower copy for the Machines loop. +Output out/tui-dark.mp4 + +Set Shell "bash" +Set FontFamily "JetBrainsMono Nerd Font Mono" +Set FontSize 24 +Set Width 1920 +Set Height 1080 +Set Padding 28 +Set Margin 44 +Set MarginFill "#11111b" +Set WindowBar Colorful +Set WindowBarSize 44 +Set BorderRadius 14 +Set Framerate 30 +Set Theme "Catppuccin Mocha" +Set TypingSpeed 90ms +Set CursorBlink false + +Hide +Type `export HOME="$FOOTAGE_DIR/home" DRIGA_DATA_DIR="$FOOTAGE_DIR/data" DRIGA_SPOOL_DIR="$FOOTAGE_DIR/data/events" DRIGA_CONFIG="$FOOTAGE_DIR/data/config.toml" DRIGA_UI_THEME="$FOOTAGE_UI" COLORTERM=truecolor; mkdir -p "$HOME"; driga() { "$FOOTAGE_DRIGA" "$@"; }; PS1='\[\e[38;2;203;166;247m\]~/code/atlas\[\e[0m\] \[\e[38;2;166;227;161m\]main\[\e[0m\] $ '` +Enter +# The demo's clock starts here: workers at 3 s and 5 s, the prompt at 8 s. +# Without a live demo the viewer would snapshot this machine: wait for it, +# and give up rather than film a snapshot. +Type `("$FOOTAGE_DEMO" --data-dir "$DRIGA_DATA_DIR" >/dev/null 2>&1 &); for i in $(seq 100); do "$FOOTAGE_DRIGA" summary --json 2>/dev/null | grep -q '"mode": *"daemon"' && break; sleep 0.1; done; "$FOOTAGE_DRIGA" summary --json 2>/dev/null | grep -q '"mode": *"daemon"' && clear && echo "demo-$((6*7))-ready"` +Enter +Wait+Screen@15s /demo-42-ready/ +Type "clear" +Enter +Sleep 300ms +Show + +Sleep 700ms +Type "driga" +Sleep 400ms +Enter +Wait+Screen@15s /daemon/ +Wait+Screen@30s /y Allow/ +Sleep 2.5s +Tab +Sleep 1.2s +Type "y" +Sleep 3s +Type "2" +Sleep 3.5s +Type "0" +Sleep 2s + +Hide +Type "q" +Sleep 300ms +Type `pkill -f "driga-demo --data-dir $DRIGA_DATA_DIR"` +Enter diff --git a/site/footage/package-lock.json b/site/footage/package-lock.json new file mode 100644 index 00000000..8fc82da7 --- /dev/null +++ b/site/footage/package-lock.json @@ -0,0 +1,4345 @@ +{ + "name": "driga-footage", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "driga-footage", + "devDependencies": { + "@remotion/cli": "4.0.538", + "@remotion/google-fonts": "^4.0.538", + "@remotion/media": "4.0.538", + "@types/react": "19.2.2", + "playwright": "1.64.1", + "react": "19.2.0", + "react-dom": "19.2.0", + "remotion": "4.0.538", + "typescript": "6.0.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.11.tgz", + "integrity": "sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.11" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.11.tgz", + "integrity": "sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.11" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.11.tgz", + "integrity": "sha512-snZbO7MEDOof+hvNa97EjEY7qD7h2kwvQr5AJC3ZhQudKW5dnej6k3kP9NQV88hJwaS8vDqRLFo9rivLEhle2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.10.tgz", + "integrity": "sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.11.tgz", + "integrity": "sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.11" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.10.tgz", + "integrity": "sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.9", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.11.tgz", + "integrity": "sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.11" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mediabunny/aac-encoder": { + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/@mediabunny/aac-encoder/-/aac-encoder-1.62.0.tgz", + "integrity": "sha512-BtGaX3GVGgfQzbqeuqeKAOvHF2lhV70FO3T2orAr4Lr6YklRBOaggfRsKEp93cd6Y7DQab9GFYAuURa1DksCYw==", + "dev": true, + "license": "MPL-2.0", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/Vanilagy" + }, + "peerDependencies": { + "mediabunny": "^1.0.0" + } + }, + "node_modules/@mediabunny/flac-encoder": { + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/@mediabunny/flac-encoder/-/flac-encoder-1.62.0.tgz", + "integrity": "sha512-ZxyElacW8o61mydIXVzYClv6E0ULkXcq9Aup+GQGpuaHKaZPF1y8S5gGrs4rFkr1s0bZ7iYGYPxHeGrg7J1yjg==", + "dev": true, + "license": "MPL-2.0", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/Vanilagy" + }, + "peerDependencies": { + "mediabunny": "^1.0.0" + } + }, + "node_modules/@mediabunny/mp3-encoder": { + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/@mediabunny/mp3-encoder/-/mp3-encoder-1.62.0.tgz", + "integrity": "sha512-72yrJXFO+qkFurWzVpkTu7e5yVF6qFB0mmyaMcg7Ztwz5a+bSvuitkaIY82FBk5vM7euCKzFuqVwOzH0YUCcLg==", + "dev": true, + "license": "MPL-2.0", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/Vanilagy" + }, + "peerDependencies": { + "mediabunny": "^1.0.0" + } + }, + "node_modules/@module-federation/error-codes": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.22.0.tgz", + "integrity": "sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@module-federation/runtime": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.22.0.tgz", + "integrity": "sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/runtime-core": "0.22.0", + "@module-federation/sdk": "0.22.0" + } + }, + "node_modules/@module-federation/runtime-core": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz", + "integrity": "sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/sdk": "0.22.0" + } + }, + "node_modules/@module-federation/runtime-tools": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz", + "integrity": "sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/webpack-bundler-runtime": "0.22.0" + } + }, + "node_modules/@module-federation/sdk": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.22.0.tgz", + "integrity": "sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz", + "integrity": "sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/sdk": "0.22.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", + "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@tybys/wasm-util": "^0.10.1" + } + }, + "node_modules/@remotion/bundler": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/bundler/-/bundler-4.0.538.tgz", + "integrity": "sha512-8chqxvsKXhh3Wo0UQufKr54lVp5NsJRm0PhFHcKv5CzLSyWASQD1wG4w9jWOMDCT1A7YPulFGqoDGlFWYaFR0A==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@remotion/studio": "4.0.538", + "@remotion/studio-shared": "4.0.538", + "@remotion/timeline-utils": "4.0.538", + "@rspack/core": "1.7.11", + "@rspack/plugin-react-refresh": "1.6.1", + "css-loader": "7.1.4", + "esbuild": "0.28.1", + "react-refresh": "0.18.0", + "remotion": "4.0.538", + "style-loader": "4.0.0", + "webpack": "5.105.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/bundler/node_modules/webpack": { + "version": "5.105.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", + "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.19.0", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@remotion/captions": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/captions/-/captions-4.0.538.tgz", + "integrity": "sha512-ADDnP8QxU7hDtjaE2PuS6UeyHRtfvkomXBKmK8M9LlC98+iuNEAeMGw02T4p15wDzEER44QDPG09K9kKBnWqUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@remotion/cli": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/cli/-/cli-4.0.538.tgz", + "integrity": "sha512-4JN4ywRT2gj+HrpFrFvl7SdyUoRBZgN61jnvxvaLUdWZClchIvx5/Fwk9/dXahxf//yMd5d6vEdJcOFsyZw90w==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@babel/parser": "7.24.1", + "@remotion/bundler": "4.0.538", + "@remotion/codemods": "4.0.538", + "@remotion/media-utils": "4.0.538", + "@remotion/player": "4.0.538", + "@remotion/renderer": "4.0.538", + "@remotion/studio": "4.0.538", + "@remotion/studio-server": "4.0.538", + "@remotion/studio-shared": "4.0.538", + "dotenv": "17.3.1", + "mediabunny": "1.62.0", + "minimist": "1.2.6", + "prompts": "2.4.2", + "remotion": "4.0.538", + "semver": "7.5.3" + }, + "bin": { + "remotion": "remotion-cli.js", + "remotionb": "remotionb-cli.js", + "remotiond": "remotiond-cli.js" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/codemods": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/codemods/-/codemods-4.0.538.tgz", + "integrity": "sha512-m+oASCDQa1+22cANXp97ZwZ+ZvnuWZaSFqEFPpVF6RajssJRcn+npr9UCFleTJrx7Fm2bOVVdmFtPTuXdT8+Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "7.24.1", + "@babel/types": "7.24.0", + "@remotion/studio-protocol": "4.0.538", + "@remotion/studio-shared": "4.0.538", + "ast-types": "0.16.1", + "recast": "0.23.21", + "remotion": "4.0.538" + } + }, + "node_modules/@remotion/compositor-darwin-arm64": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-darwin-arm64/-/compositor-darwin-arm64-4.0.538.tgz", + "integrity": "sha512-VV4f68T9UGLjuumo1BycjKwgPFr5b6yLkznFp5NufScK8wIe+w34rRQ6ZMO2SEEwr+q97FkgMXHu0fgB8UTQmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@remotion/compositor-darwin-x64": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-darwin-x64/-/compositor-darwin-x64-4.0.538.tgz", + "integrity": "sha512-PSKUGDfZuvkpUsxlrUAeXz49gwJ8DIlArIIxldO35h5aPF10s8IY92vVz4EXuT/ETfGDsb9X9lgmlsy51bbb6g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@remotion/compositor-linux-arm64-gnu": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-linux-arm64-gnu/-/compositor-linux-arm64-gnu-4.0.538.tgz", + "integrity": "sha512-QSGe7eoL6r4ksOYYWrt6iypGLwtT25fuMMuZtcdl5ij/IgQQuYkeD6TE8/Nvy3qhCJc/tNazcuC8OonBtLiXvQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@remotion/compositor-linux-arm64-musl": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-linux-arm64-musl/-/compositor-linux-arm64-musl-4.0.538.tgz", + "integrity": "sha512-ALEWbRQeKYXBYCA4d8mjuyahRBziTgZFnkWjINfat2N0YxH1zOOxKqdHevcYFgBYAS4KgVd5PZ/+zCUGSyRb3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@remotion/compositor-linux-x64-gnu": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-linux-x64-gnu/-/compositor-linux-x64-gnu-4.0.538.tgz", + "integrity": "sha512-i+u3ea1MN1BkBSp5BK1YGqVBEJPS9AxxszHeUSJ4zYtldlu1lEAnATLPWO0zs5jA6P0Vtap+2rDcFuKKAlDxyA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@remotion/compositor-linux-x64-musl": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-linux-x64-musl/-/compositor-linux-x64-musl-4.0.538.tgz", + "integrity": "sha512-ickPY224j3K3f2WiooleExbMtE/G/upt3c4tA5xqVu09STUE3fEBMqZly7PoFa/byfVk8ifVUVs0BuyGaG1oVA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@remotion/compositor-win32-x64-msvc": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/compositor-win32-x64-msvc/-/compositor-win32-x64-msvc-4.0.538.tgz", + "integrity": "sha512-eQdKMPAPBodquLi/QbHP7irvIFstHkksh6in3jaJ0w397qeIHiRUCB3DWA8foRqyGPykibt+B2kQg9l3xxIcog==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@remotion/elevenlabs": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/elevenlabs/-/elevenlabs-4.0.538.tgz", + "integrity": "sha512-K06HrD+dKz25i31sRbxniNzIjGgzPEeiLLwmCyuVZuat+PQ9stb5EmIuWue/n++YnisT4bgFt6QNyoSdQEbByw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@remotion/captions": "4.0.538", + "zod": "4.5.4" + } + }, + "node_modules/@remotion/google-fonts": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/google-fonts/-/google-fonts-4.0.538.tgz", + "integrity": "sha512-rDNJ0T74bFh217K5v8ficP2aTyERxVGEe5SWYqVeIBsFfV3DEW+m3qwWHwaBt7gOpvArfJrtGY2q2z9Mra7RQQ==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "remotion": "4.0.538" + } + }, + "node_modules/@remotion/licensing": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/licensing/-/licensing-4.0.538.tgz", + "integrity": "sha512-vm8mpeZCowrn0OI/Y7KRmeAVuXiK6ylj0xk0utMbwlsLNB3ywLg3nyO0H4pD+a7fDn9FId3y283xFkJ6XymtfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@remotion/media": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/media/-/media-4.0.538.tgz", + "integrity": "sha512-+TViwM5SWbj0nPLHgCNcuvatnlezOZHHV8BcTG+uFKwMHTxxmEcj40Ow0vM0H5/MAP54B7i/qlmV74YZqLXfDw==", + "dev": true, + "dependencies": { + "mediabunny": "1.62.0", + "remotion": "4.0.538", + "zod": "4.5.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/media-utils": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/media-utils/-/media-utils-4.0.538.tgz", + "integrity": "sha512-Rfjg5P+lkioXz4ip+0SQlzzaOspu4/jP8NWOwVi7ICeJPJ3m0ZaU7TKjLTVA1pzX9bWV4vwoigALNWn+cMiHHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mediabunny": "1.62.0", + "remotion": "4.0.538" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/openai-whisper": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/openai-whisper/-/openai-whisper-4.0.538.tgz", + "integrity": "sha512-+AVrT5WwkRhN1er2fd4cR52EZDfGx+riiw65mnOf8oQKnbAT+1OhmoH6WIwPKX1qOZxhTwvGY5m2xthlAOSW1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@remotion/captions": "4.0.538", + "zod": "4.5.4" + } + }, + "node_modules/@remotion/paths": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/paths/-/paths-4.0.538.tgz", + "integrity": "sha512-GN/6cpxQn6ssvhb4Ph1RRQLrhQTtZYmJysZ+PjHi1Zn4WzC07akkgNj+BTqtdGWsUKFj1cyGvzzcZswbPLLc6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remotion": "4.0.538" + } + }, + "node_modules/@remotion/player": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/player/-/player-4.0.538.tgz", + "integrity": "sha512-HYvGtDD2cG8/EICy8kleIqZJIHqRXNsJjETv0BS4n+Yrlo95oZvrzbfhGn0GbP8b3ucO4EkehNkw+qpVqG9M7Q==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "remotion": "4.0.538" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/renderer": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/renderer/-/renderer-4.0.538.tgz", + "integrity": "sha512-d4xzVMHqw/ajV0WEjyuFNt3UY6Tg5Aj0iABSxcwBiVI7YwsJQ9RGoB80VS95Sa9choYQfSSRJGFSQT53X/qjRg==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@remotion/licensing": "4.0.538", + "@remotion/streaming": "4.0.538", + "execa": "5.1.1", + "remotion": "4.0.538", + "source-map": "0.8.0", + "ws": "8.21.0" + }, + "optionalDependencies": { + "@remotion/compositor-darwin-arm64": "4.0.538", + "@remotion/compositor-darwin-x64": "4.0.538", + "@remotion/compositor-linux-arm64-gnu": "4.0.538", + "@remotion/compositor-linux-arm64-musl": "4.0.538", + "@remotion/compositor-linux-x64-gnu": "4.0.538", + "@remotion/compositor-linux-x64-musl": "4.0.538", + "@remotion/compositor-win32-x64-msvc": "4.0.538" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/sdk": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/sdk/-/sdk-4.0.538.tgz", + "integrity": "sha512-ypTWi4pwWFlb/ZETuSMn6YYFpAfUmbJa6bUmqZlj2iQ3V5W2Pfi1lYl/El4xOl3GEYVErJutIf0JJYI3AE7McQ==", + "dev": true, + "license": "Remotion License", + "dependencies": { + "@remotion/player": "4.0.538", + "@remotion/studio-shared": "4.0.538", + "remotion": "4.0.538" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@remotion/streaming": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/streaming/-/streaming-4.0.538.tgz", + "integrity": "sha512-9zoJ59eBMRwufh9eXp4R1i8X+J6BZ4xIfjGFUmiDKPBYh6N1GMRlOwFPZAKyW/QLJZMVtUkz0jTqyYrrAGrWhg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@remotion/studio": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/studio/-/studio-4.0.538.tgz", + "integrity": "sha512-lO+rEYRuS+0yKW65pqy8szDTjmy23x4RImXR3JAiHOfv7KLDY8NoB3XY+lLiDHAVseL2bZHAG2ZIjTotCQvyQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.31", + "@remotion/captions": "4.0.538", + "@remotion/codemods": "4.0.538", + "@remotion/elevenlabs": "4.0.538", + "@remotion/media": "4.0.538", + "@remotion/media-utils": "4.0.538", + "@remotion/openai-whisper": "4.0.538", + "@remotion/paths": "4.0.538", + "@remotion/player": "4.0.538", + "@remotion/renderer": "4.0.538", + "@remotion/sdk": "4.0.538", + "@remotion/studio-protocol": "4.0.538", + "@remotion/studio-shared": "4.0.538", + "@remotion/timeline-utils": "4.0.538", + "@remotion/web-renderer": "4.0.538", + "@remotion/zod-types": "4.0.538", + "@tanstack/react-virtual": "3.14.9", + "mediabunny": "1.62.0", + "memfs": "3.4.3", + "open": "8.4.2", + "prismjs": "1.30.0", + "remotion": "4.0.538", + "semver": "7.5.3", + "zod": "4.5.4" + }, + "peerDependencies": { + "@remotion/video-matting": "4.0.538", + "@remotion/whisper-webgpu": "4.0.538", + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@remotion/video-matting": { + "optional": true + }, + "@remotion/whisper-webgpu": { + "optional": true + } + } + }, + "node_modules/@remotion/studio-protocol": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/studio-protocol/-/studio-protocol-4.0.538.tgz", + "integrity": "sha512-QycNTOjcnUD6MPFlkJ0N6ZAw6kq450aAKSqKSHlsLjuMEGDF3yZEzIaDnF2QTuJc02WnNEBV2o8mx4XRNda9Zw==", + "dev": true, + "license": "Remotion License", + "dependencies": { + "zod": "4.5.4" + } + }, + "node_modules/@remotion/studio-server": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/studio-server/-/studio-server-4.0.538.tgz", + "integrity": "sha512-skvVMWsGJZNXFFagAY+jq4/7QNN/UlcfSMdaF1wDQSyZ7Bb6KL/R6udApikrPkHLFeExVmQiB8dHkSjaSwp+1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "7.24.1", + "@babel/types": "7.24.0", + "@remotion/bundler": "4.0.538", + "@remotion/codemods": "4.0.538", + "@remotion/renderer": "4.0.538", + "@remotion/studio-protocol": "4.0.538", + "@remotion/studio-shared": "4.0.538", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "kiwi-schema": "0.5.0", + "memfs": "3.4.3", + "open": "8.4.2", + "recast": "0.23.21", + "remotion": "4.0.538", + "semver": "7.5.3", + "zod": "4.5.4" + } + }, + "node_modules/@remotion/studio-shared": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/studio-shared/-/studio-shared-4.0.538.tgz", + "integrity": "sha512-FpKJ/43J86ay/4ZhEFa2SAu8bmrzN8IMDjAD0qFPgf3SNkgd9RX2vhzth6RH+RyOggOFGpHrdcPlI6EYpv6ByQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "remotion": "4.0.538" + } + }, + "node_modules/@remotion/timeline-utils": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/timeline-utils/-/timeline-utils-4.0.538.tgz", + "integrity": "sha512-sGRUxrXSdxkd78C8ChQNApoEiYKgOPFO6+cezOLB+gqk2updtreR3sjau9RzmsPO/2C5r7x8x1vDyTSb3U/geQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mediabunny": "1.62.0", + "remotion": "4.0.538" + } + }, + "node_modules/@remotion/web-renderer": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/web-renderer/-/web-renderer-4.0.538.tgz", + "integrity": "sha512-dIpIHPrVCiy9Nz5FvUWOejn3ZYgcAVdQzkdVL64R0aCEqx8BnGxTNYmKz+xm3H3fQE+q2HKCJoR6dYMgTayS2Q==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@mediabunny/aac-encoder": "1.62.0", + "@mediabunny/flac-encoder": "1.62.0", + "@mediabunny/mp3-encoder": "1.62.0", + "@remotion/licensing": "4.0.538", + "mediabunny": "1.62.0", + "remotion": "4.0.538" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@remotion/zod-types": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/@remotion/zod-types/-/zod-types-4.0.538.tgz", + "integrity": "sha512-/2+zn7/QGGMFhr30ccEwhc1GYpyMa+TsVOMdjS9+7SylfXm2ULAxIHHhJDJYrxTES/ROx5EI4UdD+ugoEHQXEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "remotion": "4.0.538" + } + }, + "node_modules/@rspack/binding": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.11.tgz", + "integrity": "sha512-2MGdy2s2HimsDT444Bp5XnALzNRxuBNc7y0JzyuqKbHBywd4x2NeXyhWXXoxufaCFu5PBc9Qq9jyfjW2Aeh06Q==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "@rspack/binding-darwin-arm64": "1.7.11", + "@rspack/binding-darwin-x64": "1.7.11", + "@rspack/binding-linux-arm64-gnu": "1.7.11", + "@rspack/binding-linux-arm64-musl": "1.7.11", + "@rspack/binding-linux-x64-gnu": "1.7.11", + "@rspack/binding-linux-x64-musl": "1.7.11", + "@rspack/binding-wasm32-wasi": "1.7.11", + "@rspack/binding-win32-arm64-msvc": "1.7.11", + "@rspack/binding-win32-ia32-msvc": "1.7.11", + "@rspack/binding-win32-x64-msvc": "1.7.11" + } + }, + "node_modules/@rspack/binding-darwin-arm64": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.11.tgz", + "integrity": "sha512-oduECiZVqbO5zlVw+q7Vy65sJFth99fWPTyucwvLJJtJkPL5n17Uiql2cYP6Ijn0pkqtf1SXgK8WjiKLG5bIig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rspack/binding-darwin-x64": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.11.tgz", + "integrity": "sha512-a1+TtTE9ap6RalgFi7FGIgkJP6O4Vy6ctv+9WGJy53E4kuqHR0RygzaiVxCI/GMc/vBT9vY23hyrpWb3d1vtXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rspack/binding-linux-arm64-gnu": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.11.tgz", + "integrity": "sha512-P0QrGRPbTWu6RKWfN0bDtbnEps3rXH0MWIMreZABoUrVmNQKtXR6e73J3ub6a+di5s2+K0M2LJ9Bh2/H4UsDUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-linux-arm64-musl": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.11.tgz", + "integrity": "sha512-6ky7R43VMjWwmx3Yx7Jl7faLBBMAgMDt+/bN35RgwjiPgsIByz65EwytUVuW9rikB43BGHvA/eqlnjLrUzNBqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-linux-x64-gnu": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.11.tgz", + "integrity": "sha512-cuOJMfCOvb2Wgsry5enXJ3iT1FGUjdPqtGUBVupQlEG4ntSYsQ2PtF4wIDVasR3wdxC5nQbipOrDiN/u6fYsdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-linux-x64-musl": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.11.tgz", + "integrity": "sha512-CoK37hva4AmHGh3VCsQXmGr40L36m1/AdnN5LEjUX6kx5rEH7/1nEBN6Ii72pejqDVvk9anEROmPDiPw10tpFg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rspack/binding-wasm32-wasi": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.11.tgz", + "integrity": "sha512-OtrmnPUVJMxjNa3eDMfHyPdtlLRmmp/aIm0fQHlAOATbZvlGm12q7rhPW5BXTu1yh+1rQ1/uqvz+SzKEZXuJaQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "1.0.7" + } + }, + "node_modules/@rspack/binding-win32-arm64-msvc": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.11.tgz", + "integrity": "sha512-lObFW6e5lCWNgTBNwT//yiEDbsxm9QG4BYUojqeXxothuzJ/L6ibXz6+gLMvbOvLGV3nKgkXmx8GvT9WDKR0mA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rspack/binding-win32-ia32-msvc": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.11.tgz", + "integrity": "sha512-0pYGnZd8PPqNR68zQ8skamqNAXEA1sUfXuAdYcknIIRq2wsbiwFzIc0Pov1cIfHYab37G7sSIPBiOUdOWF5Ivw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rspack/binding-win32-x64-msvc": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.11.tgz", + "integrity": "sha512-EeQXayoQk/uBkI3pdoXfQBXNIUrADq56L3s/DFyM2pJeUDrWmhfIw2UFIGkYPTMSCo8F2JcdcGM32FGJrSnU0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rspack/core": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.7.11.tgz", + "integrity": "sha512-rsD9b+Khmot5DwCMiB3cqTQo53ioPG3M/A7BySu8+0+RS7GCxKm+Z+mtsjtG/vsu4Tn2tcqCdZtA3pgLoJB+ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/runtime-tools": "0.22.0", + "@rspack/binding": "1.7.11", + "@rspack/lite-tapable": "1.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.1" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@rspack/lite-tapable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz", + "integrity": "sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rspack/plugin-react-refresh": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@rspack/plugin-react-refresh/-/plugin-react-refresh-1.6.1.tgz", + "integrity": "sha512-eqqW5645VG3CzGzFgNg5HqNdHVXY+567PGjtDhhrM8t67caxmsSzRmT5qfoEIfBcGgFkH9vEg7kzXwmCYQdQDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-stack-parser": "^2.1.4", + "html-entities": "^2.6.0" + }, + "peerDependencies": { + "react-refresh": ">=0.10.0 <1.0.0", + "webpack-hot-middleware": "2.x" + }, + "peerDependenciesMeta": { + "webpack-hot-middleware": { + "optional": true + } + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.14.9", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.14.9.tgz", + "integrity": "sha512-qZyr0FZDP8rDC4WBhsryIZmAd9bveJvFGUJJtskWaew6/0dTRS6wZxnR6VQ5bY2KwL3LjerrHqQLk3a0GKcPXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.17.7" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.17.7", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.17.7.tgz", + "integrity": "sha512-bp+v10y65sp2H7WpWfIMyxTNfl8ZVfxFTLRjPIFRryi6FV/J33z4IS53WO4pTk36KlvJ4iLiQz+oaydDC1xbcA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", + "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/dom-mediacapture-transform": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@types/dom-mediacapture-transform/-/dom-mediacapture-transform-0.1.12.tgz", + "integrity": "sha512-d7/QsLRwF864A5mgIM/YrfiglHoYn7zgCcAoJgW404r+2DwnNr7EBbLnCWpmOMgH8y0te73L1AV6H1bmauaWFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/dom-webcodecs": "*" + } + }, + "node_modules/@types/dom-webcodecs": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@types/dom-webcodecs/-/dom-webcodecs-0.1.13.tgz", + "integrity": "sha512-O5hkiFIcjjszPIYyUSyvScyvrBoV3NOEEZx/pMlsu44TKzWNkLVBBxnxJz42in5n3QIolYOcBYFCPZZ0h8SkwQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.6.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.5.tgz", + "integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.9.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", + "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz", + "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.32.tgz", + "integrity": "sha512-UvuxFU9P3hM29LrQdwu0cD6w6/+SFr+UlB9s/knI7+O2rK9xFxKUwSDWxGdbbqQ9/V7BJ5s0NI5nQAE4uJp3gQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.29.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.4.tgz", + "integrity": "sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.11.29", + "caniuse-lite": "^1.0.30001816", + "electron-to-chromium": "^1.5.459", + "node-releases": "^2.0.59", + "update-browserslist-db": "^1.3.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001819", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001819.tgz", + "integrity": "sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", + "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.40", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.6.3" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", + "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.464", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.464.tgz", + "integrity": "sha512-nRa65aFge40viPAKxMKULIY8tcXKwKboJWNn4RoKwyWXJ6SP7BnrDGKUTzc64818jIciH0PK7LSF8QzZes19GA==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.26.0.tgz", + "integrity": "sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.9.tgz", + "integrity": "sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kiwi-schema": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/kiwi-schema/-/kiwi-schema-0.5.0.tgz", + "integrity": "sha512-X+FpfU0yTEtc6aTHS7VwbOpvQwRt70+pXXWRI5fd6CvWhe7pSVC854TVo4Zo0x5/wwcWj+/9KUlXpdcP0dY9AA==", + "dev": true, + "license": "MIT", + "bin": { + "kiwic": "cli.js" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/mediabunny": { + "version": "1.62.0", + "resolved": "https://registry.npmjs.org/mediabunny/-/mediabunny-1.62.0.tgz", + "integrity": "sha512-D8E8BDxjCyqyrGj074jLRQNgilDW5izJu8o9pg7THMYMIZBL1Fao5hOtdDPDfA+nSnk68tMa8IaCJmz8hSpJpw==", + "dev": true, + "license": "MPL-2.0", + "workspaces": [ + ".", + "packages/*" + ], + "dependencies": { + "@types/dom-mediacapture-transform": "^0.1.11", + "@types/dom-webcodecs": "0.1.13" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/Vanilagy" + } + }, + "node_modules/memfs": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.3.tgz", + "integrity": "sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimizer-webpack-plugin": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.13.1.tgz", + "integrity": "sha512-1mhAfvachWYYOm8tpmany5NLuvP+F2wxZWBSX8DC0uFS2wJpM9q3rWgN9wBooAH9d5V12wX0BjyJe4fMjHMarQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "jest-worker": "^27.4.5", + "schema-utils": "^4.6.0", + "terser": "^5.51.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@napi-rs/image": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "imagemin": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "sharp": { + "optional": true + }, + "svgo": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.60.tgz", + "integrity": "sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/playwright": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.64.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/playwright-core": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/postcss": { + "version": "8.5.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", + "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.20", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz", + "integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/recast": { + "version": "0.23.21", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.21.tgz", + "integrity": "sha512-mFAyJq9vUbSTARLZUvAEf1z3YxlvAwswbmxMx2mPA/MSm4KmpwvwvhsH/NIrZhyOuwD60Lzyw2qh83uCbgTPYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remotion": { + "version": "4.0.538", + "resolved": "https://registry.npmjs.org/remotion/-/remotion-4.0.538.tgz", + "integrity": "sha512-HA9/+3GOfNxBtT+iFsqmzGtegtE1M3qra3N/iBiXv5oRX+1q0HsFTjcFxT9Ljmmodd5huVZLKLK0ymvYsecCaw==", + "dev": true, + "license": "SEE LICENSE IN LICENSE.md", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/schema-utils": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.8.1.tgz", + "integrity": "sha512-x39pYlJPyH7Uge5QO64B9XGP9zLDc9WNmiQZc+CE3IzZPvMu3lHOuAMGpYNoPixEL7MSWlGhYTg5UlLSL8G6iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.15", + "ajv": "^8.20.0", + "ajv-formats": "^3.0.1", + "ajv-keywords": "^5.1.0" + }, + "bin": { + "schema-utils": "bin/schema-utils.js" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.112.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0.tgz", + "integrity": "sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.27.0" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/svg-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.1.0.tgz", + "integrity": "sha512-bwLf38YmY+TDYHJw1Ex0Co8c4yeXuJAo8YnXGZrscxrvYoVVIvLeniEkV1Ks/54VteMnL4FtyN1+P+TZJdUPmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.4.tgz", + "integrity": "sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/watchpack": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.6.3.tgz", + "integrity": "sha512-s3NZy0QpTY9qGqzc0wtz4qI28z3+5qKbbAec4MV4G9N3CfgZ9wgvQRr0cl2jh/tqkWG1NWHkmVMHZpCamev5Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.112.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.112.2.tgz", + "integrity": "sha512-B2tp1LI9D8GVpPDqprdt12ukTkXXahj9MzqSWJq4faSPgOUM7CdZaGAB6HrL/8E6UwbBpdj4vzWDbKoFnVoU6g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.26.0", + "es-module-lexer": "^2.1.0", + "events": "^3.2.0", + "graceful-fs": "^4.2.11", + "mime-db": "^1.54.0", + "minimizer-webpack-plugin": "^5.13.0", + "schema-utils": "^4.8.1", + "tapable": "^2.3.0", + "watchpack": "^2.6.3", + "webpack-sources": "^3.6.0" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.6.0.tgz", + "integrity": "sha512-EIMmPVvNI0CYXyRPp34F2Qk7W37/BZVZIofS6LAUnrNjCVahS+hO4mxwFJDjQjODTGZDtVzLYoN2+1dYkhk9qA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/zod": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz", + "integrity": "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/site/footage/package.json b/site/footage/package.json new file mode 100644 index 00000000..932c432e --- /dev/null +++ b/site/footage/package.json @@ -0,0 +1,22 @@ +{ + "name": "driga-footage", + "private": true, + "type": "module", + "description": "Records the real driga TUI and web dashboard on driga-demo data and cuts the website film with Remotion.", + "scripts": { + "web": "node web.mjs", + "studio": "remotion studio film/index.ts", + "render": "node render.mjs" + }, + "devDependencies": { + "@remotion/cli": "4.0.538", + "@remotion/google-fonts": "4.0.538", + "@remotion/media": "4.0.538", + "@types/react": "19.2.2", + "playwright": "1.64.1", + "react": "19.2.0", + "react-dom": "19.2.0", + "remotion": "4.0.538", + "typescript": "6.0.3" + } +} diff --git a/site/footage/record.sh b/site/footage/record.sh new file mode 100755 index 00000000..8759d110 --- /dev/null +++ b/site/footage/record.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# Re-records the website footage from the real binary: builds driga and +# driga-demo, films the TUI with VHS and the web dashboard with Playwright in +# both themes, and cuts the films with Remotion into out/media (posters into +# src/assets/media). `just site-footage-publish` then uploads them to R2. +# Needs vhs and ffmpeg on PATH. +set -euo pipefail +cd "$(dirname "$0")" +work=$(mktemp -d) +cleanup() { + pkill -f "driga-demo --data-dir $work" 2>/dev/null || true + rm -rf "$work" +} +trap cleanup EXIT +(cd ../.. && go build -o "$work/driga" ./cmd/driga && go build -o "$work/driga-demo" ./cmd/driga-demo) +npm ci --no-audit --no-fund +npx playwright install chromium +export FOOTAGE_DRIGA="$work/driga" FOOTAGE_DEMO="$work/driga-demo" +mkdir -p out +# Each theme twice: the full width for the film, 1440 wide for the Machines loop. +for theme in dark light; do + for take in flow machines; do + out="out/tui-$theme.mp4" width=1920 + [[ $take == machines ]] && out="out/tui-machines-$theme.mp4" width=1440 + sed -e "s#out/tui-dark.mp4#$out#" -e "s/^Set Width 1920/Set Width $width/" flow.tape > "$work/$take-$theme.tape" + [[ $theme == light ]] && sed -i.bak -e 's/Catppuccin Mocha/Catppuccin Latte/' -e 's/#11111b/#dce0e8/' "$work/$take-$theme.tape" + FOOTAGE_DIR="$work/tui-$take-$theme" FOOTAGE_UI=$theme vhs "$work/$take-$theme.tape" + done +done +FOOTAGE_DIR="$work/web" node web.mjs +node render.mjs diff --git a/site/footage/render.mjs b/site/footage/render.mjs new file mode 100644 index 00000000..c016f57c --- /dev/null +++ b/site/footage/render.mjs @@ -0,0 +1,29 @@ +// Renders every film in both themes from the takes in out/ into out/media +// (MP4 H.264 and WebM VP9), and its poster into src/assets/media, where Astro +// optimises it. upload.mjs publishes out/media to R2. +import { execFileSync } from "node:child_process"; +import { copyFileSync, mkdirSync, readFileSync, readdirSync } from "node:fs"; + +const cut = JSON.parse(readFileSync("film/cut.json", "utf8")); +const media = "out/media"; +const posters = "../src/assets/media"; +mkdirSync(media, { recursive: true }); +mkdirSync(posters, { recursive: true }); +copyFileSync("../src/assets/lockup-white.svg", "out/lockup-white.svg"); +copyFileSync("../src/assets/lockup.svg", "out/lockup.svg"); +const remotion = (...args) => execFileSync("npx", ["remotion", ...args, "--public-dir", "out", "--log", "error"], { stdio: "inherit" }); + +// The hero's poster is the permission prompt, the film's main point. +const posterFrame = { hero: cut.hero.poster * cut.fps, needs: 2.5 * cut.fps, flow: 2.5 * cut.fps, machines: 1.5 * cut.fps }; +for (const id of ["hero", "needs", "flow", "machines"]) { + for (const theme of ["dark", "light"]) { + const name = `${id}-${theme}`; + remotion("render", "film/index.ts", name, `${media}/${name}.mp4`, "--codec", "h264", "--crf", "23", "--pixel-format", "yuv420p"); + remotion("render", "film/index.ts", name, `${media}/${name}.webm`, "--codec", "vp9", "--crf", "36"); + remotion("still", "film/index.ts", name, `${posters}/${name}.jpg`, "--frame", String(Math.round(posterFrame[id])), "--image-format", "jpeg", "--jpeg-quality", "85"); + } +} + +// astro dev plays these until the films are published (see Film.astro). +mkdirSync("../public/media-local", { recursive: true }); +for (const file of readdirSync(media)) copyFileSync(`${media}/${file}`, `../public/media-local/${file}`); diff --git a/site/footage/tsconfig.json b/site/footage/tsconfig.json new file mode 100644 index 00000000..3fa03eb5 --- /dev/null +++ b/site/footage/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "jsx": "react-jsx", + "strict": true, + "noEmit": true, + "skipLibCheck": true, + "resolveJsonModule": true + }, + "include": [ + "film" + ] +} diff --git a/site/footage/upload.mjs b/site/footage/upload.mjs new file mode 100644 index 00000000..750ed709 --- /dev/null +++ b/site/footage/upload.mjs @@ -0,0 +1,37 @@ +// Publishes out/media to the R2 bucket driga-assets, served at +// https://assets.driga.dev, and records the URLs in src/data/media.json. +// Keys carry a content hash, so files are immutable and a retake never +// overwrites what a cached page still points at. Unchanged files are skipped. +import { spawnSync } from "node:child_process"; +import { createHash } from "node:crypto"; +import { existsSync, readFileSync, readdirSync, renameSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; + +const input = "out/media"; +const manifestPath = "../src/data/media.json"; +const manifest = existsSync(manifestPath) ? JSON.parse(readFileSync(manifestPath, "utf8")) : {}; + +for (const file of readdirSync(input).sort()) { + const match = file.match(/^([a-z]+-(?:dark|light))\.(mp4|webm)$/); + if (!match) continue; + const [, name, format] = match; + const contents = readFileSync(join(input, file)); + const key = `media/${name}-${createHash("sha256").update(contents).digest("hex").slice(0, 12)}.${format}`; + const url = `https://assets.driga.dev/${key}`; + if (manifest[name]?.[format] === url) continue; + // Keys are content-addressed, so retrying a put is always safe. + const args = ["r2", "object", "put", `driga-assets/${key}`, "--file", join(input, file), + "--content-type", `video/${format}`, "--cache-control", "public, max-age=31536000, immutable", "--remote"]; + let put; + for (let attempt = 1; attempt <= 3; attempt++) { + put = spawnSync("wrangler", args, { stdio: "inherit" }); + if (put.status === 0) break; + } + if (put.status !== 0) throw new Error(`upload of ${file} failed`); + manifest[name] = { ...manifest[name], [format]: url }; +} + +// Written only after every upload succeeded, and never half-written. +const sorted = Object.fromEntries(Object.keys(manifest).sort().map((name) => [name, manifest[name]])); +writeFileSync(`${manifestPath}.tmp`, `${JSON.stringify(sorted, null, 2)}\n`); +renameSync(`${manifestPath}.tmp`, manifestPath); diff --git a/site/footage/web.mjs b/site/footage/web.mjs new file mode 100644 index 00000000..3faf2dde --- /dev/null +++ b/site/footage/web.mjs @@ -0,0 +1,123 @@ +// One continuous, real-time take of the real `driga web` dashboard, served +// from a driga-demo data directory, in dark and light: a visible pointer +// moves to Allow, answers the permission prompt, then opens the session that +// shares a file with another. Run through `just site-footage`. +import { execFileSync, spawn } from "node:child_process"; +import { mkdir, rename, rm } from "node:fs/promises"; +import { join } from "node:path"; +import { chromium } from "playwright"; + +const { FOOTAGE_DEMO: demoBin, FOOTAGE_DRIGA: driga, FOOTAGE_DIR: root } = process.env; +if (!demoBin || !driga || !root) throw new Error("FOOTAGE_DEMO, FOOTAGE_DRIGA and FOOTAGE_DIR are required"); +// Two takes per theme. "hero" is the whole dashboard at the film's browser +// window content size, laid out 1280 CSS px wide and painted at 1920. "detail" +// is laid out 1067 px wide at 1.8x, so the page's feature loops can crop one +// panel and still show readable text. +const takes = { hero: { size: { width: 1920, height: 994 }, zoom: 1.5 }, detail: { size: { width: 1920, height: 1080 }, zoom: 1.8 } }; +const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); + +// The viewer reads the demo only while it looks like a running collector; +// otherwise it would snapshot this machine. Never film until it does. +async function demoReady(env) { + for (let i = 0; i < 100; i++) { + try { + const out = execFileSync(driga, ["summary", "--json"], { env, stdio: ["ignore", "pipe", "ignore"] }); + if (JSON.parse(String(out)).mode === "daemon") return; + } catch {} + await sleep(100); + } + throw new Error("driga-demo did not come up; refusing to record a snapshot of this machine"); +} + +// A drawn pointer: headless Chromium records no cursor of its own. +function pointer() { + const el = document.createElement("div"); + el.innerHTML = ''; + Object.assign(el.style, { position: "fixed", left: "0", top: "0", zIndex: "2147483647", pointerEvents: "none", transform: "translate(640px, 520px)", transition: "scale .08s" }); + addEventListener("mousemove", (e) => { el.style.transform = `translate(${e.clientX - 3}px, ${e.clientY - 2}px)`; }, true); + addEventListener("mousedown", () => { el.style.scale = "0.86"; }, true); + addEventListener("mouseup", () => { el.style.scale = "1"; }, true); + // Outside the zoomed body, so it moves in viewport pixels like the events. + document.addEventListener("DOMContentLoaded", () => document.documentElement.append(el)); +} + +// Glide like a hand: eased, about 60 steps a second. +let at = { x: 640, y: 520 }; +async function glide(page, locator, ms = 700) { + const box = await locator.boundingBox(); + const to = { x: box.x + box.width / 2, y: box.y + box.height / 2 }; + const steps = Math.round(ms / 16); + for (let i = 1; i <= steps; i++) { + const t = i / steps; + const e = t < 0.5 ? 2 * t * t : 1 - (-2 * t + 2) ** 2 / 2; + await page.mouse.move(at.x + (to.x - at.x) * e, at.y + (to.y - at.y) * e); + await sleep(16); + } + at = to; +} + +async function take(name, scheme) { + const { size, zoom } = takes[name]; + const dir = join(root, `web-${name}-${scheme}`); + await rm(dir, { recursive: true, force: true }); + const data = join(dir, "data"); + const env = { ...process.env, HOME: join(dir, "home"), DRIGA_DATA_DIR: data, DRIGA_SPOOL_DIR: join(data, "events"), DRIGA_CONFIG: join(data, "config.toml") }; + await mkdir(env.HOME, { recursive: true }); + const children = []; + let browser, context, page; + let ok = false; + try { + children.push(spawn(demoBin, ["--data-dir", data], { env, stdio: ["ignore", "ignore", "inherit"] })); + await demoReady(env); + const web = spawn(driga, ["web", "--listen", "127.0.0.1:0"], { env, stdio: ["ignore", "pipe", "pipe"] }); + children.push(web); + const url = await new Promise((resolve, reject) => { + web.stderr.on("data", (b) => { if (/snapshot/i.test(String(b))) reject(new Error("driga web fell back to a snapshot of this machine")); }); + web.stdout.on("data", (b) => { const m = String(b).match(/http:\/\/\S+/); if (m) resolve(m[0]); }); + web.on("exit", (code) => reject(new Error(`driga web exited ${code}`))); + setTimeout(() => reject(new Error("driga web printed no URL")), 20000); + }); + browser = await chromium.launch(); + context = await browser.newContext({ viewport: size, deviceScaleFactor: 1, colorScheme: scheme, recordVideo: { dir, size } }); + await context.addInitScript((z) => document.addEventListener("DOMContentLoaded", () => { document.body.style.zoom = String(z); }), zoom); + await context.addInitScript(pointer); + page = await context.newPage(); + at = { x: 640, y: 520 }; + await page.goto(url); + await page.waitForSelector(".fb-node"); + // The prompt arrives at 8 s of demo time; Allow arms after a short delay. + const allow = page.locator('[data-answer="allow"]').first(); + await allow.waitFor({ timeout: 30000 }); + await sleep(900); + await glide(page, page.locator(".fb-need.primary code").first(), 900); + await page.waitForFunction((el) => !el.disabled, await allow.elementHandle(), { timeout: 10000 }); + await sleep(1400); + await glide(page, allow, 600); + await sleep(350); + await page.mouse.down(); + await sleep(90); + await page.mouse.up(); + await sleep(2200); + const node = page.locator('.fb-node[data-title="Add dark mode to settings"] circle[r="14"]'); + await glide(page, node, 1000); + await sleep(300); + await page.mouse.down(); + await sleep(90); + await page.mouse.up(); + await sleep(3500); + ok = true; + } finally { + const video = page?.video(); + await context?.close(); + await browser?.close(); + for (const child of children) child.kill(); + // A failed take is discarded, never published. + if (video) { + if (ok) await rename(await video.path(), join("out", `web-${name}-${scheme}.webm`)); + else await rm(await video.path(), { force: true }); + } + } +} + +await mkdir("out", { recursive: true }); +for (const name of Object.keys(takes)) for (const scheme of ["dark", "light"]) await take(name, scheme); diff --git a/site/package-lock.json b/site/package-lock.json new file mode 100644 index 00000000..c7d97e97 --- /dev/null +++ b/site/package-lock.json @@ -0,0 +1,7543 @@ +{ + "name": "driga-website", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "driga-website", + "version": "0.0.0", + "dependencies": { + "@astrojs/markdown-remark": "7.3.4", + "@astrojs/starlight": "0.42.7", + "@catppuccin/starlight": "2.1.0", + "@fontsource/geist-mono": "5.3.0", + "@fontsource/geist-sans": "5.3.0", + "@fontsource/ibm-plex-mono": "5.3.0", + "@fontsource/ibm-plex-sans": "5.3.0", + "astro": "7.4.2", + "sharp": "0.35.5" + }, + "devDependencies": { + "@astrojs/check": "0.9.12", + "typescript": "6.0.3" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/astro2tsx": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@astrojs/astro2tsx/-/astro2tsx-0.1.3.tgz", + "integrity": "sha512-GMDC7Eo0myBUA/QLBl0u+OcegJ8LiBhccmNZR34KmprQNP8gQUJlWlOOZWUsxNA2rNS6GuPYcGDyLoPnjmn4/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emnapi/core": "1.11.3", + "@napi-rs/wasm-runtime": "1.2.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/check": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.12.tgz", + "integrity": "sha512-hazpqxIfZWj2VhyPyR0pOEQ/IhFDM/2nIApL96zMXABdD8NrUKYDmhxTy7h+drTDl9MQG/Sd1ET/4amadVJUUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/language-server": "^2.17.3", + "chokidar": "^5.0.0", + "kleur": "^4.1.5", + "yargs": "^18.2.0" + }, + "bin": { + "astro-check": "bin/astro-check.js" + }, + "peerDependencies": { + "typescript": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/@astrojs/compiler-binding": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.5.2.tgz", + "integrity": "sha512-lEn76+0JcMQ5RDXU0wSMWJg2ZppiZvSULpghC29cfv4o9bhvWFDbQjsCtvjjXN9iVLFQ7fL3wTR2L2UU13mP8g==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@astrojs/compiler-binding-android-arm64": "0.5.2", + "@astrojs/compiler-binding-darwin-arm64": "0.5.2", + "@astrojs/compiler-binding-darwin-x64": "0.5.2", + "@astrojs/compiler-binding-linux-arm64-gnu": "0.5.2", + "@astrojs/compiler-binding-linux-arm64-musl": "0.5.2", + "@astrojs/compiler-binding-linux-x64-gnu": "0.5.2", + "@astrojs/compiler-binding-linux-x64-musl": "0.5.2", + "@astrojs/compiler-binding-wasm32-wasi": "0.5.2", + "@astrojs/compiler-binding-win32-arm64-msvc": "0.5.2", + "@astrojs/compiler-binding-win32-x64-msvc": "0.5.2" + } + }, + "node_modules/@astrojs/compiler-binding-android-arm64": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-android-arm64/-/compiler-binding-android-arm64-0.5.2.tgz", + "integrity": "sha512-kckIxon6Rm/Bxzh9mGPYpRRqUbToUQoHptCmpMmE+Yt0Xumq8CqrKUidyYhrBsrHVO7bxuRzzWUUqvpf+iYceQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-arm64": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.5.2.tgz", + "integrity": "sha512-1ZG5Ar3dD8HtodX9XH1mRmE0qBXZlvjYXSFfpgFwocqfWnvhFuqtGUNseL8wgfImiRMztIjpQqlogQFQQtgiag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-x64": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.5.2.tgz", + "integrity": "sha512-+kl35S7hiHJ2cb7eujwEsPFYYuSgE11uEE2Z20lAJ+undpgulMcW+weQqFPOSSZccEKHOiLIY+kQHkb4e4092w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-gnu": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.5.2.tgz", + "integrity": "sha512-BqlR0EHNQLPLwgL9+xogjsAc7zGf0cHho2CPdhv0P1yqbVMwGVaGAqrANP6VYAXCqSC43AF4Czcxc2n+oqdesg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-musl": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.5.2.tgz", + "integrity": "sha512-GRGyby3AZWw5d6JQzidyxPyvGgHWsSusrpgKyFVpDTKctABF7L3Pd5V1cRJbV36/rcu+Eh292/wL7pF7MkmGkQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-gnu": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.5.2.tgz", + "integrity": "sha512-9XAqGTMQAtIslMsjK3xdyY6OI9d59OZqcLBB6pvD/DcoR0daYswfrKx2azdDERDY4AqAnWPC7odVM1BmxYv3Vw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-musl": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.5.2.tgz", + "integrity": "sha512-jOViewGeTh9bSfS8vK72ECxoy2yvmA+Pd/ZcEvBI5c7+7IcfHwZ5qA4L9fRYuOhSrAifvQ2dV4vm1XAtloaWBw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-wasm32-wasi": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.5.2.tgz", + "integrity": "sha512-Z7p64doar1uvR5C9Xs6j1CV9lGlPVQX7OQ2aAtZ/xKC5aGS6GB13nyc2UfQXTQLvZrvVwsyaflTQy6ziY5Bekw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.3", + "@emnapi/runtime": "1.11.3", + "@napi-rs/wasm-runtime": "^1.2.5" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.5.tgz", + "integrity": "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" + } + }, + "node_modules/@astrojs/compiler-binding-win32-arm64-msvc": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.5.2.tgz", + "integrity": "sha512-Tr13bh+ahTWsjXjzctK7pFpWV+dUU4FtBfETlR7gO+ueex0F+RDch7eRr0YfKysaRhk9tWm14lsCJ5uWyFPNHQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-x64-msvc": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.5.2.tgz", + "integrity": "sha512-SfKkI+jOQYLh6wojPvVPV0lFfQnxisweN9B+qCzRvZp7DHAuGif8Y0WcC5PUgN4jb8VKy57LggQDtggR46Du1g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-rs": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.5.2.tgz", + "integrity": "sha512-IvwYLB8t1M86rKO4oPdBi9GP4gzXcgrVlNgocjwos1jeeUuEIV8d9Crn1PvYD/5IKteWOxpIHomf7e8iYlkE+Q==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-binding": "0.5.2" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.13.0.tgz", + "integrity": "sha512-20jxQqnSmpskcGyad7N5l6Xf1gz0UCa6lNde44bEBdaXGpncEYfAZJ142r2ZgzBaG4dUyzGmhqZWv1INU2eiHQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.5", + "@types/mdast": "^4.0.4", + "picomatch": "^4.0.7", + "retext-smartypants": "^6.2.0", + "shiki": "^4.5.0", + "smol-toml": "^1.9.1", + "unified": "^11.0.5", + "yaml": "^2.9.1" + } + }, + "node_modules/@astrojs/language-server": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.17.3.tgz", + "integrity": "sha512-QIAFu1e/4quJMTPdmBOm+ZPXc5NDGZE4/YQjgR3EgjhGLl/tdidaWJDr5WmO2lesVc+BW1qN/xNBURmuePDG2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/astro2tsx": "^0.1.2", + "@astrojs/yaml2ts": "^0.2.4", + "@volar/kit": "~2.4.28", + "@volar/language-core": "~2.4.28", + "@volar/language-server": "~2.4.28", + "@volar/language-service": "~2.4.28", + "muggle-string": "^0.4.1", + "tinyglobby": "^0.2.17", + "volar-service-css": "0.0.71", + "volar-service-emmet": "0.0.71", + "volar-service-html": "0.0.71", + "volar-service-prettier": "0.0.71", + "volar-service-typescript": "0.0.71", + "volar-service-typescript-twoslash-queries": "0.0.71", + "volar-service-yaml": "0.0.71", + "vscode-html-languageservice": "^5.6.2", + "vscode-uri": "^3.2.0" + }, + "bin": { + "astro-ls": "bin/nodeServer.js" + }, + "peerDependencies": { + "prettier": "^3.0.0", + "prettier-plugin-astro": ">=0.11.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + } + } + }, + "node_modules/@astrojs/markdown-remark": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.3.4.tgz", + "integrity": "sha512-AB8S4EQKSryzH624iMDtvC+1AD5nSPzYpCXxc7e1H5ydXhv9B5Td2QfCPA0JyEwqsJpsIsPlW0iOqiy1imdqYw==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.13.0", + "@astrojs/prism": "4.1.1", + "@mdx-js/mdx": "^3.1.1", + "acorn": "^8.19.0", + "estree-util-visit": "^2.0.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-html": "^9.0.5", + "hast-util-to-text": "^4.0.2", + "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.3", + "source-map": "^0.8.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" + } + }, + "node_modules/@astrojs/markdown-satteri": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.4.5.tgz", + "integrity": "sha512-0IeGdoFbv0f+442KJhYS44Wg8F3MuHmRsxIEYuFyqkjRubc6dPBFZ7azor5t4AeXLQoT5A5h9HyViKpd70Dl9w==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.13.0", + "@astrojs/prism": "4.1.1", + "github-slugger": "^2.0.0", + "satteri": "^0.10.5" + } + }, + "node_modules/@astrojs/mdx": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-8.1.1.tgz", + "integrity": "sha512-jEJUJsO2KqmKfBXaKeDHDCCj+Kerj1Fj+XndHznF9wxahvs+1onYCBeKmieM28N2+uA6mW57DOQQw5YaDLdBnA==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.13.0", + "@astrojs/markdown-satteri": "0.4.5", + "es-module-lexer": "^3.0.3" + }, + "engines": { + "node": ">=22.23.4" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "^7.3.0", + "@astrojs/markdown-satteri": "^0.4.0", + "astro": "^7.2.10" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/@astrojs/prism": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-4.1.1.tgz", + "integrity": "sha512-sXlAXJX6t4QfuLg+CuCDzpg7NoxWcyb4paFprgtFppLeisCBmh935h+tJ5CWXfsXEoW2IDy/ihbRMtiu28Chjw==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": ">=22.23.4" + } + }, + "node_modules/@astrojs/sitemap": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.4.tgz", + "integrity": "sha512-LbKNC24bdUWcQf/pThB6qLlSqHojxGjZDURIzFocY8rlWnAn2t74nnhnK6S5x0NHriHoAduLEpVjRykmeGiVvA==", + "license": "MIT", + "dependencies": { + "sitemap": "^9.0.0", + "zod": "^4.3.6" + } + }, + "node_modules/@astrojs/starlight": { + "version": "0.42.7", + "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.42.7.tgz", + "integrity": "sha512-mlbit5iRjLx5eIcLf84Q2CwkrrsEgZrQwKKBK+vRf+ZGiSrwy1UGdT1hUfAIaHrMfcvkDpL+gw3aua7HobiKFg==", + "license": "MIT", + "dependencies": { + "@astrojs/markdown-satteri": "^0.4.0", + "@astrojs/mdx": "^8.0.0", + "@astrojs/sitemap": "^3.7.3", + "@pagefind/default-ui": "^1.3.0", + "@types/hast": "^3.0.5", + "@types/js-yaml": "^4.0.9", + "@types/mdast": "^4.0.4", + "astro-expressive-code": "^0.44.0", + "bcp-47": "^2.1.0", + "hast-util-format": "^1.1.0", + "hast-util-select": "^6.0.4", + "hast-util-to-html": "^9.0.5", + "hast-util-to-string": "^3.0.1", + "hastscript": "^9.0.1", + "i18next": "^26.0.7", + "js-yaml": "^4.1.1", + "klona": "^2.0.6", + "magic-string": "^1.2.3", + "mdast-util-directive": "^3.1.0", + "mdast-util-to-markdown": "^2.1.2", + "mdast-util-to-string": "^4.0.0", + "pagefind": "^1.5.2", + "remark-directive": "^4.0.0", + "satteri": "^0.10.3", + "ultrahtml": "^1.6.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "^7.3.0", + "astro": "^7.2.10" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.4.1.tgz", + "integrity": "sha512-SMkvMsGOpM0FMAoT5pzhgI3LZC0JSPWf7Evwop+fZ3N6UkusPM7lI+sOJjMNI5OJrVoiei1/AGo1cY7sikTc5A==", + "license": "MIT", + "dependencies": { + "ci-info": "^4.4.0", + "dset": "^3.1.4", + "is-docker": "^4.0.0", + "package-manager-detector": "^1.9.0" + }, + "engines": { + "node": ">=22.23.4" + } + }, + "node_modules/@astrojs/yaml2ts": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.4.tgz", + "integrity": "sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==", + "dev": true, + "license": "MIT", + "dependencies": { + "yaml": "^2.8.3" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.11.tgz", + "integrity": "sha512-snZbO7MEDOof+hvNa97EjEY7qD7h2kwvQr5AJC3ZhQudKW5dnej6k3kP9NQV88hJwaS8vDqRLFo9rivLEhle2g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.11.tgz", + "integrity": "sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.11" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.11.tgz", + "integrity": "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.11", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bruits/satteri-darwin-arm64": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.10.5.tgz", + "integrity": "sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@bruits/satteri-darwin-x64": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.10.5.tgz", + "integrity": "sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@bruits/satteri-linux-arm64-gnu": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.10.5.tgz", + "integrity": "sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-arm64-musl": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.10.5.tgz", + "integrity": "sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-x64-gnu": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.10.5.tgz", + "integrity": "sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-x64-musl": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.10.5.tgz", + "integrity": "sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-wasm32-wasi": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.10.5.tgz", + "integrity": "sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.2.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-win32-arm64-msvc": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.10.5.tgz", + "integrity": "sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@bruits/satteri-win32-x64-msvc": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.10.5.tgz", + "integrity": "sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz", + "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@catppuccin/starlight": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@catppuccin/starlight/-/starlight-2.1.0.tgz", + "integrity": "sha512-S5zr0WMHUZgsKzoAebj48DAT5r96jRgJSNftNEIoSi9Nk9KatxP5IUntYqmX5B2L5PGfvKO/oEjINuLLaiRn0g==", + "license": "MIT", + "dependencies": { + "@astrojs/starlight": "^0.41.1" + }, + "peerDependencies": { + "@astrojs/starlight": ">=0.38", + "astro": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/@clack/core": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.5.1.tgz", + "integrity": "sha512-iHTrHA8MtVuLl2TfZySmcKv1qO2PoyC9Z7pfSDozEuV5vtY3/wcOPKJXlqJ5Oq2Cx5DDGQGAMVx6HZfRRoVEbQ==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@clack/prompts": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.8.1.tgz", + "integrity": "sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.5.1", + "fast-string-width": "^3.0.2", + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.1.tgz", + "integrity": "sha512-Vh5uy9Y1JBMId6J1f68TMXnZrTCvNdo9Fu2k0d1YnJngR+sM5kWTKl441c/3TFs+cG0NWOjRWgQ/iaWhbYx+7A==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@emmetio/abbreviation": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", + "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-abbreviation": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", + "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-parser": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.1.tgz", + "integrity": "sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "node_modules/@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@emmetio/scanner": "^1.0.0" + } + }, + "node_modules/@emmetio/scanner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", + "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@expressive-code/core": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.44.3.tgz", + "integrity": "sha512-pffktF0TJoxC08dgNcutl/0LcSnTrjF6vXR39qVpwZ0EyxpwO9zjI7dbni6sO7w3yHpRBO0voLFvhzB+EPJRsA==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^4.0.4", + "hast-util-select": "^6.0.2", + "hast-util-to-html": "^9.0.1", + "hast-util-to-text": "^4.0.1", + "hastscript": "^9.0.0", + "postcss": "^8.4.38", + "postcss-nested": "^7.0.2", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1" + } + }, + "node_modules/@expressive-code/plugin-frames": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.44.3.tgz", + "integrity": "sha512-ysW4VXk9vXEliA99Ur6ApUepVtx74sPolp6o/j45BRjZQoL5O6kXKMhSP4koQLih8HbC5B3ImIvO+HKKhkv/oA==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.3" + } + }, + "node_modules/@expressive-code/plugin-shiki": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.44.3.tgz", + "integrity": "sha512-jAibAZPG7lDmi61EFJADZjoSZzjHiwZZdbbgR/mTlWXM4ON/Pyo/9tB2vrqQNKylsci6jqtCi6idrwqQXF53xA==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.3", + "shiki": "^4.0.2" + } + }, + "node_modules/@expressive-code/plugin-text-markers": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.44.3.tgz", + "integrity": "sha512-4Ae2xRSDV5kdWPsi40xWbOtoihbzM0zLVjQKkDAnD5KzFXl+6/kd+VhuWOlTRVaJ5cqGk++vCbAaf0MR1XbZlw==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.3" + } + }, + "node_modules/@fontsource/geist-mono": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/geist-mono/-/geist-mono-5.3.0.tgz", + "integrity": "sha512-UtJ1BBBCVpMYdIcW7nEB45UAoAw5M53ZXs2t0ciPW+IokuAAIc56M8+kW5tXbRJCTpDw4XTtU7proT6NdQAHTg==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/geist-sans": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/geist-sans/-/geist-sans-5.3.0.tgz", + "integrity": "sha512-AmG7cE1AvE4NHROPaOl1sN+a02cB5xy6pA/ZV76HXqWTCsJTV2SCBc9DTFHfJqnVOODm7HhXIYtUIb75NP5QXQ==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/ibm-plex-mono": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.3.0.tgz", + "integrity": "sha512-eTgnZjZEGk1QtD3ZstF+Vclo2HLAni8YMy34/DxllwZvyz1lR/1RF/xTiAquOBO7MvqBx8D2Ig2WCPMVfdZu7Q==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/ibm-plex-sans": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-sans/-/ibm-plex-sans-5.3.0.tgz", + "integrity": "sha512-CbE4CbbEEZJX860XyUiRpsksXIQR8Rp2XDva2VO53NJox9tVNtusrysd2x5YkUEY3ErQ66W1IiiQL8/wihhw5w==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.5.tgz", + "integrity": "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.5.tgz", + "integrity": "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.5.tgz", + "integrity": "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.4.tgz", + "integrity": "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.4.tgz", + "integrity": "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.4.tgz", + "integrity": "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.4.tgz", + "integrity": "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.4.tgz", + "integrity": "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.4.tgz", + "integrity": "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.4.tgz", + "integrity": "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.4.tgz", + "integrity": "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.4.tgz", + "integrity": "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.4.tgz", + "integrity": "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.5.tgz", + "integrity": "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.5.tgz", + "integrity": "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.5.tgz", + "integrity": "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.5.tgz", + "integrity": "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.5.tgz", + "integrity": "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.5.tgz", + "integrity": "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.5.tgz", + "integrity": "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.5.tgz", + "integrity": "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.5.tgz", + "integrity": "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.5.tgz", + "integrity": "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.5.tgz", + "integrity": "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.5.tgz", + "integrity": "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.5.tgz", + "integrity": "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz", + "integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@oxc-project/types": { + "version": "0.155.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.155.0.tgz", + "integrity": "sha512-SeE8JPwW1xs1tHeNycjUtUBdhorRa8o4jlvjwk49R7/Z291i+4DQa7JJIgOm/TaYQZx+QrPQbVJ/9c8dMIZN8Q==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/oxc-project" + } + }, + "node_modules/@pagefind/darwin-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", + "integrity": "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/darwin-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz", + "integrity": "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/default-ui": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.5.2.tgz", + "integrity": "sha512-pm1LMnQg8N2B3n2TnjKlhaFihpz6zTiA4HiGQ6/slKO/+8K9CAU5kcjdSSPgpuk1PMuuN4hxLipUIifnrkl3Sg==", + "license": "MIT" + }, + "node_modules/@pagefind/freebsd-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz", + "integrity": "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@pagefind/linux-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz", + "integrity": "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/linux-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz", + "integrity": "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/windows-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz", + "integrity": "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@pagefind/windows-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz", + "integrity": "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.15.tgz", + "integrity": "sha512-aLcgK9gIJ3YRvrrtfSBbRa27F5WrpiTaPulnFpsHPxpUHgFlSgnU4854MHwoRGEBhfRJDWCS2WQ7lIjskE9Olw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.15.tgz", + "integrity": "sha512-xD7DdZCrbThKuxNg7ooQmvp07ys4J/pnSEMTG3/OdOWl6daC67m/Q4fL78sRHMxTH/N4fGUbYhcPM0MF5WFHkg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.15.tgz", + "integrity": "sha512-m2WuQ6r0B4OTYxyPpNLtXaMRbRDUbG8YQV2Q3KTdSSK8Th6KHCnC8jVCJt8bvYeSB5WivkkNbc85mKadaSdOxA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.15.tgz", + "integrity": "sha512-5RtnsHM36nodM9WbMy+zip0LGS/G+y5wro5RHrpOlr4ac24+1zSi9kiV2MP1myZeZ/ifEHfulQcWjnAXzc2C2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.15.tgz", + "integrity": "sha512-g3l09pyFqhu+135JKkbkwiKGQmwU5hUMUPJ4VdBADvuqR8d33L6H578rh8m7rtxbdp+VmX/+nzI7nvhSZlzpUQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.15.tgz", + "integrity": "sha512-nIe3VugI97nGQtspPxDqA4sXMUpeiocKIP/CqpY/u/vgbT+alX+cVxu1C/oVBPKg4feNTmYovE91v4DgXvXNwQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.15.tgz", + "integrity": "sha512-iTBjXx+B5QSvgI89lJfmqh4wTh8NabR1YZIIN3hNx4zSG0EVfVqkOvLulNpG4251pbd6/IAmZ/LefVk1Y4rPhw==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.15.tgz", + "integrity": "sha512-uN26XOnVR7rqQupG3V9oAG2EGGatWjcJHOeDOHUFCh4TBWmP2tHTFoVN13aYbwfm0aHqJAEmcwhAu6sooIjfqQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.15.tgz", + "integrity": "sha512-9nWkcdd+H+XhaA3fQIwpHnKIrfx/PQ6rO0pivr78Og07tXlUlctBBJoEYLPfhTmCR/QxEVdn6uPjHV5SymPhdw==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.15.tgz", + "integrity": "sha512-Ggh0ciFjLwIusLSLz7LZYEaGdxOAUJXI+Qu5JCbhPJJHEt8vP+IjRATTJheiJsdzzTYgUiHUiw3X1Ea3ZpMBdA==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.15.tgz", + "integrity": "sha512-FHg60rS6DBePAYZ9X9F67x+JObFdmgn6tupA1C/a3B+CufFmTD4mX+e8M75tCiAO3foR/6xwVBI0KQiI7sn/rw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.15.tgz", + "integrity": "sha512-/cvV/7v5VGz/moiz0XKRj2dE8DzsKyhIu1KpOvJGPjRywg3yscON889UGvAe8zfiJLHup7VLjBduoGWi3HusWQ==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.15.tgz", + "integrity": "sha512-MyzC5Hrv/sm+Z7TSGKP/j8001RO2xQm1zOpCNVL4j0cY/VhBZviludA2YFQ7i4lH6ZAXxQm0lcMdBzM+99mE7w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.15.tgz", + "integrity": "sha512-+PgYiS+AH5omy6L45ZLxybasauJaj3M8buoT83D+nzPmCayXlxUV9hydhciCKVyIg0B/v0BtXPDE1uGqNwCPpg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.15.tgz", + "integrity": "sha512-HFZd2QNQYn1JbIi+Hpd7H+r/lkWxcfIu28nirZ6eCn2LafuvmExMlb/P96Sfx5tf7pPArw39IdhmCF8vmV+NhQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.5.0.tgz", + "integrity": "sha512-6CIgwq+bt2JZ3OSjb/nBkkwEf/CfpHcbam+Mg5Pllco7HAGRQ2/EFhZrrJtbyNTgKwknfVS+llsXGygiDGwJWw==", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.5.0", + "@shikijs/types": "4.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.5.0.tgz", + "integrity": "sha512-Ed6UdEj84LyYkwnxM5CvSMWAD+id9ExTYri0/+x41U9zrgNifPSS9lZm0JqBP0VfYI8yr8tY5nbNq9+p9R0kFA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.5.0.tgz", + "integrity": "sha512-dKVmbJecVdB9recl8a/CU4jdpNXyjJQrIcesIkpS70s5HS02ohpnCSpMUbotPnEUzbAcLQ+S4hwZYbkBBiTcJw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.5.0", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.5.0.tgz", + "integrity": "sha512-wwBTqwduXSz0X4v9Qa2EWeFaYJEw1clCncWjoRNQRbVDu3SPRTRWucnouYapKj3b8Q+sk/41Vbc4B5c8nuYzLA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.5.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.5.0.tgz", + "integrity": "sha512-UM7ShlA8oz0OWxLLO8BmO9Ip6fVqdkt8yF0EH7nOCqHfrx1eEAzF0ZUVK7L+I8NEgeu1PEWSRlxaiPPeCb4iDg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.5.0.tgz", + "integrity": "sha512-zGb87H3UBbpuI4yoh5UguB1XbU+2BDU3kflM7UfZ+Cy2hWo9lBtqjSVK20gmLY6ukYl040hAypGXMgud9vul8Q==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.5.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/types": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.5.0.tgz", + "integrity": "sha512-drtPrtD8N0DENyD2cyt6Ajy+IWsiCLgMxODwLTpvH1UsN6a9jf90tNTPjqwHvA+0Lzu9e0txk8DjfqH1p9UJRw==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.1.0.tgz", + "integrity": "sha512-cVBuhDQjBZaNMTwBquYfPydrUP+E3hE6oYGasx8h6ZrODIM7/r+gxLDXdd66oszbrggZHEntdE6j+5gYIVyMWQ==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", + "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz", + "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "24.19.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz", + "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==", + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.4.0.tgz", + "integrity": "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==", + "license": "ISC" + }, + "node_modules/@volar/kit": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.30.tgz", + "integrity": "sha512-VocLtumfXnqnPQEWc9Yx7uC1uOh9gyjVNlrn2+6Zx/z9aM6yTLhPK8lSqM9Ilu81XRa48I00lcYJWLi2BLxx8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-service": "2.4.30", + "@volar/typescript": "2.4.30", + "typesafe-path": "^0.2.2", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "typescript": "<7" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.30.tgz", + "integrity": "sha512-73fjwEV8wat6aOZ6U/y/hqtE30ocrIWECg67b0txGczOMNw+MffLmvJ5fnFfN9drVUEYZzLdaNo6VAy6G6avMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.30" + } + }, + "node_modules/@volar/language-server": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.30.tgz", + "integrity": "sha512-tcP9fzzUBbsLIFHhgnRU4ncQjMn9G9Vax0ffkQmdCrXVEYqRroUepmyC5AVgiju5bCiLD6a55qen5iOTQHkb3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.30", + "@volar/language-service": "2.4.30", + "@volar/typescript": "2.4.30", + "path-browserify": "^1.0.1", + "request-light": "^0.7.0", + "vscode-languageserver": "^9.0.1", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "typescript": "<7" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@volar/language-service": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.30.tgz", + "integrity": "sha512-w/xDsASiqC71ggCOm7sTDXDNk/l72XEptodeRC68tgZ0e5QM4hM3zAqBGC7mBctvhrpYwKfMG+t9xcUo2hEFtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.30", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "typescript": "<7" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.30.tgz", + "integrity": "sha512-zym1ob/KwDDyN+0jGVtxwbxJSRRnUvv5HspCtz3yEfVVdCG4/dzxJktMGPAgemqRuVs81O0o/y0q3qOUErR8kg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.30.tgz", + "integrity": "sha512-/DgA5tgYFPfrLFuSjIMXMGHk1LQv2+P8eny6+BhGNzFJELWIW7UZlc56ZLIRFhLsPpMfIFxM8/HvOPBggrjTZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.30", + "@volar/language-service": "2.4.30", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "typescript": "<7" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vscode/emmet-helper": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz", + "integrity": "sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "emmet": "^2.4.3", + "jsonc-parser": "^2.3.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.15.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vscode/emmet-helper/node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vscode/l10n": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz", + "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-i18n": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ajv-i18n/-/ajv-i18n-4.2.0.tgz", + "integrity": "sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.0-beta.0" + } + }, + "node_modules/am-i-vibing": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.5.0.tgz", + "integrity": "sha512-KLcsDhqf1XRrJmJr+9I/C0EX2K+sGrAGZFgkmd84c8TJO9zJBu+/kFInjazu1KfJWFhWDKdRWkpBzEs7s35DVA==", + "license": "MIT", + "dependencies": { + "process-ancestry": "^0.1.0" + }, + "bin": { + "am-i-vibing": "dist/cli.mjs" + } + }, + "node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/astro": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/astro/-/astro-7.4.2.tgz", + "integrity": "sha512-FAH4cdDlFaVnQGjazLTEIC5vJqGlo5XANc1wIbzQHIqAjJTll/RWTUs+SPNW1JdezG4YGxMZllaE5A41T2kzhA==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-rs": "^0.5.1", + "@astrojs/internal-helpers": "0.13.0", + "@astrojs/markdown-satteri": "0.4.5", + "@astrojs/telemetry": "3.4.1", + "@capsizecss/unpack": "^4.0.1", + "@clack/prompts": "^1.8.1", + "@oslojs/encoding": "^1.1.0", + "am-i-vibing": "^0.5.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "ci-info": "^4.4.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^2.0.0", + "cookie": "^2.0.1", + "devalue": "^6.0.2", + "diff": "^9.0.0", + "dset": "^3.1.4", + "es-module-lexer": "^3.0.3", + "flattie": "^1.1.1", + "fontace": "~0.4.1", + "get-tsconfig": "5.0.0-beta.6", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.3.0", + "jsonc-parser": "^3.3.1", + "magic-string": "^1.4.3", + "magicast": "^0.5.5", + "mrmime": "^2.0.1", + "neotraverse": "^1.0.1", + "obug": "^3.0.0", + "p-limit": "^7.3.3", + "p-queue": "^9.3.5", + "package-manager-detector": "^1.9.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.7", + "rolldown": "^1.2.13", + "shiki": "^4.5.0", + "smol-toml": "^1.9.1", + "svgo": "^4.1.0", + "tinyclip": "^1.0.3", + "tinyexec": "^1.3.1", + "tinyglobby": "^0.2.17", + "tinyps": "^0.5.0", + "ultrahtml": "^1.7.0", + "unifont": "^1.0.3", + "unstorage": "^1.17.5", + "verkit": "^0.5.0", + "vite": "^8.3.4", + "vitefu": "^1.1.3", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^22.0.0", + "zod": "^4.6.6" + }, + "bin": { + "astro": "bin/astro.mjs" + }, + "engines": { + "node": ">=22.23.4", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.35.4" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "^7.3.0" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/astro-expressive-code": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.44.3.tgz", + "integrity": "sha512-LUpQmmvzr90JXP5QIAopgdjlOKLuT3x0wlPAUpc4OZtPtFS8sbflPcGPpL/lG3pQuUCQV2CXUFgYNBYNu9tphA==", + "license": "MIT", + "dependencies": { + "rehype-expressive-code": "^0.44.3", + "url-extras": "^0.1.0" + }, + "peerDependencies": { + "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta || ^7.0.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.2.tgz", + "integrity": "sha512-wsv86UuNFuPnVieKLyECTT+CP1WSAHeoIg5P3xu2kA9Z+7fVPoKt7dxzSeEhtJel0AI+NW3fIW3KtTKQKUCngg==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/common-ancestor-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz", + "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">= 18" + } + }, + "node_modules/cookie": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==", + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", + "license": "MIT" + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz", + "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^7.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "nth-check": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-selector-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.3.0.tgz", + "integrity": "sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", + "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-6.0.3.tgz", + "integrity": "sha512-3woMEITftG1wKeO/4d/QXH1DVKctTSZg3jNGPpjp9hNr5Hos8MCFF5McTML5ZtgKDObm2R591B0spRp2IVernA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/direction": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", + "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", + "license": "MIT", + "bin": { + "direction": "cli.js" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/emmet": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "./packages/scanner", + "./packages/abbreviation", + "./packages/css-abbreviation", + "./" + ], + "dependencies": { + "@emmetio/abbreviation": "^2.3.3", + "@emmetio/css-abbreviation": "^2.1.8" + } + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-3.0.4.tgz", + "integrity": "sha512-BldNY5mwkVu+cQ5Ymn3e6hB9Sx8XHx4ZevWbiUyZbfKxJxYO27Hf0wfzkxIaD5CAJMaGl3YspKELj0ff/7nCMA==", + "license": "MIT" + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.1.tgz", + "integrity": "sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/expressive-code": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/expressive-code/-/expressive-code-0.44.3.tgz", + "integrity": "sha512-7RGslhJTNt01pdn5I3QmVh5C8ZIiSm0A+ORQ9j9r39oOgJVKjn/7dXl9rMT/SqmFLE6pJkTYI7UjW0BxJnW7OQ==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.3", + "@expressive-code/plugin-frames": "^0.44.3", + "@expressive-code/plugin-shiki": "^0.44.3", + "@expressive-code/plugin-text-markers": "^0.44.3" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-string-truncated-width": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", + "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", + "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^3.0.2" + } + }, + "node_modules/fast-uri": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.9.tgz", + "integrity": "sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fast-wrap-ansi": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", + "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", + "license": "MIT", + "dependencies": { + "fast-string-width": "^3.0.2" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fnv1a-64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/fnv1a-64/-/fnv1a-64-0.1.2.tgz", + "integrity": "sha512-mJbcILTPybAR1jdOwt/lVv8N2cffeJFFP+gVbSAwLEx1ujXH27RpPd8Rokec/KX9c76UYIB6Co+H4lQzxPnJfA==", + "license": "MIT" + }, + "node_modules/fontace": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.2" + } + }, + "node_modules/fontkitten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", + "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-tsconfig": { + "version": "5.0.0-beta.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.6.tgz", + "integrity": "sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "engines": { + "node": ">=20.20.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/h3": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "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" + } + }, + "node_modules/hast-util-embedded": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz", + "integrity": "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-format": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-format/-/hast-util-format-1.1.0.tgz", + "integrity": "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-minify-whitespace": "^1.0.0", + "hast-util-phrasing": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "html-whitespace-sensitive-tag-names": "^3.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", + "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-body-ok-link": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.1.tgz", + "integrity": "sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-minify-whitespace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hast-util-minify-whitespace/-/hast-util-minify-whitespace-1.0.1.tgz", + "integrity": "sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-is-body-ok-link": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-select": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.4.tgz", + "integrity": "sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "bcp-47-match": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "css-selector-parser": "^3.0.0", + "devlop": "^1.0.0", + "direction": "^2.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "nth-check": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-whitespace-sensitive-tag-names": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.1.tgz", + "integrity": "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.3.0.tgz", + "integrity": "sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==", + "license": "BSD-2-Clause" + }, + "node_modules/i18next": { + "version": "26.5.8", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.5.8.tgz", + "integrity": "sha512-EQx2RyhwINMekbykhZpAJQ2ILeJqnYOpRjWEkSVv45pR8yeVbb0thr2zxQ+dOo365OIb7h06BKPtt16WE8Wliw==", + "funding": [ + { + "type": "individual", + "url": "https://www.locize.com/i18next" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + }, + { + "type": "individual", + "url": "https://www.locize.com" + } + ], + "license": "MIT", + "peerDependencies": { + "typescript": "^5 || ^6 || ^7" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz", + "integrity": "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz", + "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.6.0" + } + }, + "node_modules/magicast": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.5.tgz", + "integrity": "sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.1.tgz", + "integrity": "sha512-Gqpa3MHorXYEZ0VfbroyvBlVKUfz371V6mIERqOYMcb0W1D3LwmFq1ZW4O2TDrbn+4ZmGLwMWeFRJgYZ+bc5fQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-character": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.3.tgz", + "integrity": "sha512-xPgpDNl0/OXHsI7TlaIs22lWnH3KlpvZdXG1ET/m/YT2Hhdkx8lJV4kLphE6l9simyM4KPDFBwas08BgEob6Jw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.1.0.tgz", + "integrity": "sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.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.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.1.tgz", + "integrity": "sha512-OuJHqvr455pwu2OaOrir7dbzqs4jlWKOtlu9L6GjcIjjQwNyw02VntQsr/Ek6/A13vgnXfUhBekWRUP1OkNivw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.2.0.tgz", + "integrity": "sha512-2Jn/ADrHFFyyniBMi0bncTbJqU78K3/TEYvzvwrWWzD9MYPUa/Gm4r3nOeKFQg/PDM5BsbDYdc8ackW4NTY6NA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0" + }, + "node_modules/micromark": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.3.tgz", + "integrity": "sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-edit-map": "^1.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.4.tgz", + "integrity": "sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.1.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-edit-map": "^1.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.3" + } + }, + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.2.tgz", + "integrity": "sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.1.0.tgz", + "integrity": "sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-edit-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-edit-map/-/micromark-util-edit-map-1.0.0.tgz", + "integrity": "sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.3.tgz", + "integrity": "sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", + "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.5.tgz", + "integrity": "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/obug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/obug/-/obug-3.0.0.tgz", + "integrity": "sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/p-limit": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.3.tgz", + "integrity": "sha512-SKgVvDU5TNIxQ4r30U75BNLC6a+6GOEjngrk/ysM5+Zu3oJuk1SC5ApzIzY/7PjCEjoVPMWJ0zho/4QUiEB7TQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.2.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.5.tgz", + "integrity": "sha512-Lki/zhXFVmDhesBUn/yHRLW9Bte7mE7xoFHzTR8sIomV7a2z+LxYAPkGvdfidNiu4fKSfjtawixxSHcZci5QcQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.2.tgz", + "integrity": "sha512-prbX4Z3YszrFNgH+MW5Zoeq3baXrMtP/MQnFeET90UB/GtGcGDQ5Usg9OCy6ETjTTntOw1SL2z9fMPUppN3Guw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.9.0.tgz", + "integrity": "sha512-zAMfbta9nPA8AKkA4WdmNAT8R8s6Dk0/xwPsqNnRidMFcLo1YkLuPDTgs2f64XdzS8vbLNnoJ+uUIkgbz7oRHA==", + "license": "MIT" + }, + "node_modules/pagefind": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz", + "integrity": "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==", + "license": "MIT", + "bin": { + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.5.2", + "@pagefind/darwin-x64": "1.5.2", + "@pagefind/freebsd-x64": "1.5.2", + "@pagefind/linux-arm64": "1.5.2", + "@pagefind/linux-x64": "1.5.2", + "@pagefind/windows-arm64": "1.5.2", + "@pagefind/windows-x64": "1.5.2" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/piccolore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", + "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.20", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-nested": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-7.0.2.tgz", + "integrity": "sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz", + "integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz", + "integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-ancestry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz", + "integrity": "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/property-information": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype-expressive-code": { + "version": "0.44.3", + "resolved": "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.44.3.tgz", + "integrity": "sha512-vaVuQPobFXvmtcHXQ5uqXZlzuuPnLyIuZcX/03sX1U/Qfj9fZrPYI9w66OSr/PUx6alzRYmreEwgYBbsVx8HsA==", + "license": "MIT", + "dependencies": { + "expressive-code": "^0.44.3" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-4.0.0.tgz", + "integrity": "sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.3.tgz", + "integrity": "sha512-gCaK+ndZ0hYezlqFegHFCVh2CQemsi0Npdh1qVM9bxlUFknjkbP6VmojWhddOCrbK0PbbacmYLWfTULRiT1eWA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rolldown": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.15.tgz", + "integrity": "sha512-6odND+fel5zVw3I4Yc2e69gvguDnX0CAAGiNDZSq4ik5WUcaLrkD2GLuog0XcODbor31hZ5ayEMgVDno+KPV5g==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.155.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.15", + "@rolldown/binding-android-arm64": "1.2.15", + "@rolldown/binding-darwin-arm64": "1.2.15", + "@rolldown/binding-darwin-x64": "1.2.15", + "@rolldown/binding-freebsd-x64": "1.2.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.15", + "@rolldown/binding-linux-arm64-gnu": "1.2.15", + "@rolldown/binding-linux-arm64-musl": "1.2.15", + "@rolldown/binding-linux-ppc64-gnu": "1.2.15", + "@rolldown/binding-linux-s390x-gnu": "1.2.15", + "@rolldown/binding-linux-x64-gnu": "1.2.15", + "@rolldown/binding-linux-x64-musl": "1.2.15", + "@rolldown/binding-openharmony-arm64": "1.2.15", + "@rolldown/binding-win32-arm64-msvc": "1.2.15", + "@rolldown/binding-win32-x64-msvc": "1.2.15" + } + }, + "node_modules/satteri": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.10.5.tgz", + "integrity": "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.5", + "@types/hast": "^3.0.5", + "@types/mdast": "^4.0.4", + "@types/unist": "^3.0.3" + }, + "optionalDependencies": { + "@bruits/satteri-darwin-arm64": "0.10.5", + "@bruits/satteri-darwin-x64": "0.10.5", + "@bruits/satteri-linux-arm64-gnu": "0.10.5", + "@bruits/satteri-linux-arm64-musl": "0.10.5", + "@bruits/satteri-linux-x64-gnu": "0.10.5", + "@bruits/satteri-linux-x64-musl": "0.10.5", + "@bruits/satteri-wasm32-wasi": "0.10.5", + "@bruits/satteri-win32-arm64-msvc": "0.10.5", + "@bruits/satteri-win32-x64-msvc": "0.10.5" + } + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.5.tgz", + "integrity": "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==", + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.5", + "@img/sharp-darwin-x64": "0.35.5", + "@img/sharp-freebsd-wasm32": "0.35.5", + "@img/sharp-libvips-darwin-arm64": "1.3.4", + "@img/sharp-libvips-darwin-x64": "1.3.4", + "@img/sharp-libvips-linux-arm": "1.3.4", + "@img/sharp-libvips-linux-arm64": "1.3.4", + "@img/sharp-libvips-linux-ppc64": "1.3.4", + "@img/sharp-libvips-linux-riscv64": "1.3.4", + "@img/sharp-libvips-linux-s390x": "1.3.4", + "@img/sharp-libvips-linux-x64": "1.3.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", + "@img/sharp-libvips-linuxmusl-x64": "1.3.4", + "@img/sharp-linux-arm": "0.35.5", + "@img/sharp-linux-arm64": "0.35.5", + "@img/sharp-linux-ppc64": "0.35.5", + "@img/sharp-linux-riscv64": "0.35.5", + "@img/sharp-linux-s390x": "0.35.5", + "@img/sharp-linux-x64": "0.35.5", + "@img/sharp-linuxmusl-arm64": "0.35.5", + "@img/sharp-linuxmusl-x64": "0.35.5", + "@img/sharp-webcontainers-wasm32": "0.35.5", + "@img/sharp-win32-arm64": "0.35.5", + "@img/sharp-win32-ia32": "0.35.5", + "@img/sharp-win32-x64": "0.35.5" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/shiki": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.5.0.tgz", + "integrity": "sha512-OcRW72ngQvc+MSVWBRIovC/BTW589iUE/Vxav7VeM4RcY9MUjqB+IR6ILG1k9nuW6LiG/nct9uma4/MBtnZbmQ==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.5.0", + "@shikijs/engine-javascript": "4.5.0", + "@shikijs/engine-oniguruma": "4.5.0", + "@shikijs/langs": "4.5.0", + "@shikijs/themes": "4.5.0", + "@shikijs/types": "4.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz", + "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^24.9.2", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.4.1" + }, + "bin": { + "sitemap": "dist/esm/cli.js" + }, + "engines": { + "node": ">=20.19.5", + "npm": ">=10.8.2" + } + }, + "node_modules/smol-toml": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.1.tgz", + "integrity": "sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0.tgz", + "integrity": "sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/std-env": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.3.0.tgz", + "integrity": "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/svgo": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.1.0.tgz", + "integrity": "sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^6.0.0", + "css-tree": "^3.0.1", + "css-what": "^7.0.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "1.6.1" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-1.0.3.tgz", + "integrity": "sha512-nTv2raKFMzGG6JJp0lpNDsRPdfFE6UHlu2rVEjXo8vkx1ZS3LW2CVXqIaLu8xZlu+6tbFs9V58Qc/Jmk/Ii7wA==", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz", + "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyps": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/tinyps/-/tinyps-0.5.1.tgz", + "integrity": "sha512-B6Ykif5HflC3AdDkS4Zst/2muYVfeXoVMy+KorqH80s/1x4vunIORpNySH681X7fjj+dFM9MDKD6/Hsccjb87Q==", + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, + "node_modules/typesafe-path": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", + "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-auto-import-cache": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.6.tgz", + "integrity": "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.8" + } + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz", + "integrity": "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "8.12.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.12.3.tgz", + "integrity": "sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-1.0.3.tgz", + "integrity": "sha512-XGnEwj5sWdCbiBX01mWLSBncS0yMRjnLygau3IfdOlfjMacNIQvTGW4VH7pWBq+gGWArfSef/CensMLjMmIr/A==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "fnv1a-64": "^0.1.2", + "std-env": "^4.2.0", + "undici": "^8.0.0" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.6.tgz", + "integrity": "sha512-gjKtcmn/KwZuJZO9o2sc0esAQnhmTw0LviDHwevTXbJMYs0dRTp8ZEEWXHU0vTpzbN3cA0yxlTeyXssMp3zDqw==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.11", + "lru-cache": "^11.5.3", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.4" + }, + "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 || ^11.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 + } + } + }, + "node_modules/url-extras": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/url-extras/-/url-extras-0.1.0.tgz", + "integrity": "sha512-8tzwTeXFPuX/5PHuCDQE5Dd9Ts4rwoq2t9aIT+HS4iAVpmj5l4Ao7Q+BuuFjvWRqrLswBhQDk8O96ZicgCqQqw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/verkit": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/verkit/-/verkit-0.5.0.tgz", + "integrity": "sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g==", + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.5.tgz", + "integrity": "sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==", + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.7", + "postcss": "^8.5.30", + "rolldown": "~1.2.14", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.7.1 || ^0.8.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/volar-service-css": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.71.tgz", + "integrity": "sha512-wRRFt9BpjMKCazcgOh67MSjUjiWUCAh99DyYSDIOTuxaRjEtDC7PpB0k1Y1wbJIW/pVtMUSVbpPo3UGSm0Byxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-emmet": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.71.tgz", + "integrity": "sha512-zqjzt6bN95e3CUstBm0PBFAJnrfz0ZAARka87fart46/gNCLLuP3Vujy8V/J8HEziTFLnfkgIASLFYPUhonJcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/css-parser": "^0.4.1", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-html": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.71.tgz", + "integrity": "sha512-e8tHPhgQ7ooLfudAEIku+kgd9pWkq3SSz8RbnQDI1+Eb8wbenkLGHqoirLqz5ORLV6wIMr2Iv08RWBG5eOcgpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-prettier": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.71.tgz", + "integrity": "sha512-Rz7JVH3qD108UCdmIEiZvOBNljMt2nLFdbN8AXcDfn7xD9F5I2aCIsDVqBbXw21PsnxG0b7MfwtNF+zPS/NKUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0", + "prettier": "^2.2 || ^3.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + }, + "prettier": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.71.tgz", + "integrity": "sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-browserify": "^1.0.1", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-nls": "^5.2.0", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript-twoslash-queries": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.71.tgz", + "integrity": "sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-yaml": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.71.tgz", + "integrity": "sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8", + "yaml-language-server": "~1.23.0" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/vscode-css-languageservice": { + "version": "6.3.10", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.10.tgz", + "integrity": "sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "3.17.5", + "vscode-uri": "^3.1.0" + } + }, + "node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-html-languageservice": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.6.2.tgz", + "integrity": "sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.1.0" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", + "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.2" + }, + "engines": { + "npm": ">=7.0.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-10.0.0.tgz", + "integrity": "sha512-USSfxg0vDIpTQqlQBGxF3mBARyoS8cU7LHLpbYNh6dOJt32dlskxPWB0Irrh5TllTmyf7oNLAvqDqzklbwwnpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.5.tgz", + "integrity": "sha512-FW4fBMzZ99N8xeob4py0l050wgCoRgTpEq5Xcsb9lM1bc29UKGR/wSV+4knaqFxssFHajy7OzNiKP/m3U1ZEuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "10.0.0", + "vscode-languageserver-types": "3.18.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.16.tgz", + "integrity": "sha512-qeNEuOi9a3qkqRf7Gfez2WL2VwlBTLCNekHBGO9kxPVUp9XuY15yfTJ9jwvOwKI0I2MhUUfZq95NSp+LK1CLQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.5.tgz", + "integrity": "sha512-kPd6+JQNz3HMJvjKlqUxERSlZHAntl/aGpsk7ImwIh0ewDKDcjgAEyVSYciPiOJD3ftbK9IrfiqUeTZLSbCizw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-languageserver/node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver/node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-nls": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.2.0.tgz", + "integrity": "sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-language-server": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.23.0.tgz", + "integrity": "sha512-3qVyCOexLCWw06PQa5kRPwvMWMZ/eZeCRWUvgD6a0OkqL/4iCnxy2WumbWifa937Uo5xhyWJ0uxlU39ljhNh7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "ajv-i18n": "^4.2.0", + "prettier": "^3.8.1", + "request-light": "^0.5.7", + "vscode-json-languageservice": "4.1.8", + "vscode-languageserver": "^9.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.16.0", + "vscode-uri": "^3.0.2", + "yaml": "2.8.3" + }, + "bin": { + "yaml-language-server": "bin/yaml-language-server" + } + }, + "node_modules/yaml-language-server/node_modules/request-light": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", + "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==", + "dev": true, + "license": "MIT" + }, + "node_modules/yaml-language-server/node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz", + "integrity": "sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^9.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "string-width": "^8.2.1", + "y18n": "^5.0.5", + "yargs-parser": "^22.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz", + "integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/site/package.json b/site/package.json new file mode 100644 index 00000000..7b48e2b9 --- /dev/null +++ b/site/package.json @@ -0,0 +1,36 @@ +{ + "name": "driga-website", + "type": "module", + "private": true, + "version": "0.0.0", + "engines": { + "node": ">=22.12.0" + }, + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build && node scripts/check-tables.mjs && node scripts/check-social-card.mjs && node scripts/check-canonical.mjs && node scripts/check-links.mjs", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/markdown-remark": "7.3.4", + "@astrojs/starlight": "0.42.7", + "@catppuccin/starlight": "2.1.0", + "@fontsource/geist-mono": "5.3.0", + "@fontsource/geist-sans": "5.3.0", + "@fontsource/ibm-plex-mono": "5.3.0", + "@fontsource/ibm-plex-sans": "5.3.0", + "astro": "7.4.2", + "sharp": "0.35.5" + }, + "devDependencies": { + "@astrojs/check": "0.9.12", + "typescript": "6.0.3" + }, + "overrides": { + "@catppuccin/starlight": { + "@astrojs/starlight": "$@astrojs/starlight" + } + } +} diff --git a/site/public/apple-touch-icon.png b/site/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9b208a53168e745d4e344ce632ed5cc444495a67 GIT binary patch literal 9201 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 R0?+V(l;t(#YM}37{{s}@dcFVv literal 0 HcmV?d00001 diff --git a/site/public/favicon.svg b/site/public/favicon.svg new file mode 100644 index 00000000..cd1f7cdd --- /dev/null +++ b/site/public/favicon.svg @@ -0,0 +1,13 @@ + + Driga — Murmur + + + + + + + + + + + diff --git a/site/public/robots.txt b/site/public/robots.txt new file mode 100644 index 00000000..0ba2059f --- /dev/null +++ b/site/public/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Allow: / + +# Every page is also served as clean Markdown at .md, and llms.txt is a +# map of the whole site with a one-line summary per page. +Sitemap: https://driga.dev/sitemap-index.xml diff --git a/site/public/social-card.png b/site/public/social-card.png new file mode 100644 index 0000000000000000000000000000000000000000..092a750b89ba494618d157c97f06e8db89b6ca9d GIT binary patch literal 42971 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

ZS&u-l_+@{4gk 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]+rel="canonical"[^>]+href="([^"]+)"/i)?.[1] ?? null; +} + +function ogUrlOf(html) { + return html.match(/]+property="og:url"[^>]+content="([^"]+)"/i)?.[1] ?? null; +} + +// `https://driga.dev` and `https://driga.dev/` are the same address, and the +// sitemap writes the first while the canonical writes the second. Comparing +// them literally would fail the site's own landing page. +function key(url) { + return url.replace(/\/$/, ""); +} + +let pages = []; +try { + pages = await htmlFiles(dist); +} catch (error) { + console.error(`check-canonical: cannot read ${dist} — run \`npm run build\` first`); + console.error(String(error)); + process.exit(1); +} + +if (pages.length === 0) { + console.error("check-canonical: the build produced no HTML, which cannot be right"); + process.exit(1); +} + +// The 404 is served for addresses that do not exist, so it is the one page the +// sitemap must not list and the one whose canonical proves nothing. +const NOT_FOUND = join(dist, "404.html"); + +const failures = []; +const canonicals = new Map(); +for (const page of pages) { + const name = page.replace(dist, ""); + const html = await readFile(page, "utf8"); + const canonical = canonicalOf(html); + const ogUrl = ogUrlOf(html); + + if (canonical === null) { + failures.push(`${name}: no `); + continue; + } + if (canonical.endsWith(".html")) { + failures.push(`${name}: canonical is ${canonical}, which redirects to the extensionless path`); + } + if (ogUrl !== canonical) { + failures.push(`${name}: og:url is ${ogUrl ?? "absent"} but the canonical is ${canonical}`); + } + if (page !== NOT_FOUND) canonicals.set(key(canonical), name); +} + +let sitemap; +try { + sitemap = await readFile(join(dist, "sitemap-0.xml"), "utf8"); +} catch { + console.error("check-canonical: dist/sitemap-0.xml is missing, so nothing tells a crawler these pages exist"); + process.exit(1); +} +const listed = new Set( + [...sitemap.matchAll(/([^<]+)<\/loc>/g)].map((match) => key(match[1])), +); + +for (const [canonical, name] of canonicals) { + if (!listed.has(canonical)) { + failures.push(`${name}: canonical ${canonical} is not in the sitemap`); + } +} + +if (failures.length > 0) { + console.error("check-canonical: pages whose canonical URL is not the one the site publishes:"); + for (const failure of failures) console.error(` ${failure}`); + console.error("check-canonical: see src/starlight-route-data.ts, which rewrites these tags"); + process.exit(1); +} + +console.log(`check-canonical: ${pages.length} page(s), canonical matches og:url and the sitemap`); diff --git a/site/scripts/check-links.mjs b/site/scripts/check-links.mjs new file mode 100644 index 00000000..77170889 --- /dev/null +++ b/site/scripts/check-links.mjs @@ -0,0 +1,77 @@ +// Assert that every internal link in the built site resolves: the page exists +// and, for a link with a fragment, the target page has an element with that id. +// +// The generated reference links its summary tables to headings by slug, and the +// slug is computed in Go (cmd/driga-docgen) while the heading id is computed by +// Starlight. Nothing else notices when the two disagree: a dead in-page anchor +// builds clean and simply scrolls nowhere. Hand-written guides link to each +// other the same way. +import { readdir, readFile } from "node:fs/promises"; +import { join, relative } from "node:path"; +import { fileURLToPath } from "node:url"; + +const dist = fileURLToPath(new URL("../dist/", import.meta.url)); + +async function htmlFiles(dir) { + const found = []; + for (const entry of await readdir(dir, { withFileTypes: true })) { + const path = join(dir, entry.name); + if (entry.isDirectory()) found.push(...(await htmlFiles(path))); + else if (entry.name.endsWith(".html")) found.push(path); + } + return found; +} + +// `/guides/flow` is served from guides/flow.html under build.format "file". +function pageKey(pathname) { + const clean = pathname.replace(/\/$/, "") || "/index"; + return clean.replace(/^\//, "").replace(/\.html$/, ""); +} + +let files; +try { + files = await htmlFiles(dist); +} catch (error) { + console.error(`check-links: cannot read ${dist} — run \`npm run build\` first`); + console.error(String(error)); + process.exit(1); +} + +const ids = new Map(); +const html = new Map(); +for (const file of files) { + const key = relative(dist, file).replace(/\.html$/, ""); + const body = await readFile(file, "utf8"); + html.set(key, body); + ids.set(key, new Set([...body.matchAll(/\sid="([^"]+)"/g)].map((m) => m[1]))); +} + +const failures = []; +let checked = 0; +for (const [key, body] of html) { + if (key === "404") continue; + for (const match of body.matchAll(/]*href="([^"]+)"/g)) { + const href = match[1].replace(/&/g, "&"); + if (/^(https?:|mailto:|\/\/)/.test(href) || href.startsWith("/_astro/")) continue; + if (/\.(md|txt|xml|svg|png)(#|$)/.test(href)) continue; + const url = new URL(href, `https://driga.dev/${key}`); + const target = pageKey(url.pathname); + checked += 1; + if (!ids.has(target)) { + failures.push(`${key}: ${href} (no such page)`); + continue; + } + const fragment = decodeURIComponent(url.hash.slice(1)); + if (fragment && fragment !== "_top" && !ids.get(target).has(fragment)) { + failures.push(`${key}: ${href} (no #${fragment} on ${target})`); + } + } +} + +if (failures.length > 0) { + console.error("check-links: internal links that do not resolve:"); + for (const failure of [...new Set(failures)]) console.error(` ${failure}`); + process.exit(1); +} + +console.log(`check-links: ${checked} internal link(s) across ${html.size} page(s), all resolve`); diff --git a/site/scripts/check-social-card.mjs b/site/scripts/check-social-card.mjs new file mode 100644 index 00000000..aaa8868e --- /dev/null +++ b/site/scripts/check-social-card.mjs @@ -0,0 +1,114 @@ +// Assert that the og:image every page advertises is actually in the build, and +// is the size the same head claims it is. +// +// Starlight emits `twitter:card: summary_large_image` and no image to pair with +// it, so `src/components/Head.astro` supplies one. That tag is written by hand +// against a file in `public/`, and nothing else connects the two: rename or drop +// `social-card.png` and the build still succeeds while every page points a +// crawler at a 404 — a failure that shows up in other people's link previews +// long before it shows up in anything this repository builds or serves. +// +// The dimensions are checked too, because `og:image:width` and `og:image:height` +// are hand-typed. A card re-rendered at another size with the numbers left +// behind makes consumers reserve the wrong box, which is the whole reason those +// tags exist. +import { readdir, readFile } from "node:fs/promises"; +import { join } from "node:path"; + +const dist = new URL("../dist/", import.meta.url).pathname; + +async function htmlFiles(dir) { + const found = []; + for (const entry of await readdir(dir, { withFileTypes: true })) { + const path = join(dir, entry.name); + if (entry.isDirectory()) found.push(...(await htmlFiles(path))); + else if (entry.name.endsWith(".html")) found.push(path); + } + return found; +} + +function meta(html, attribute, name) { + const pattern = new RegExp( + `]+${attribute}="${name}"[^>]+content="([^"]+)"`, + "i", + ); + return html.match(pattern)?.[1] ?? null; +} + +// The IHDR chunk is the first one in every PNG and holds the dimensions as two +// big-endian 32-bit integers, so the header alone answers this without a decoder. +function pngSize(bytes) { + const signature = "89504e470d0a1a0a"; + if (bytes.subarray(0, 8).toString("hex") !== signature) return null; + if (bytes.subarray(12, 16).toString("ascii") !== "IHDR") return null; + return { width: bytes.readUInt32BE(16), height: bytes.readUInt32BE(20) }; +} + +let pages = []; +try { + pages = await htmlFiles(dist); +} catch (error) { + console.error(`check-social-card: cannot read ${dist} — run \`npm run build\` first`); + console.error(String(error)); + process.exit(1); +} + +const missingTag = []; +const declared = new Map(); +for (const page of pages) { + const html = await readFile(page, "utf8"); + const href = meta(html, "property", "og:image"); + if (href === null) { + missingTag.push(page.replace(dist, "")); + continue; + } + const width = meta(html, "property", "og:image:width"); + const height = meta(html, "property", "og:image:height"); + declared.set(href, { width, height }); +} + +if (missingTag.length > 0) { + console.error("check-social-card: pages built without an og:image, so they unfurl as an empty large card:"); + for (const page of missingTag) console.error(` ${page}`); + process.exit(1); +} + +if (declared.size === 0) { + console.error("check-social-card: the build produced no HTML, which cannot be right"); + process.exit(1); +} + +for (const [href, size] of declared) { + // The tag is written by hand, so an author could reasonably make it relative. + // Open Graph consumers do not resolve those, and neither does this check — + // saying so beats throwing a URL parse error at whoever runs the build. + let path; + try { + path = new URL(href).pathname; + } catch { + console.error(`check-social-card: og:image is "${href}", which is not an absolute URL — consumers cannot resolve it`); + process.exit(1); + } + let bytes; + try { + bytes = await readFile(join(dist, path)); + } catch { + console.error(`check-social-card: ${href} is advertised by every page but ${path} is not in the build`); + process.exit(1); + } + + const actual = pngSize(bytes); + if (actual === null) { + console.error(`check-social-card: ${path} is not a PNG, so consumers that trust the tag will show nothing`); + process.exit(1); + } + if (String(actual.width) !== size.width || String(actual.height) !== size.height) { + console.error( + `check-social-card: ${path} is ${actual.width}x${actual.height}, but the head declares ${size.width}x${size.height}`, + ); + console.error("check-social-card: re-render with `node scripts/social-card.mjs`, or correct the tags in src/components/Head.astro"); + process.exit(1); + } +} + +console.log(`check-social-card: ${declared.size} og:image target(s), present and correctly sized`); diff --git a/site/scripts/check-tables.mjs b/site/scripts/check-tables.mjs new file mode 100644 index 00000000..748dea86 --- /dev/null +++ b/site/scripts/check-tables.mjs @@ -0,0 +1,99 @@ +// Assert that every table in the built site sits inside a scroll container. +// +// The generated field reference has tables far wider than a phone. Unwrapped, +// they are clipped at the content edge with no way to reach the rest — the page +// correctly refuses to scroll sideways, and the last two columns simply cannot +// be read. +// +// This runs against `dist/` rather than inside the rehype plugin on purpose. A +// plugin can only check tables it was handed, so it cannot notice the failure +// that matters most: a Starlight upgrade taking over the markdown config, after +// which the plugin never runs at all and every table ships bare. Reading the +// emitted HTML is the only vantage point from which that is visible. +import { readdir, readFile } from "node:fs/promises"; +import { join } from "node:path"; +import { fileURLToPath } from "node:url"; + +// fileURLToPath, not .pathname: a URL keeps percent-escapes, so a checkout +// under a path containing a space fails to read its own build output and +// reports "run `npm run build` first" immediately after a successful build. +const dist = fileURLToPath(new URL("../dist/", import.meta.url)); + +async function htmlFiles(dir) { + const found = []; + for (const entry of await readdir(dir, { withFileTypes: true })) { + const path = join(dir, entry.name); + if (entry.isDirectory()) found.push(...(await htmlFiles(path))); + else if (entry.name.endsWith(".html")) found.push(path); + } + return found; +} + +// Walks the raw HTML rather than parsing it: the only question is whether the +// nearest enclosing element of each carries the wrapper class, and the +// build emits the wrapper immediately around the table. +function unwrappedTables(html) { + let count = 0; + let from = 0; + for (;;) { + const at = html.indexOf(" m[1].split(/\s+/).includes("table-wrap"), + ); + const opensWrapper = wrapperMatches.length + ? wrapperMatches[wrapperMatches.length - 1].index + : -1; + const closesDiv = before.lastIndexOf(""); + if (opensWrapper === -1 || closesDiv > opensWrapper) count += 1; + from = at + 6; + } +} + +let pages = []; +try { + pages = await htmlFiles(dist); +} catch (error) { + console.error(`check-tables: cannot read ${dist} — run \`npm run build\` first`); + console.error(String(error)); + process.exit(1); +} + +if (pages.length === 0) { + console.error("check-tables: the build produced no HTML, which cannot be right"); + process.exit(1); +} + +let tables = 0; +const offenders = []; +for (const page of pages) { + const html = await readFile(page, "utf8"); + const total = (html.match(/
0) offenders.push(`${page.replace(dist, "")}: ${bare} of ${total}`); +} + +if (offenders.length > 0) { + console.error( + "check-tables: tables outside a .table-wrap container would be clipped on a phone:", + ); + for (const offender of offenders) console.error(` ${offender}`); + process.exit(1); +} + +// Zero tables would mean the reference pages stopped rendering their tables, +// which is a louder failure than an unwrapped one. +if (tables === 0) { + console.error("check-tables: no tables found in the built site at all"); + process.exit(1); +} + +console.log(`check-tables: ${tables} table(s) across ${pages.length} page(s), all wrapped`); diff --git a/site/scripts/social-card.mjs b/site/scripts/social-card.mjs new file mode 100644 index 00000000..aba8d801 --- /dev/null +++ b/site/scripts/social-card.mjs @@ -0,0 +1,44 @@ +// Renders public/social-card.png, the og:image every page advertises. +// +// The PNG is committed; this script is how it is re-rendered, not part of the +// build. `scripts/check-social-card.mjs` asserts during the build that the +// committed file exists and matches the size declared in Head.astro. +// +// The mark is read from the product's own brand asset +// (internal/web/static/brand/lockup-white.svg), so the card cannot drift from +// the logo the app ships. Colours are Catppuccin Mocha, the app's dark theme. +// Text is rasterised with whatever IBM Plex or sans-serif face the system +// font configuration resolves, which is why the output is committed rather +// than rebuilt in CI. +// +// node scripts/social-card.mjs +import { readFile } from "node:fs/promises"; +import { fileURLToPath } from "node:url"; +import sharp from "sharp"; + +const WIDTH = 1280; +const HEIGHT = 640; + +const brand = fileURLToPath( + new URL("../../internal/web/static/brand/lockup-white.svg", import.meta.url), +); +const out = fileURLToPath(new URL("../public/social-card.png", import.meta.url)); + +const lockup = await readFile(brand, "utf8"); +const inner = lockup + .replace(/^[\s\S]*?]*>/, "") + .replace(/<\/svg>\s*$/, "") + .replace(/]*>[\s\S]*?<\/title>/, ""); + +// The lockup's viewBox is 360x128; scaled to 720 wide it is 256 tall. +const svg = ` + + + ${inner} + See what your coding agents are doing, + and what needs you. + driga.dev +`; + +await sharp(Buffer.from(svg)).png({ compressionLevel: 9 }).toFile(out); +console.log(`social-card: wrote ${out}`); diff --git a/site/src/assets/lockup-white.svg b/site/src/assets/lockup-white.svg new file mode 100644 index 00000000..fa86c1d2 --- /dev/null +++ b/site/src/assets/lockup-white.svg @@ -0,0 +1,22 @@ + + Driga — Murmur + + + + + + + + + + + + + + + + + + + + diff --git a/site/src/assets/lockup.svg b/site/src/assets/lockup.svg new file mode 100644 index 00000000..25a82f49 --- /dev/null +++ b/site/src/assets/lockup.svg @@ -0,0 +1,22 @@ + + Driga — Murmur + + + + + + + + + + + + + + + + + + + + diff --git a/site/src/assets/media/flow-dark.jpg b/site/src/assets/media/flow-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c261d5b80d1045f7c106194301bf129b87c772ba GIT binary patch literal 62916 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

KXq6&R5!6QRinW!(bT6dz-0;skp@b=B6enoM$p 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 U8UmvsFd716hX5N)XZ`=10D#)mRsaA1 literal 0 HcmV?d00001 diff --git a/site/src/assets/media/flow-light.jpg b/site/src/assets/media/flow-light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce4e14b7d3c8b233edddb64fe1e6e7d3f70d642c GIT binary patch literal 63977 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 literal 0 HcmV?d00001 diff --git a/site/src/assets/media/hero-dark.jpg b/site/src/assets/media/hero-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..781546728bb4ba212f36b18b11f0c070ff2791fc GIT binary patch literal 167348 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 yo&Y7plm&p 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 JMBJ~T{{SyJM-~78 literal 0 HcmV?d00001 diff --git a/site/src/assets/media/hero-light.jpg b/site/src/assets/media/hero-light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89bae59fd222dc7f50cd72922d319a8d8fedca7d GIT binary patch literal 160269 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 W*gZ}#a9}h6Mg>MgU`U6+|C<08t;*m4 literal 0 HcmV?d00001 diff --git a/site/src/assets/media/machines-dark.jpg b/site/src/assets/media/machines-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eabc7228408a5fddc6ac898a3302f3cac3b7984e GIT binary patch literal 126623 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 N|9^7@e*b&se*pGee8K<# literal 0 HcmV?d00001 diff --git a/site/src/assets/media/machines-light.jpg b/site/src/assets/media/machines-light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c9cbe201968bacf82d23591a2faf11ed64d243b GIT binary patch literal 121273 zcmeFYbyQp3w z2e_HPH35~8F?p+@27xNe{X^&i;Nk8|0KneC%|%0A`uRIO{pSyU|5M{{nyI;~)8Ehk z0`PK=$NrWM0E}?|7d-!O#gAZcS93hWF8*S6!7Il%mJE-RS^k5+_!~F-2N(Yv_jGe| z!}GlT8+Xytkip|HJpRJ+KjCKo2{(6g`I|o+&m(Sc=l-{@zv1r|6Tls`HSy1f_=^_c z3eW(^1El}%KmI=+9J2rbks|=$PV|42nV|uInqUCn+0=iOF@FI7h=Txt>Vf|#`;Rek zGIcTim$^qTz4+`W7E&OQ9?-o1PG9}qlzfCu6yPaY8fiAhL+#6Tb^ z1uZ2h88tZ&_>A!xH60xT0|O}~6EhP%Gc7#>{og`v;j2El|A6S>Ln3-IAQ}DtG~9d# z03Y57y8G?UEhfNi;H^8rTQ_a^4%`CVzH{sEnfUK;@BXd34{qOih^Lx71pw~f2Hd@K z=i&VacOE>t1q9r>edq4I`@jbzjC`bT)XA7k$-(>@&MtqUC^dCrhesY#fTUyMG6l+i zFbm6=eZ&ks({^ybo`wR6$Ba>X9d}x;f#4qS_GX)^H zgRca<0|ZC`t~da91{eQ_=>LQKZyte38`5Ic0q9(T?(>A}fiiYGMS>|DV&}c<#utgd z21@^8y6urC>-kOeXpsK<%J^&4Gr~OC!2j|uU`tuv_fCei;3) z$M63P!v7hBe^%1}KW2i#w=`+*FvW}e-_n2{FPNn;*L!w)O4Q#00{`0F;NM2V9L?xJ zHwDCcS)R!+5)f@um4v7~@W8-oyi9wv*;zjv7GJ^+(iqK>l58^=fAjv2g(mn6$;YLf z$jZkeyT%-r#@4)OB&2@>c-yy2;rNxPgBgQlfyu71({>w&$p+pTdSnP9j|i7>CTw(J z7Kb_1TaO)0AR5C8qoVfwOmrnn_m=`c4Xktoh)bCs1?ry5^A3w#nov@mxCDsrEKgsU zNF|1MEGyrup=N3nED`T9MjV>lDnZWn#)@QOO+G7u1ip45uqN*lyR50JrOD^L)IiI{ zi7@!8`JX8BzOhCZTHg*|ebv}3h09KyKk-Imi*bf9k?yA5jt{NOClYRigfZ(R5m z%Dz}RPZ5O5PU@A-7QwzQvG!|07RfZ#&POZ;6Z8NJY%O>yY;tT&rc=GqTG*uDSV5zW4zzw zWxXzkJyOd&+LrL>`k98}MTlJLp9xhTZwkI252G@9QDV5d>bqK+A<}>d+|W_GkaNCv zAGnk^UMPOc@~SoAowf1z1E?a6(^+_mdQ}ek>`>xSaZf3k<{tU8@J+K_Z(yHN3~N$FkShLWVRWN+#q-mrG&nJH!~&D!%cLP^{qzNesV)yTl4Mic(|Q;nd#}QyQ7}HV)$p0#XNEH(;(Q#74Y($`6N|6~h}qn^cM3ziXn~-UzMKIW3t={i)xP{^4i(C&v63hgUtZ zQhu>3Bjr1_mt(P03Reoo;`zLCyX%d&TAI?@eGnB6Ut!-WyOyojl=QXpXu*?I8+E{_ zQS*Is1;r98g%7XIYeGeiIVdT z0OQXpzf-6$aWt-mXpu$wdw+cM1|FXE1ER_?T!j%3|2PNBke;*+B;jjlB^mvkHQYS) zDuxp-%#!y@Q%Qq3lbbD<^0%-&>F;WZXlQXPkEFR6mxukFQu%O?3NN+p4pqjLsk_g7 zSMAs+HJqzBUe$##YWp;G*>EnpCTIr9u_?%7mxSjx7C8mcJ6q$Jn zX`Cjab)Yf%rr)*9!iSC>(Q$?P7s|bzuPQxXcAd((CPBMtcUdqyHvkJS_T9JLocf?` z#c`v{+fMuX+b9-(jwhPt#c7EKY&7bWZfLvuhrRNk;8>joF#_*!p^*(!Xxu4PU}2Z*GTu?o|M7}OiA%#}Yo$(1*4CO2xr72H1G`Iu zk299p^b)=n4-&oKKs%VAO@0=4r)C8!uRpUU04oZo3b;~z9l#d4kzO)&6~(y?)bpm61vj7m;*Zi#GM;*^CX`LTO7?d%Up zu59^!RwKpU=3mc#XACzVcT;HBUZ~dM$iF$(#-$@iU8yLp6sjg%l!^AS3_V}o=`_#N zvBku*uno1LSBK#%7zY03D~MkpudCD_1v51rsm-+Jwfbp=@fgsG>rQoP!S&PlkZf$}SJ{SgDb! z3~RwWW+6;TC0BMk4BmA0DUmof{`4Ziu=ZdnK;klYZ{yvG+fWHp<%M#Wyx7|dzc8lL z#OP@9fM@+^=hh%c+%T2Sm7teDJZE}=hS-o5~G8CjwmO8pb zu=TM~IWBXZ!D8mHh2ccj@r$~(Est&BO67|7dF%1oL zGLeP1))TVY(7p~89*9$zHCTdDW-Bx0NE{xEUyXV<0KN`A&N2Yt@YM%ScW(pN3R~Lu z#jFCg+%f%%BUdSD4FQ3xTpuStNNSka2w1|zOLdaplvu9DaHFFNDSE?jE-zwSHnUQg zTP&{B--RzG_3DyBh2nyMr~|5_$)k-KV{x|{I>q!3mL{0*3!>9<*z<(pLwK)oy=1nP ztDgg`K%DSv?Bjkq10>=jy9UsN4wH#y2@F-f-maxk^#4-w^R z)5}wy$}K54CamdFV}tiJ**1U5?RzDbM8slmj+QpVjU+1RmTOixK)L@Uua2+aA^0%_84JAEaH8E(;l)Qp-rR%%yL3ObA-FE&WisJG-qa z7op(&%w2__TC@ZKQ5#m1z)G=EsOl9eEux!OY3U{z-IxvOG> ztq6C#>KoR0y8~`pcxAy1w;O2Aj6x;1_QK3_ci#rG^`)FU#85v*A#OYbBY;L79#_8g-L3rB&#f|&hbqvpHPg<6dZZ0N*PLyVlOpbk$JAz^i_V6q1+ zp6Y0c+tvhF+}bBNegQ;Bh=qwz>|SB&HC^7VX!@;6rglqE1>9#BshsXT2(I!VG-^;W zs}NK`QRQSHvAwa}4AP+0zz-$6G7QbW^kzR&n{9!>_cs7>0Zgn+YAKr2a&C6#G;Czb zwjzqBgu6PQ!bg$BM*SQ}(d!z?VJJnk&&*a)%~$Z)3TOXqsMMf%E+EK9;dD3Z#kZE+ z?)L*2l|r4`>g>MVGqMAVPhdgH0=K=q`g`}9{I@iP;-gOY=s`j=OW@fkqo{&8+B*;W zD9^<@zxC?a5Q9?JlQp^}7_*c5lq3%M$IUjDc`kLkR?LnB$n6Z{DA}6T7pJ<^#FC{o zAh{bRBG=y=dH$3}f<=XiF)NfA`Lq!U>Dqcs)ETnzRr$}{*+%dCaHA5{#~|L$?TN3S zk^9N>L1dzhaCv!dGDU7F!p5r6+r8NQQ_o|nM<0g)FPjnkrw;)lzn-MN?sB@|obZ+n zf`;-)o5{(rgMC}o*Eppljv0m92%5+82|LqVWZWw3)9ed1=p0ifpCsB!8aMfcru)lc zdwL^DSJ2g7ZkZ90YC#rHuAa+%K_<|v>w!5VY5E0w7Ckk~+y>+@;JHQNSzk7+tN6$I z8jw#6IX@zD%DfViZzvEGp~%0#F~Np&UJ_DiMjl|r)p+7wz8ItQmgN80JvMnq-KaKb z3K3BS%$)N=J^}OmI)?9(S)qGBpA^D721cTxiR^in?Zx1mOX}z`FrcM*ZENd z6E5eG;;u%?``w>Edwawfcz2jpI+So_r&-9Y8e8zm!}^+(ZAG>kr@;nnB#Edl3}_#` z&v&a0;i;;rP*K(X=hn%|Rj7vF)K6a+Vr+p0xFhdBI-E47~V`Bq1@acDTtRA}x z^HIg70Y5*9-`o%G6#IcIy$tRR-tG0*qE+`zo#q~MZ+}&(qi|sm;S#vsmet zF0I6g_;X)Onqzd~U_K~p63UY0)OGe2zJ%*)TRH+mVb{6mNY;fa!2TzGDAhT!%#e7W zXX0xBfc&zCzoXpbVVOPk=bC_sCh7$EMvsAnpWFu*2Qjn5p_iK}%(5Crscn@?{;kUb zEUZB>>PJd>14bRSPzUu2q!%$!^`4if(5uwEiHSM#+Fv z$$@u>6THNK3Gs@YpZ>%0b1+-6SSHT^*jGh>K8}*#t z*wO}GzGiWjbU|7JFNBCXp!_V*<=xS&jm%UCT_ddz?W<|B$#>PU zY&p4NY{Zt?mz5?TR>F!7`#JtR{pDULsL%{5$&bV&ypJZTeTk&f zO|=7<-RWLk6XY%A&w!W{hJ%6LKGDAx_|>?3mAEo{Qeu|K<`WQDX0a^k*lfvPUDa&z z0)Oss%lGjwKeHwj_>}^ceyXpikjxEyT4h;PN1n?8GN)9?PgY}5^j8qHzt@zXU#8Zj zs^R#Nby>lNRyemy7sMr$Ppi|w!crmC6)Yr7{td|^6vDO0HKWdQ|83e3Iz6oHMTKE& zEdR5#TO5i@QjaP_0ys!lK(E=g3!n$+}8JGcgpb<6+O5OnPO z1G1>to;@0(dqwEHkk{~m$TD?V(+p=;k~dmpUT;l=P0exjVqa8@@6ngcv&^Ee^^SW5 z685CCWaf%#a_W)M=xf%c*5iZ((}($sT{H74A$OPZ&yDN0EBTu9T|=B1 zEfD0}mUDRaOR#*fR>j`b5m|_ZK48_dE^F89&=-DGg$8D{@e+iTwC?lxM$eU}&SCnN zQdER3Szbu9e2s}=(~^~y^?w*p&k*i~2)up?=Dh(t?zsWX76i0hlD9@leO(b%xn?-? z|8rtx@=|`GmJg{IDNU0aT*?|=b|=6<9HAmIL}o5QY!BTkZ>Bfnz6+Yc`?U! zrOkO|(f#BG(EksI5GPm}>7lOCupyYM_9ZTntu_u#9R{;(4&HkzWAmk(Vi0G;j8d@c z?GtY^-t+dp`ozFC;%CIWt9EP~+Baair@JZbbVh6|NP!4X^+mB7{(3l&_zN27ZZfy| zUX^odC||ci(C+NmM#|M9XaAxIylQ>D<~!^Eh+kSXE|)oMmR~;s!=%wPB5(unX1l@# z4uw-nRaR$g3B?K&G{S)>)R*2k-;>_3!s3he?Wo@~Ey*ppPS@{*DumQ`m=V)&s1>2f z1a;&&$#otoi7uY?QJLrTX0;Wpfz_^lD?220@hw0Duo{~-1Dx$T3X7vL9t=LX$cd}9 z;clBoA&qt0eQn~BkWQ|W;`3@y{GnWR|%CKjbD(U$R>Dz%j7vdSb zqpDH@r#AqGlp8>f-o7%HrqhCtXsR!dxf!Nlg}{~OXH5d>TYwFLzPd7oIutR`5JK6w z4E6$C_NJ^X#KJtyIgzTMBopmUFC`dsVTJWR$^eI5$X*nl7oI+?SwVM^9IR3q3W#meD`m}EAz%}vQvh2j-a!z1nAX1Ig+|!I##RQSPIp zs$FlwT29w+$wp$L!SW=^)_{~iED>R|+(Ss)|K3ZGz63uC zqt4G{7C#IQI$ItOTqq_p-lp5VO{ae2xSo07btzp4GV15|ckfp3FP&s4>8i!EBHBFjRTYhk5S zYy^Gt?+OdbQhG&+4RnoAj$P;I08nP&;$B$bN=jf~%OB#)bUw$+1IM$POVCJwDtTm8 zzgI^3LfyR(=6Vm73hET7bIn^>Sd4&GSeY^6si94eEk8l;)_TktM5M1OAJtQm@4I#y z*?9wq?cl~6QT8|Z*fJnUYTv89<)E)+d2Saesrq!oP&1VGz4I^c&2EZy_xz`|=|5p| zgU5bzk-^xoI!8iRR)$K`hM!HcE;j51NP)`^pV~E!+UVKc2qEi+%W?TK#0- zsm5(X|5Cgf9lvloGWP7wn3}FgLe^wTH*3lg802a&rvgN~PezAg5A-)R&t+SjE&@iW zo{o^n2WM+qScCX^kyiCSRAFsIPx(!ZwRiaq)48N)lP#p*$~B)4`w&4pwrNKHAWKk0 z9ey>IwL6~+ITWL;mn1gB>JAv3r&q7juS^Cc8N%jxRZXO@oxe|ax(9IY82288R61cO ztZx8ci4|&0e;Qz#_E*$jAi~O|r$QgTvA$~@BA9< zVXf1#fLK5$H|t)dUz`zVAKd`5ujJQK*`(58ORlqxb4vIU;?e!a0M0eF>&U=^A1WuX zz{^*kj(#uH%0J;K7f)!uCX8Dnc{Z$}%F;sk)A@d^F;W&5?@Fy<)D3~a;N>`=(3`@0 zzuA3tVKEPJ7B(Qert8mdfYedtXLje5t!LhpMoz2;-zj+B+0Iv`4rxT zsB9Sq=b#P(tpcvkbhDUI?x3CBpO)RiXDY#V!w|bQ+AVa9P^_dsReloAXB9qJ?SJBJ z*x^44BFh|bR(j-q)H|$_gL+?Q3@T$MX5^G8sFceF(@a(iqbMAW&}Ka$m$iGN6tYlT z0miWb3w?FqD%Nb+HDhtIq|!IYZ~3DD$_~HMR-5)2%+&fp+sx1OXRHzyh+byTPV431 z(wqJA;MZBkp6<>nf13H6HHEehm{4?B1N0;3jsnryxXzM{mQZS#%ZCH|vP9H2T`Sk|&w#+3DpW0+ay z2Pd8eh6anNsevWAPTf~rv4#aKlyC<0#-PVjT5o^h_JNE5O>7iz{^^;^mSuFv>j##W zB4?zcUwXFl7wk3rKiNOeVJG>eX=|-NgtCf)u^veGF$5*WJ>{U2MfAw#LZfr2$>3$4 za=7}WYQWMlEJ4YyPAvoqYsT?Vj9cKecMD20apZOo!pi2hVD?e^V*_qmoZRxIcxCrJfLYU(LRlj=<0UH$(H#S z9GG=EXlaY2Wv4wDjQVXZLx)UL?8@$Iv`Hv!3h7Oxe&qGp-@=Fh2Q$oF88oWChqFy= z=jG`$35!^ojK1~P(BP2WXx8M31VOkR3=jo@$Rw11wm9M|v$FnGY@{7qT93=u$?}dO zU7=*Bh#GW**xRPndSuo`aQJe^mcEqVVPu==Z4BAPRkI|oP&|{XjHJN56}Z&W(<#h{ za!OhlY7qP7@6tbE=;N-Se$wED8_d?JtaQl>dYUH{i!-7n~1uk1HnG~fpab3j=!X%@q#6&ohR+D@PWJlCLXI~W>QD0 zQ#F$4xRO^qEx))Krg*=w`M7KBo^yTJuk%)YTcCn<5i{$IdfErI#_&rPNiJKMuYFo@ zU9)w0xR2{D{b{>X(N%I$3>v#;`u&owaMbWm8dtC9gOa>-d)lPFWW(Lj${ovz_Gt4j zXO$Pk+-(8}4(t_6dMvUQv4>J`xU1JYae%wGjQeP@8rT=@ncCeeEP3+Pjd^EEa#(DZ z#90`i3$w&EF8D`9$Tz$#Odd`Yw;sLGUwfgUm5&&!Fh*2multaS@Q9i!F260b=#DQ5 z!OSJU>hB?716_GW5r-O9yxb=*oJ zmr#|AdZlIlB|%$@Se_6z*RM7g&kM6Kp9|FYA1B7L{ct*)aE7FD(~O(%OFS9;?pgTR z0Yoh5%IJe-l2frGu|y%BDy8JF0?|(jcD&Zn=SrJlykFM->SW5~v$0VX)+K;WPv4n61!7_<0A{c-JXX=ypS6lglq<~%SYw#y_13JT zc}b%qNYSiZ_7rKAv{wBQ(ttuS7_BOOa6YZwo4G7w2#cbzyQ~W(F7gU}BPOHqTb+mO zY$K7yDy~9bvP+Te(U;`i1e-E5fsb?KSg&Zk~`-OZ&H zoqtkc2W#>j-&UyG9IZ;@CWYZVnvH#&eg)1DYsqGKb8FnvJ?7$7=gJlLGs+5md07#s zl<8EYIxr;<;=9Cj1Ms?{hBsaMB6==;Lh5y^zUTc#EpM`=9~oCx7EnL2vhOeKz#l~+ zsg}Rhp%C-Nnpu7Z;q#1&9t}1hVa0D#MQg~d4`z}HBks9TYZL}Xr}$5DDE$(!tlTi_ zx&ho8er+2uz?4Q*!Q9yTwP3&YXm^}3SRVd1O*6R1YMgH~th8P4QVk)jrCl35Ux+S1 zY(Or@Xf@KJr!63HF$9&d62NC0uX%ma)V(=%=0+#&&5KQoNo*6?TSgyACeQtr^!nsk z(2-da(?EyScoP@gx%x>Wy=reP=sUq0D84Im-c7MV*@2+G;qh6q6FP(Y=yY$&)vsG% zV|IuNie&qO6$n8CCr)rfFTU=OX{t5iP&UUxlED4K8 zTo-)soYE+=@|NgCQuazxNn2QtVIr9ir-wVc0drfn6ydR!zCdzVA${XDtN6UvH54Qe z$kQ`=56wcBC4&S)Dg`Dpz~MNU0Y9G)V8@jbpKFS@G@hhscQ>?d*)S$QmaSc$_FKu> zfzPx{suDZ>8CWuO#P8pK*+}5c3#}dBwdr}Ww}h(i5?+Yj2RR)HakG|8WN;2v2gRx# z!RHs5OIQPp8j#|WJcgc*lQ0&&$GnV;h?ikWF}~~BdMK)^k7Kt_@^$%he>h}TMKO*- z_)Du%eA~LhS1CxaYQ4K;7Pi%gs`iLBNwY88c@po%Zq>oY+w${vO84LLo_a6!%$fAs z$wlgaxD^IyF$W*t9aZ5rbho%tJYb>B+%E)Na+TBzy6QdFrDU$Dt~A$f0IGQFifzC_ zFP*hncY{HG|H`CQz~a`q@Zr6Pz!hJUK8BwRU%2pL^;gpYR@cCbsO$18-s|G) zfxa8SZz;VCwUYoB8n=rxV@h6Ri?yRMRibb|&-7aP`IG+;Ac^uKj^Ja-Z`Q8T4Z#>k zC~&Wyl%O2T{efvT1{aS4ZE24z4slLcgmy!K5Bh&{G}DD^=UQdfXbfP_l=umYID=T zfcd?9uz5pvM^{f1ll1Iyz6~r)f5?qz2^aWc$z$XAk|h-;&uF9v(m3mb#Y~ONpQclv zlqT;T9W>T?W*$UVH{Kse7v_n!?8OM3sf@bp$Q=e2AIv#(y?q!HN4k9qll`P7dSr*_ zeldG8IN zbTWP=*>Gm1LI`0z3fgrs@0>ASZM6!e62-ZI6zD$0sPkJ<9Ly9pLTj8oS3=l~DO7S88l7f#Qi zQv9yHb6y9R8A`1gJmZ1$3(3yl6v=LqD=h`B?yt&uvytmLFVfVXcgywa4?Rkp=-YID z@C7R8_JneVRb^s_I%fJomPQzS)Mpl9_`&w_gtw-1VS_&^LwPPYF>PgP%cVCq^f+9+ zy4>vGxN%JnA(*U0ZB?P5tj2o~m;#|DjUJ;mYp-`+v`9anSY$U$3Ho zqbABN^~?}aUz^*Ym(39o=KBsT)e9vUxg5|6Hv}eYf<`(U&4aT*MCpa2#M5$1Odk9X za+AHoY{**-S7#(P+ig;F&=FuK6}Ajy(1D3yi`mV7&MLEJ^Ztx7#*Nm?_ZOy)JdvkW4Rrh&k)}2m^BLBVJrJJll*e)GCIQAd7VUq*=mS%Sz8^lO8+ij*V-BnuLZcjbzgg+8wZ^IUnVn)!`bd7!&7wOM?jO%usAH{|YyW;^Lg z4|EGN0FO&$xxq*XTVS4Od#`}U%`VBimpqz7jwUiK$)(Hw#9t176wh)~`>@Th)nPG# zYl2I2fpeP@;<;W#3}Eap^#e-Hvka+3qk)>>tJ&W=2K>vARQ0kn@p{&}?mphsVg2>B z!~r!k?){B|)0~NATib}=rz-oDuL2&i+3)Xj8VDTtwH_E_tE;|E7DHG4y`LEK24-yU z7_U)oNUgmhMzaTS5Vx7=4DIY6=?)$39&MwKm#$a(5AK@}y*PI%`KibGOMn#8LRrR# zvNaZJcJT#zkW{5pmJ8YW@(GV8PLB4@xo(>A+KyFPZf`(Nc+NBG`bvXLO0G{#xgYi} zJnw54otqVE@YrBsEB7mh!YVjop-XM1tU;uVg` zTE(bMmo9Qvk#g><@_euD$gD>=Kd(g&M|`p-Dufs!*X1gBvPW85x(^d05~HZ5HY-9k6C_!q3DeoCn;#z^wlXCdGHQcddNbD)BpKVJ;z;FNOQK~5H% z3Dd!n8XwypAK#BPUMXuIMC{jmjpq}`@_EU9hRab~3K2$bigW?Z{`j$5+V5TH3B-Hq z^-?{r`~%fiJBM!o$JgFJw=$xx@R@WsfIc@T07IhxHvm9eBp9i)=+v*ZvLdi3vQ1+= zz^IaNXgO|l9*z5LJ0SJ5M?S;dp*AnR7w7WQoEKF8LxLgw~ z#cL;x>M+32D4u8f*(LGq#z@1?t1Wy=z_9l`+dl2On_YqmkwiGQDgIGq-OFir?%XVO zdzLCser|?&7QW4n<^>{G77Ov5>YqAl9jtw-nO3VgE{U#lU-B-SC?Cu_s4-n3BigHW z8A2}9ar1^tRxvpjO;Iqx@(>rBe!@i^L8nDNxR^3BdP>7>{cWzBqzP!;h|riXO^Lq^ zOF>tP@(g)5ikoOmc$ct&W@paw&FsynAn6_@?_$7r+!e< z8ux6OcSPgl%^<8g8<41{Veno9UcOOz$$%+@U(Y#@U_@_Se73Sj?{LHsK4-c<=0aK1 zi_Te35+f7VZ1Hp7_H#U6mfluLhAeYbH%r#4u*mqMGXZzZXPS!4ALTZ(6MgwfGgb|U z2ZMjbf?K%eh4?thg7(N=aEogJy>_|WR$;9YD7%3&HO3RksI_a!KzYlI`Dt&j?lG^# zi@8(3vVt>j=W}GBUH8RKgH%PSqdDZPZhJ(@p`>FfwK^_=q9r*V?Zyuj-PY*`y~C{( z!w1-mS&=}jMcP?Xd_{#tbEI5FUwt+D{jAVn+SjfyAEqM)hN#wk=hOh@J;$gG^Hr1B zh^)Owcrdb;d9AbSqbnS(koDie#@voKKHMSg!Mk+hd{|B_-(etAw9N zBa}TSS&X#Gj7WT=iqFd!62t%OU5=dQZ4J-|lAf!bc?Epjtx4pK8pp2?;frQN66r0P z+P+*NYmZ~IxNgpR(3id!YUj^NmfS_TxHhO7n_ApgmVS|P%S8Hpec5f-Rkdt6VtKtc zUa$eu9BC~IN#i4r!%X@;tZJ!rkz}(ZBi-36gS(h#uuPv~ZUBpszDOt)RibK>|AX!Y z&&1H-PU!qS`@UweB{=Q=hs)5Xi7-b+8H1BEHC&hL@;dd;+QRVBg#^vnGdZ64ASemh zy4KWN3)S=s`mQUn#7^nC*p=unPFFLfr2@#Uua_cyryS5i3m+ac@FYb$Z_vraf=;ff zGn}WDt5)B@eN@`{1uV{=>J8eOohMBu2m{{C2HgRLIpIyDKJL>n9>p@f!VXK7uO&+1 zO5f~piA>#W%~~1Sw!g*n=)*(FIx!S{?3qqqmWZUBvCp#=v&RyG!m;Wm~GC>1lbmDcfWoWoXo zO#Db!Sc{{2B!z)Y$0dx5e8kc zYLe-O7ADpm%wL9KS#K`7bm46C()n#C&T1PCEYWQZgn#Ur}+GI!?1!NipPtg zgf>h}{B&YWvo4%U(cR$vXvhMr)IrX+&~d;x`(TOi?u;*So9pRX#{0K~@V|7GQgN`=@*Q5YcmES-a|4*yDki;T#%bZW`C5qk{k%I^y8n z@}x>0iO*9K=J%Bvmp5Xx)?yGTBzcGoctLNgQ+^B!S#PrW?J~uFa0;5B;;hm0&IU;3`gw z;UrDh@q0tY#N*!V#HS-6mx-_1wOoCtMFTNgO@VtyJQHYg>4UCfdH) zRUYh?NGJ)D&%V6xwRa%sn74CxMg7(18j==9oB8k6mq)Rm1y745GUTkzl*+x`$g{sh zrC5ljkf=11i^S!!VW7aX)lWtqqKAGNytxg9VTr9pA_@Io z+^_DADZ=~gVle9IS3)wGPkQvW#P8gdRTKnL4Ah-R*jhh9>hfs9Ak}&XNYJJQl%M-r zCf(fAP`x=T%#lR$WdaK*4Wni*TC2judzRC&(1X5 zCo7kI88oF3qYnjAWEGZoGcOeAn~@c$-(9g;OWkUy)tG`-*Sa*(wXF<=16a1B%a2 zMg#I&qlnX?BER-{uaB0_c}FA}vX{L5JkG8Lx8KBBOp@M(g#ss{q0G5bzqk(}*cmmq zGQ~}qDUjkD)G1E_^6?49M~US4Ci-*HY#w(HbvK@@cQ8K{e=<%dIHN_>t-G;nS7=6V zH^soZrVZaE-tF{(ZxTd$-&Qz@s3R)WNwhwi@Z}qwlu?fQhu1$sMGrkixI7$$^a%FK z`YL+6r8}k?tj}pIs=1+eaDF|^7@=Rg^ydPObB^txsfTCrP3*>N2UKnvN^*-FR3W~B zw+DyR72?J^lV|V=W+;?M)r%O|BrxHqc_AlJ3w0h{4Fj?ey;);z^_gQlU|~&jm&|Q0 z@d4E_s59P8P>)t6UDGv+#j=#uoq$)(w_oU4$i-(%m_O^7EK)Beu3~p3XLM~H~A5q zQHkjd>R2LaJgeJ^*U-5>%&LOct~y6(87H?VozucWu1%WPq}D)YI2KEa)pB|%<3Tt?iXZbT-Zd32#R z1`JZS!tXsYSM>yi>AsT0>aBv@Z8>utGv5SSoXd+j-(|Uy_e{pYd&V z0bRUyKBYBCog?90<<9!)P+gnr#Zw*6(w-uVf6efN`N5z~SymCobOVdsk{m-wD9yw# zX@gyooGlL3<5F{}Q^Lc#!e%3ecqy$GMjBHY1Ihj7Wlh$_`guJ$eqCAD)i|G{RRPoG z+PDVkuMsGGSb4NZC3pTLYA~ui<9kqUdx^U^KiXDITx8K_k6w?tW^IoT$z>SvCrWaj z=ks;)F(}5`Zoc2XCDoqSBK9=VaT4c{;r72Ef*5$1_W+)^$ygX ztV;I_xE-uhQ&Z@YyH~-j#eRx=$z$_zm_ea6+=f`V0Y{TuJ9eNF1E zEj}x)#0Xr<_6P&s$o2AB>)_9J$+whwI2T8wmD((9X6ux2*K{3ATfbDuq!XP@>7TIr z6>4Ic4;V5jU8TN(k-$ie*+T=M*R`B{v``JZy;(mie#$o`2MljZYl;7edOk$(Aw;~8 z{a@1{6c++{ZN&F!{m%2}_(O06-kUJMeF8*RS66sc*Y}Xu_XWoTOiQz$<3Ad5Sxii) zw{pU}dJ#v{F!1frgbx6`_ws)={LiL4$uH=|IE|(1$_ks4E9%B5q^b6{|F$vE{aID& zQ~y(pSzNL7wL_2VxIp+D%!S<8YrrGFzNsAj+;VRXNZ~6l~dmb0CT1Du(#G8Y-#2@=;+TguXpSuVVEhBK=Ot844 z%|vf2MBquqFYDHB4YjL_%B0G-5c^t96Hh)d08DZCGKc|sQ-`AwGk#{2V^oPGaE! zv#tEG(K5k2>U#CV>hBEqikv^1Pg1;K9{pMzAC{|CCi`9s>oQY0Uk&tS? z{*<{W{;Ivqo)(h=JXG*PWQgoj3`v|I*|JIY%h!=2!+Y(mikxKQ!N05h>Y?=KR3014 zVxD1snY8`XsS(- z>R51B^?}GFd6AOP2HY>w!cnC2vti@@Q;`)pUl!T3 zGzMW6%xJ13ZlX#!W-zLA&35$*E%jK!^ka8NDt3$PWxXvUwRzsa2fE_(+BWZp-yc$t zsA@4!RMBh9NU+Q+5*yADMo-6^=xKKNP^`|&A-Bl)B}!_$n1Lv2Zxz|}3`E1CRy_Ki z{)T;4o-7J-n0gL(hraGz>-vTqAz^4X9O6vj1~Ay`u%c=q zOrU2TpR}NWWS6}4uIWXcH$^-0T(`Yab_VFLXw1S7}lyXs$1Nj~fcpI$hSq`77HjJ(GNe8gTHB z^S;OaaJPGPpQ5KvGQ=7@5gRvJPSx)7tlBF_ag23*EJedWOJ~uVKrH9j3OjgpmtK4$ z{!+2@6KdX_{5S?A@^)EA%r7J^u~AV?4RpZhRoTwY&DT-D1rlWl)I8HO{nr2&yg~ASY@SDjQ?k+cPMET3 z5w76#RJSdYJUfFH^FWIu&&n=cj4#rLrk_1A9s2w@msG*rMy}c%T)YmdHt!j*2`ksxcK()9s_$>m|vT*FR$iAG&z?G+(8OTom@fR zJsnEUnh;ZeLIHzV_$!}hX!0>$!R4<_@j?6>z_W6$dRwIS@4bW64bhK>R7YAhHABXFdN3x;J;SK)Tng17i?;X`-*R>DgV?jlv zgLG-qK|)u`ODCa8m#z>3p&FWWe3U9Zln|=)BE5H1dI-ID3BC6oaH3Cpzu(NeX1+DE zX4b6r@rSq;$$g)D?`!XUopbMV9ZgXspgq*qEPVMc!e%#|7xaE31T>i@D>d6+diJl9 zj&xC%>6baG)jPA=6$4vTdI)l#!l%WQDQV!W1p8^|XN6Gk6RH z%txRHi|hHC?ivER+~+iPdhN&9;Zi*`dpe1yTGdB}YZ)7|bH0kj>>BTe_aF8?8ab-6 zUSc`Bz&|B9%M4z8LC*`T~EJx#n{)}!quDcbjgh+qgSm{h9|fV zXv@rcykR&{s*=&pW=>M3ROVf>l<=9Ya>`sng@r}%yv<7rLrL|p*5jcOAfc^-ydE`# zc`zMiiB>8<+@J*npSfR2DO|BSJ*s(;n9%wHjxl;uooX+Va;<2g5eV{a36f9@xvfsh z)VyJl69yt)TJma3%+*&wYCJH`p(7~p3n*Tlxp%!|CYvYLcjF}O2&<&D z$RG_^p3#!!S*NcJ9KXE%p?v|Z6++jMg5AkK+AOCfDV1XEtX6yf6#c1}&mGq^%An0! zQfpP@ed`2zleTB^Y3~>}ycRYBX)V&Poetk^jx})|sQ13zc=9pwE}I}#$nXZwz8E>e zCI~~bIeXo1&1)BaPY~$AC^L;O@ikAt+thPDx1(G~B_?MkhL7blfJIuE<7((oV4zbP zzP&ecgon5C>Hldq^nZN4yT2p^NSS}VI99B^1P$ZesQ%X<3B5!t85&Bhg15sgIceZ-Wkh#(!-8Z?2-ZP9Ct9!TxPxqJQ)7Si=9Ezj-(Oa@&MoKlPvY zE5$*B9vaen=Rb|*fB(1PlV`iXAVqKEu5K;#_}ciF8UGh3Y1|tiHv0#2|3JsJAmzsG ze*>!2KS(rW|Ch`^$oemj9rB;9mf>=X>OWZVf9|s|_CI!`xBed-{QnmRw))DRIy#M5 zYGOSI*seLJ*YYeKq;U}*9red5{C`JU30GwAJm?CAfaOgg5@+ED&S$|(7c=c8X#7$J z@t1gF?6rwX7z>8)X2tJ=^diw@fKL`~m5JjS%UO4c~He z);&XtW?eSJHBZSkndoRLxY>wB+&qVgnggAKlMJuCRTZN-GgEV0plR4l{Fo_OFk80L zFxawOD&zabyF+wJv@>OYakbADSub5gtKS| zGfQ>YFi-q?uK1tNbwL{3p@$&`tNa{p*m0TCr$-DgHf;r2#R6=bV-<0J?|&voHjK$WuU0~pge!n}y_ zZmG*e4-FL4@aEP~JDcofvUZ_o^ws_4%}BBBq+f2{0V`CjJ?5k z0gNvmv9N3b9^(zwSN^V|ca@SHs~G$ZsQ#?En+1UD7}sWI*vM_KEH?i}(98q9%U0P$ z?aX?~5T;p)CsAZALsA4)zjS86A<{z&j$5RchaU?L5-~hyEV0FcZ*JWD6%Eg(G%y*D zRf;%{5HB*1*ht=;;1DO2?G#gl#97i42DGcLA|)7AN>}>CDAb6G1iDsHpOXfEnX`^V z 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�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

G39D9c|IbC=~WhWB>^l^D26lNh0)iM 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

+ ) +} + + diff --git a/site/src/components/AnalyticsPreference.astro b/site/src/components/AnalyticsPreference.astro new file mode 100644 index 00000000..e2d8603c --- /dev/null +++ b/site/src/components/AnalyticsPreference.astro @@ -0,0 +1,160 @@ +--- +/* The standing analytics control, for the privacy page. + * + * The banner asks once. This is where the answer is changed afterwards, which + * is the half of consent that is easy to leave out: permission that cannot be + * withdrawn as readily as it was given was never permission. + * + * It states the current situation before offering the buttons, because "allowed + * or not" is the question a reader arrives with, and in the regions that do not + * require a prompt the honest answer is that measurement is already running. + * + * The status line is scripted rather than rendered, since the answer lives in + * the reader's browser and this site is static: every reader would otherwise be + * served the same cached sentence about a choice that is theirs alone. + */ +const enabled = + Boolean(import.meta.env.PUBLIC_GA_MEASUREMENT_ID?.trim()) && import.meta.env.PROD; +--- + +{ + enabled ? ( + <> +

+ The site uses Google Analytics 4 to count visits and see which pages get read. It runs + only when it is allowed to, and it is configured to learn as little as will still + answer that question. +

+
+

+ Checking whether analytics are running in this browser. +

+
+ + +
+
+ + ) : ( +

+ This build of the site has no analytics configured, so nothing is measured, nothing is + stored, and there is nothing to turn off. The rest of this section describes what a build + that has them does. +

+ ) +} + + + + diff --git a/site/src/components/Footer.astro b/site/src/components/Footer.astro new file mode 100644 index 00000000..8e2cd3dd --- /dev/null +++ b/site/src/components/Footer.astro @@ -0,0 +1,99 @@ +--- +/* Starlight's page footer: the edit link, the last-updated date and the + * pagination that sit at the end of an article. + * + * The site's copyright is not here. It is chrome rather than the end of a page, + * so it lives in SiteFooter.astro, which PageFrame renders below the content + * column entirely. + * + * Overriding the component means restating the layout it came with: a + * component override replaces Starlight's scoped styles along with its markup, + * so the footer and meta rules below are its own, kept as they were. The + * `credits` kudos link is not carried over — the site does not enable it, and + * reproducing it would mean importing an icon from inside Starlight's internals + * to render something that has never appeared. + * + * The three parts are imported from `@astrojs/starlight/components/*`, the + * published path, rather than the `virtual:starlight/components/*` specifiers + * Starlight's own footer uses: those are typed in a declaration file the site's + * tsconfig does not see, and `astro check` fails on all three. The difference + * that buys Starlight is indirection — a `virtual:` import resolves through any + * override configured for that component. Nothing here overrides the edit link, + * the last-updated date or the pagination, so this renders the same thing; a + * future override of one of them would need this file changed to match. + */ +import EditLink from "@astrojs/starlight/components/EditLink.astro"; +import LastUpdated from "@astrojs/starlight/components/LastUpdated.astro"; +import Pagination from "@astrojs/starlight/components/Pagination.astro"; + +/* The edit link and the last-updated date are documentation affordances, and + * the landing page is not documentation. "Edit page" invites a contributor to + * change a marketing page, and a date only ever works against a front page: a + * quiet month reads as an abandoned project to the one visitor least equipped + * to judge that. Both stay on every other page, where "is this current?" is a + * question a reader genuinely has. + * + * Keyed on the splash template rather than the page id, so a second splash page + * inherits the same treatment. Pagination already renders nothing here — the + * landing page is in no sidebar group, so it has no neighbours. + * + * The copyright is no longer part of this component. It is chrome, not the end + * of an article, so it lives in SiteFooter.astro, which PageFrame puts below + * the content column entirely. + * + * Privacy is the exception to that split, and it earns it. Outside the regions + * that require a consent prompt no banner is ever shown, so the control on + * /privacy is the only way to turn analytics off — and SiteFooter, which + * carries the other link to it, renders on splash pages alone. A reader who + * arrives from a search result lands here, on a documentation page, and would + * have had no route to the control at all. One text link, not the whole band: + * the objection to a second footer here was duplicated navigation and social + * icons colliding with the fixed right sidebar, and a single word in the row + * that already exists is neither. + */ +const isSplash = Astro.locals.starlightRoute.entry.data.template === "splash"; +--- + +
+ { + !isSplash && ( +
+ + + Privacy +
+ ) + } + +
+ + diff --git a/site/src/components/Head.astro b/site/src/components/Head.astro new file mode 100644 index 00000000..8d0f0303 --- /dev/null +++ b/site/src/components/Head.astro @@ -0,0 +1,50 @@ +--- +import Default from "@astrojs/starlight/components/Head.astro"; +import { getCollection } from "astro:content"; +import Analytics from "./Analytics.astro"; +import { siteAssetURL } from "../lib/site-assets"; + +// Every documentation page advertises its Markdown alternate in the head, so an +// agent that reads the head never has to parse the rendered body. +// +// Only pages that are actually in the collection get the link. Starlight's 404 +// is rendered by the same layout but has no entry, so without this check it +// advertises a `/404.md` that nothing generates — a dead link in the one place +// an agent looks when it is already lost. +const docs = await getCollection("docs"); +const ids = new Set(docs.map((entry) => entry.id)); + +const id = Astro.locals.starlightRoute.entry.id; +const markdownHref = ids.has(id) + ? siteAssetURL(Astro.site, `/${id}.md`) + : null; + +// Starlight emits `twitter:card: summary_large_image` but never an image to go +// with it, so every link to the site unfurled as an empty large card. One image +// for the whole site rather than a card per page: a per-page render would make +// the build depend on a font the site only loads in the browser, and the card +// is the same one GitHub shows for the repository. +// +// Absolute URLs are required here: Open Graph consumers do not resolve relative +// hrefs. The configured site is the canonical origin. +const socialCardHref = siteAssetURL(Astro.site, "/social-card.png"); +--- + + + + + + + + +{ + markdownHref && ( + <> + + + + ) +} diff --git a/site/src/components/PageFrame.astro b/site/src/components/PageFrame.astro new file mode 100644 index 00000000..86a2c566 --- /dev/null +++ b/site/src/components/PageFrame.astro @@ -0,0 +1,125 @@ +--- +/* Starlight's page frame, with a site footer below splash-page content. + * + * Overriding this component is the only way to put a footer outside the content + * column: everything Starlight renders inside `main` is constrained to the + * prose width, so a copyright placed there lines up with the paragraphs and + * reads as the last one. The band belongs at the page level, next to the + * header, which is what this adds. + * + * Documentation pages already end with their edit date and pagination. Adding + * another footer there duplicated navigation and put its social links beneath + * Starlight's fixed right-sidebar layer. Splash pages have neither affordance, + * so the site footer closes those pages only. + * + * A component override replaces Starlight's scoped styles along with its + * markup, so the whole style block below is restated from the original rather + * than extended. Keep it in step when Starlight's frame changes: the only + * additions here are `.main-frame { flex: 1 }` and the splash-only footer. + * + * MobileMenuToggle is imported from the published `@astrojs/starlight/components/*` + * path rather than the `virtual:` specifier the original uses, for the same + * reason as the footer override: the virtual modules are typed in a declaration + * file this site's tsconfig does not see, and `astro check` fails on them. + */ +import MobileMenuToggle from "@astrojs/starlight/components/MobileMenuToggle.astro"; +import SiteFooter from "./SiteFooter.astro"; +import AnalyticsConsent from "./AnalyticsConsent.astro"; + +const { hasSidebar } = Astro.locals.starlightRoute; +const isSplash = Astro.locals.starlightRoute.entry.data.template === "splash"; +--- + +
+
+ { + hasSidebar && ( + + ) + } +
+ {isSplash && } + +
+ + diff --git a/site/src/components/SiteFooter.astro b/site/src/components/SiteFooter.astro new file mode 100644 index 00000000..96819c0f --- /dev/null +++ b/site/src/components/SiteFooter.astro @@ -0,0 +1,149 @@ +--- +/* The site's own footer band, below the content rather than inside it. + * + * Starlight's page footer renders inside the content column, so a copyright + * placed there lines up with the prose, drifts upward on short pages, and reads + * as the last paragraph of the article rather than as the end of the site. This + * is the counterpart to the header: a full-width band with a rule across it, + * pinned to the bottom of the viewport when the page is short. + * + * The links are here rather than authored in Markdown because a site footer is + * chrome. PageFrame renders it only on splash pages; putting it in page source + * would leak it into the Markdown alternate. + * + * It holds three things: who owns this and under what licence, where the + * organisation is, and how to change the analytics answer. Nothing else, on + * purpose. Documentation pages already have sidebar navigation, page metadata + * and previous/next links, so this band would only restate their chrome. + * Security, the trademark policy, contributing and llms.txt are all real and + * all deliberately absent: a reader who wants them reaches them from the + * repository or from the head of the page, and four more links here would turn + * the band into a link farm nobody arrived looking for. + * + * The bar for adding anything: it is something a stranger needs, the sidebar + * cannot hold it, and they would not otherwise find it. Privacy clears it on + * all three counts — a reader who allowed analytics and wants to take that back + * has nowhere else to go, and the page is deliberately not in the sidebar, + * which is for documentation rather than for the site's own terms. + */ +import { Icon } from "@astrojs/starlight/components"; + +const year = new Date().getFullYear(); +--- + + + + diff --git a/site/src/components/SocialIcons.astro b/site/src/components/SocialIcons.astro new file mode 100644 index 00000000..2a117a73 --- /dev/null +++ b/site/src/components/SocialIcons.astro @@ -0,0 +1,13 @@ +--- +import SocialIcons from "@astrojs/starlight/components/SocialIcons.astro"; +--- + +Docs + + + diff --git a/site/src/components/TerminalFrame.astro b/site/src/components/TerminalFrame.astro new file mode 100644 index 00000000..3c9faaf6 --- /dev/null +++ b/site/src/components/TerminalFrame.astro @@ -0,0 +1,142 @@ +--- +/* A terminal UI frame, rendered as styled text. + * + * The frames are the TUI's own golden test output (internal/tui/testdata), + * imported raw at build time. They are rendered from synthetic fixtures by + * `go test ./internal/tui`, which fails when the UI and its golden frame + * disagree, so the page shows what the app currently draws and never a + * hand-made mock-up. Updating a golden (UPDATE_FLOW_GOLDEN=1) updates the site. + * + * Colour is applied here, by glyph, using the Catppuccin tokens of the active + * theme: the goldens are captured with colour off so their geometry can be + * compared, and the glyphs carry the state the app would colour. + */ +interface Props { + /** A golden file name in internal/tui/testdata, without `.golden`. */ + name: string; + title: string; + caption?: string; +} + +const { name, title, caption } = Astro.props; + +const goldens = import.meta.glob("../../../internal/tui/testdata/*.golden", { + query: "?raw", + import: "default", + eager: true, +}); +const frame = goldens[`../../../internal/tui/testdata/${name}.golden`]; +if (frame === undefined) { + // A renamed or deleted golden fails the build rather than shipping an empty frame. + throw new Error(`TerminalFrame: internal/tui/testdata/${name}.golden does not exist`); +} + +const escape = (s: string) => + s.replace(/&/g, "&").replace(//g, ">"); + +// Trim trailing spaces and collapse the padding a fixed-height frame carries. +const lines = frame + .replace(/\r\n/g, "\n") + .split("\n") + .map((line) => line.replace(/\s+$/, "")); +const compact: string[] = []; +for (const line of lines) { + if (line === "" && compact.at(-1) === "") continue; + compact.push(line); +} +while (compact.at(-1) === "") compact.pop(); + +const classes: [RegExp, string][] = [ + [/◆+/g, "dg-t-wait"], + [/[▶╼]/g, "dg-t-work"], + [/‖/g, "dg-t-stall"], + [/✓/g, "dg-t-done"], + [/━+/g, "dg-t-busy"], + [/[░█]+/g, "dg-t-dim"], + [/[─│├└╭╮╰╯┄]+/g, "dg-t-rule"], +]; + +const html = compact + .map((line) => { + let out = escape(line); + for (const [pattern, cls] of classes) { + out = out.replace(pattern, (m) => `${m}`); + } + return out; + }) + .join("\n"); +--- + +
+ +
+  {caption && 
{caption}
} +
+ + diff --git a/site/src/components/landing/Feature.astro b/site/src/components/landing/Feature.astro new file mode 100644 index 00000000..3b2ec6f1 --- /dev/null +++ b/site/src/components/landing/Feature.astro @@ -0,0 +1,102 @@ +--- +/* One landing section: an eyebrow, a heading, the prose as children, a link, + * and a short recording. The prose stays in the page source, so the Markdown + * alternate and llms-full.txt keep it. */ +import Film from "./Film.astro"; + +interface Props { + eyebrow: string; + tone: "yellow" | "green" | "blue" | "mauve" | "red"; + title: string; + href: string; + more: string; + media: string; + label: string; + flip?: boolean; +} + +const { eyebrow, tone, title, href, more, media, label, flip = false } = Astro.props; +--- + +
+
+

{eyebrow}

+

{title}

+ + {more} +
+
+ +
+
+ + diff --git a/site/src/components/landing/Film.astro b/site/src/components/landing/Film.astro new file mode 100644 index 00000000..d281c0f4 --- /dev/null +++ b/site/src/components/landing/Film.astro @@ -0,0 +1,270 @@ +--- +/* A real-time recording of the real driga, in the site's theme. + * + * `just site-footage` records the takes, renders each film in dark and light, + * writes its posters to src/assets/media and, with --upload, publishes the + * videos to R2 and their URLs to src/data/media.json. Posters are committed; + * videos are not. Without a manifest entry a film shows its poster only, + * except in `astro dev`, which plays the local renders from public/media-local. + * + * Videos load only once on screen and in motion-friendly settings, play muted + * and loop, and carry a pause control (WCAG 2.2.2). Reduced motion keeps the + * poster. On phones a film may name a tighter crop to play instead. + */ +import type { ImageMetadata } from "astro"; +import { mediaSources, type Media } from "./media"; + +interface Chapter { + label: string; + start: number; +} + +interface Props { + name: string; + label: string; + phone?: string; + chapters?: Chapter[]; + length?: number; + eager?: boolean; +} + +const { name, label, phone, chapters = [], length = 0, eager = false } = Astro.props; +const posters = import.meta.glob("../../assets/media/*.jpg", { eager: true, import: "default" }); +const manifests = import.meta.glob("../../data/media.json", { eager: true, import: "default" }); +const manifest = manifests["../../data/media.json"] ?? {}; +const poster = (film: string, theme: string) => posters[`../../assets/media/${film}-${theme}.jpg`]; +const slots = (["dark", "light"] as const).map((theme) => ({ + theme, + poster: poster(name, theme), + wide: mediaSources(manifest, `${name}-${theme}`, import.meta.env.DEV), + narrow: phone ? mediaSources(manifest, `${phone}-${theme}`, import.meta.env.DEV) : undefined, + narrowPoster: phone ? poster(phone, theme) : undefined, +})); +const id = `film-${name}`; +--- + +
+

{label}

+
+ { + slots.map(({ theme, poster, wide, narrow, narrowPoster }) => ( +
+ + {narrowPoster && } + {poster && } + + {wide && ( + + )} + {narrow && ( + + )} +
+ )) + } +
+ { + (slots.some((s) => s.wide) || chapters.length > 0) && ( +
+ {chapters.length > 0 && ( +
    + {chapters.map((chapter, i) => ( +
  1. + +
  2. + ))} +
+ )} + +
+ ) + } +
+ + + + diff --git a/site/src/components/landing/Hero.astro b/site/src/components/landing/Hero.astro new file mode 100644 index 00000000..03b43ca7 --- /dev/null +++ b/site/src/components/landing/Hero.astro @@ -0,0 +1,163 @@ +--- +/* The landing page's opening: status line, headline, tagline, install and the + * film. Rendered in place of Starlight's title on the one page with `hero` + * frontmatter. */ +import InstallCommand from "./InstallCommand.astro"; +import Film from "./Film.astro"; +import cut from "../../../footage/film/cut.json"; + +// The film's chapters come from the same cut list the film is rendered from. +const { tui, web } = cut.takes; +const browser = tui.answered - tui.typed; +const ending = browser + web.selected - web.prompt; +const chapters = [ + { label: "Terminal", start: 0 }, + { label: "Browser", start: browser }, + { label: "Install", start: ending }, +]; + +const { data } = Astro.locals.starlightRoute.entry; +const { title = data.title, tagline, actions = [] } = data.hero ?? {}; +const docs = actions.find((a) => !a.link.startsWith("#")) ?? actions[0]; +--- + +
+

alpha · macOS, Linux · Windows experimental

+

{title}

+ {tagline &&

} +

+ + { + docs && ( + + {docs.text} + + ) + } +
+ +

+ Works with + Claude CodeCodexGitHub Copilot CLIGemini CLIAntigravity (process level) +

+
+ + diff --git a/site/src/components/landing/InstallCommand.astro b/site/src/components/landing/InstallCommand.astro new file mode 100644 index 00000000..d92d47cb --- /dev/null +++ b/site/src/components/landing/InstallCommand.astro @@ -0,0 +1,128 @@ +--- +/* The one install command, with a copy button. The command is the text of + * the element, so the Markdown alternate and llms-full.txt keep it. */ +interface Props { + command: string; + label?: string; + id?: string; +} + +const { command, label = "Install on macOS", id = "dg-install-command" } = Astro.props; +--- + +
+ {label &&

{label}

} +
+ {command} + +
+ +
+ + + + diff --git a/site/src/components/landing/Section.astro b/site/src/components/landing/Section.astro new file mode 100644 index 00000000..240ba7b2 --- /dev/null +++ b/site/src/components/landing/Section.astro @@ -0,0 +1,111 @@ +--- +/* A titled landing band. `grid` lays its children out in three columns; + * `panel` sets the band in a bordered box. */ +interface Props { + title: string; + layout?: "grid" | "panel" | "closing"; +} + +const { title, layout = "grid" } = Astro.props; +--- + +
+

{title}

+
+
+ + diff --git a/site/src/components/landing/Way.astro b/site/src/components/landing/Way.astro new file mode 100644 index 00000000..432bcf7f --- /dev/null +++ b/site/src/components/landing/Way.astro @@ -0,0 +1,54 @@ +--- +/* One of the three ways in: its command, a name, and the text as children. */ +interface Props { + command: string; + title: string; +} + +const { command, title } = Astro.props; +--- + +
+ {command} +

{title}

+ +
+ + diff --git a/site/src/components/landing/film.ts b/site/src/components/landing/film.ts new file mode 100644 index 00000000..eb28e35a --- /dev/null +++ b/site/src/components/landing/film.ts @@ -0,0 +1,100 @@ +/** Templates keep downloads inert until the film is on screen and motion is + * allowed. The visible theme's video plays; the other stays paused. */ +export function mountFilm(root: HTMLElement) { + const slots = [...root.querySelectorAll("[data-film-theme]")]; + const toggle = root.querySelector("[data-film-toggle]"); + const seekers = [...root.querySelectorAll("[data-film-seek]")]; + if (!root.querySelector("template") || !toggle) return () => {}; + const motion = matchMedia("(prefers-reduced-motion: reduce)"); + const narrow = matchMedia("(max-width: 39.999rem)"); + let visible = false, paused = false, disposed = false, frame = 0; + const videos = new Map(); + + const theme = () => (document.documentElement.dataset.theme === "light" ? "light" : "dark"); + function video(slot: HTMLElement) { + const size = narrow.matches && slot.querySelector('[data-size="narrow"]') ? "narrow" : "wide"; + const key = `${slot.dataset.filmTheme}:${size}`; + let player = videos.get(key); + if (!player) { + const template = slot.querySelector(`template[data-size="${size}"]`); + if (!template) return undefined; + player = template.content.firstElementChild!.cloneNode(true) as HTMLVideoElement; + player.muted = true; + const current = player; + current.addEventListener("playing", () => { if (!disposed && !current.paused) slot.dataset.playing = ""; }); + current.addEventListener("error", () => { delete slot.dataset.playing; }); + slot.append(current); + videos.set(key, current); + } + return player; + } + const active = () => slots.find((slot) => slot.dataset.filmTheme === theme()); + + function update() { + const allowed = !disposed && visible && !document.hidden && !motion.matches; + toggle!.hidden = !allowed; + toggle!.classList.toggle("paused", paused); + toggle!.setAttribute("aria-label", paused ? "Play video" : "Pause video"); + const current = active(); + const player = current && allowed ? video(current) : undefined; + for (const other of videos.values()) if (other !== player) other.pause(); + for (const slot of slots) if (slot !== current || !player) delete slot.dataset.playing; + if (player) { + // A replaced narrow/wide video leaves the slot's other one hidden. + for (const el of current!.querySelectorAll("video")) el.style.visibility = el === player ? "" : "hidden"; + if (paused) player.pause(); + else void player.play().catch(() => { paused = true; update(); }); + } + } + + // Chapters follow playback and seek on click. + function progress() { + const player = [...videos.values()].find((v) => !v.paused) ?? [...videos.values()][0]; + if (player) { + seekers.forEach((button, i) => { + const start = Number(button.dataset.filmSeek); + const end = Number(seekers[i + 1]?.dataset.filmSeek ?? player.duration); + const done = Math.min(1, Math.max(0, (player.currentTime - start) / (end - start || 1))); + button.querySelector(".dg-film-progress")!.style.setProperty("--progress", String(done)); + button.setAttribute("aria-current", String(player.currentTime >= start && player.currentTime < end)); + }); + } + frame = requestAnimationFrame(progress); + } + const seek = (event: Event) => { + const start = Number((event.currentTarget as HTMLElement).dataset.filmSeek); + const current = active(); + const player = current && video(current); + if (!player) return; + player.currentTime = start; + paused = false; + update(); + }; + + const intersection = new IntersectionObserver((entries) => { + visible = entries.some((entry) => entry.isIntersecting); + update(); + }, { threshold: 0.25 }); + const themes = new MutationObserver(update); + const flip = () => { paused = !paused; update(); }; + intersection.observe(root); + themes.observe(document.documentElement, { attributes: true, attributeFilter: ["data-theme"] }); + toggle.addEventListener("click", flip); + seekers.forEach((button) => button.addEventListener("click", seek)); + motion.addEventListener("change", update); + narrow.addEventListener("change", update); + document.addEventListener("visibilitychange", update); + if (seekers.length) frame = requestAnimationFrame(progress); + return () => { + disposed = true; + cancelAnimationFrame(frame); + update(); + intersection.disconnect(); + themes.disconnect(); + toggle.removeEventListener("click", flip); + seekers.forEach((button) => button.removeEventListener("click", seek)); + motion.removeEventListener("change", update); + narrow.removeEventListener("change", update); + document.removeEventListener("visibilitychange", update); + }; +} diff --git a/site/src/components/landing/media.ts b/site/src/components/landing/media.ts new file mode 100644 index 00000000..ce0f0f69 --- /dev/null +++ b/site/src/components/landing/media.ts @@ -0,0 +1,9 @@ +export type Media = Record; + +/** The local renders while developing, so a retake shows before it is + * published; otherwise the published sources, if both formats exist. */ +export function mediaSources(manifest: Media, film: string, dev: boolean): { webm: string; mp4: string } | undefined { + if (dev) return { webm: `/media-local/${film}.webm`, mp4: `/media-local/${film}.mp4` }; + const clip = manifest[film]; + return clip?.webm && clip.mp4 ? { webm: clip.webm, mp4: clip.mp4 } : undefined; +} diff --git a/site/src/content.config.ts b/site/src/content.config.ts new file mode 100644 index 00000000..09720ab4 --- /dev/null +++ b/site/src/content.config.ts @@ -0,0 +1,28 @@ +import { defineCollection } from "astro:content"; +import { z } from "astro/zod"; +import { docsLoader } from "@astrojs/starlight/loaders"; +import { docsSchema } from "@astrojs/starlight/schema"; + +// Two fields exist for agents rather than readers. +// +// `summary` is the one-line description that appears beside the page in +// llms.txt. Without it the index is a list of titles, which tells an agent what +// a page is called but not whether it is worth fetching. +// +// `read_when` states the situations in which this page is the right one: +// retrieval metadata written by the person who knows the answer. +// +// `generated` marks a page written by cmd/driga-docgen, which `just check` +// regenerates and compares. Edit the generator, never the page. +export const collections = { + docs: defineCollection({ + loader: docsLoader(), + schema: docsSchema({ + extend: z.object({ + summary: z.string().max(240).optional(), + read_when: z.array(z.string()).optional(), + generated: z.boolean().default(false), + }), + }), + }), +}; diff --git a/site/src/content/docs/explanation/how-driga-observes.mdx b/site/src/content/docs/explanation/how-driga-observes.mdx new file mode 100644 index 00000000..bab82ec1 --- /dev/null +++ b/site/src/content/docs/explanation/how-driga-observes.mdx @@ -0,0 +1,79 @@ +--- +title: How Driga observes sessions +description: Where Driga's evidence comes from - session files, hooks, the process table, Git and optional OTLP - and how the collector, spool and snapshots fit together. +summary: Evidence sources per agent, the collector and hook spool, snapshot mode, collection cadence, session families and how uncertain evidence is shown. +read_when: + - You want to know why a session shows a particular label. + - You are deciding whether to install hooks, the service or OTLP intake. +--- + +Driga does not run inside your agents and does not proxy their traffic. It +reads what agents already leave on disk, watches the process table, and accepts +events from hooks you choose to install. + +## Evidence sources + +- **Session files.** Claude Code and Codex histories and Gemini CLI chat + transcripts. The Codex catalog is opened read-only. Copilot session-state + files are not read. +- **Hooks.** Optional commands the agent runs on lifecycle events. They append + events to a spool directory and exit immediately; only the collector writes + the database. Claude's permission hook talks to the collector's in-memory + broker instead, so a prompt can be answered. See the + [hooks reference](/reference/hooks). +- **Processes.** The process table attributes processes to sessions by parent + chain and working directory, matched against + [signatures](/guides/projects-and-machines#orphans). Antigravity (`agy`) is + observed this way only, because its storage format is closed. +- **Git.** Local `git` commands for branches, worktrees, dirty state and + overlaps. They never fetch. +- **OTLP (optional).** A loopback OTLP/HTTP JSON receiver that enriches + existing Claude sessions with metadata. Content attributes are discarded + before storage, and it never creates sessions. + +Unknown or incomplete evidence is shown as such: `stalled?` is a suspicion, +`unknown` means the evidence cannot decide, and unknown agent versions are +parsed tolerantly and reported by `driga doctor`. + +## Collector and snapshots + +Without a collector, every read command takes a one-shot snapshot that writes +no database and is labelled `snapshot · no history`. + +The collector (`driga service install`, or `driga collect` in the foreground) +keeps a local SQLite database. Only one collector can hold a data directory. +Idle, it samples processes and machine health every 60 seconds and Git every +five minutes; while a viewer is open those speed up to 5, 10 and 30 seconds. + +## Families + +Related sessions form a family, such as a lead session and the workers it +spawned. Spawn links come only from a recorded parent; Flow never infers them +from timing. Selecting one session never selects its whole family. + +## Interfaces share one read path + +The CLI's `--json`, the terminal UI, the web dashboard, the MCP server and +paired viewers read the same schema-2 views. JSON envelopes carry the +observation time, collection mode, source freshness and coverage gaps, so a +consumer can tell how current an answer is. + +## OTLP intake + +```toml +[intake] +otlp = true +listen = "127.0.0.1:7418" +``` + +Then configure the exporters, previewing first: + +```sh +driga hooks install --otlp claude --dry-run +driga hooks install --otlp claude +driga hooks status --otlp +``` + +For Claude this sets logs to OTLP with metrics and traces off (add `--traces` +for Claude's beta spans) and does not enable prompt or tool-content logging. +Installation refuses to replace telemetry you have already configured. diff --git a/site/src/content/docs/explanation/privacy-and-data.mdx b/site/src/content/docs/explanation/privacy-and-data.mdx new file mode 100644 index 00000000..bf602405 --- /dev/null +++ b/site/src/content/docs/explanation/privacy-and-data.mdx @@ -0,0 +1,62 @@ +--- +title: Privacy and data +description: What Driga reads and stores on your machine, what can leave it and when, the capture_text policy, and where files live. +summary: What Driga collects and stores, the titles and snippets capture policies, what Chat, summaries and fleet sharing send, file locations and permissions. +read_when: + - You need to know what Driga stores before installing it. + - You are deciding between capture_text titles and snippets. +--- + +Driga runs on your machine and has no account, server or API key. This page is +about the app; the website is covered on [its own privacy page](/privacy). + +## What it reads + +Local agent session metadata and logs, the process table, machine health and +local Git state. Agent configuration is changed only by explicit setup and hook +commands, each previewed first. + +## What it stores + +The default `capture_text = "titles"` stores generated session titles, file +paths, and session, process, Git and machine metadata. + +`capture_text = "snippets"` additionally stores prompt and handoff snippets, +each scrubbed for secrets and capped at 200 characters. + +Full transcripts are never stored. Paths and titles can identify you, and +secret scrubbing cannot guarantee privacy. + +## What can leave the machine + +Nothing, unless you turn one of these on: + +| Feature | What leaves | Where | +| --- | --- | --- | +| [Paired machines](/guides/fleet) | Metadata and titles by default; snippets only if both sides opt in | Viewers you paired with | +| [Chat](/guides/chat) and `driga ask` | Your question, scrubbed, and context filtered by the capture policy | Claude, through your installed `claude` CLI and its login | +| [Summaries](/guides/chat#summaries) | Project name, branches, counts, commit subjects, session titles; handoff text only with snippets | Same | + +Chat tools you approve may make network connections. Claude's own session +history is managed by Claude, not by Driga's capture policy. + +OTLP intake listens on loopback, and drops prompt, response and tool content, +`user.*` attributes and `organization.id` before storage. The web dashboard +listens on loopback and requires a local access token. + +## Where files live + +| Data | macOS | Linux | Override | +| --- | --- | --- | --- | +| Database and collector state | `~/Library/Application Support/driga/` | `$XDG_DATA_HOME/driga` or `~/.local/share/driga/` | `DRIGA_DATA_DIR` | +| Hook spool | `~/Library/Application Support/driga/events/` | `$XDG_STATE_HOME/driga/events` or `~/.local/state/driga/events/` | `DRIGA_SPOOL_DIR` | +| Configuration | `$XDG_CONFIG_HOME/driga/config.toml` or `~/.config/driga/config.toml` | `$XDG_CONFIG_HOME/driga/config.toml` or `~/.config/driga/config.toml` | `DRIGA_CONFIG` | + +On Windows the data directory is `%LOCALAPPDATA%\driga\` and the configuration +is `%APPDATA%\driga\config.toml`. + +Database and spool files are mode `0600` in `0700` directories. `driga doctor` +warns when the database and its WAL exceed 500 MB. + +MCP server trend detail is kept at minute resolution for 24 hours, then as hourly +endpoints for 30 days. Persisted Chat conversations are kept for 30 days. diff --git a/site/src/content/docs/guides/chat.mdx b/site/src/content/docs/guides/chat.mdx new file mode 100644 index 00000000..45c9d6d2 --- /dev/null +++ b/site/src/content/docs/guides/chat.mdx @@ -0,0 +1,98 @@ +--- +title: Chat and actions +description: Ask Driga about your sessions through your installed Claude Code CLI, and approve the actions it proposes with trust modes and action cards. +summary: Chat in the TUI and web, driga ask, what Chat can do, the Confirm, Auto and Full auto trust modes, action cards and what is retained. +read_when: + - You want to ask questions about your sessions in plain language. + - You want to know what Chat may run without asking. +--- + +import TerminalFrame from "../../../components/TerminalFrame.astro"; + +Chat answers questions about your sessions using your installed `claude` CLI +and its existing login. Driga has no API key and never calls a model in the +background: Chat and [summaries](#summaries) run only when you ask. Codex and +Copilot are listed as coming. + + + +## Open it + +- **Terminal UI:** press `c` anywhere for Chat with the current selection. + Enter sends; Shift+Enter (or Alt+Enter) adds a line; Esc closes the panel and + keeps the draft. Alt+0, Alt+1 and Alt+2 switch tabs while typing. +- **Web:** press `c` on any page, or open the Chat page, to dock Chat on the + right. Context chips describe the current page, selection and machine; remove + a chip to leave it out. +- **One shot:** `driga ask "which agents are waiting on me?"`. `driga ask` is + read-only and has no action cards. + +Session references in answers select the session. Tool calls appear in a +collapsed **Tools used** list, and replies are marked **answered by Claude +Code**. + +## What Chat can do + +Chat reads through Driga's read-only tools. With approval it can also +acknowledge inbox items, jump to a session terminal, kill an agent or orphan, +clean up a candidate, refresh project summaries and answer Claude permission +prompts. It also has Claude's built-in shell and file tools. Actions are +local-only and keep the CLI's process, cleanup and jump safety checks. Chat +never types into a live agent terminal. + +## Trust modes + +Each conversation starts in **Confirm**. Change mode with the web header +buttons or `m` in the TUI's navigate mode. + +| Mode | Runs without asking | Asks | +| --- | --- | --- | +| Confirm | Driga read tools; reads inside the working directory | Reads elsewhere and every other call | +| Auto | Confirm's list, plus inbox acknowledgments, jumps and summaries; Edit/Write only inside a git project working directory that is not your home, the Driga data directory or an ancestor of either, and never on hidden paths or agent instruction files | Everything else | +| Full auto | Everything | Nothing | + +Answering a permission prompt always asks in Auto. + +**Full auto** needs confirmation, is shown in red with its remaining time, and +lasts at most 30 minutes. It ends when you switch it off, close the +conversation or restart the broker, and is never persisted. Only you, through a +client, can change modes or decide cards; model text, files and tool output +cannot. + +## Action cards + +A card shows the tool, its exact input, the working directory, status, who +decided and the result. + +- **Web:** click **Allow** or **Deny**. +- **TUI:** in navigate mode `y` allows and `n` denies the oldest pending card; + while typing use Alt+y and Alt+n. The status line says **action waiting**. + +Stop denies pending cards before stopping the turn. Unanswered cards expire +after ten minutes. + +## Where conversations live + +The collector owns the Chat broker. Without the service, the client you open +runs a private broker and labels it **conversations end with it**. With the +service, conversation IDs and capture-filtered messages persist for 30 days; +interrupted work is marked interrupted after a restart and never replayed to +the agent. + +Your question is scrubbed and sent to Claude. Context and tool results pass the +capture policy first. Under the default `capture_text = "titles"` Driga keeps +no chat message bodies; `snippets` keeps scrubbed 200-character snippets. +Claude's own session history is managed by Claude and is not controlled by +Driga's capture policy. + +## Summaries + +```sh +driga projects summarize ... # or --all +``` + +Summaries need `summaries.enabled = true`. They send the project name, +branches, dirty/ahead/behind counts, the last five commit subjects, recent +session titles and, only with `capture_text = "snippets"`, handoff text. They +never send transcript lines, file contents or paths, and run with a $0.05 +budget cap. diff --git a/site/src/content/docs/guides/cleanup.mdx b/site/src/content/docs/guides/cleanup.mdx new file mode 100644 index 00000000..39adc31d --- /dev/null +++ b/site/src/content/docs/guides/cleanup.mdx @@ -0,0 +1,53 @@ +--- +title: Cleanup +description: Find disk that coding agents left behind, such as idle worktrees and scratch directories, and remove it only after re-verification and confirmation. +summary: Cleanup candidates (worktrees, scratch, history), the checks each must pass, dry runs, bulk removal and the audit log. +read_when: + - Agents have left worktrees and temporary directories behind and you want the disk back. + - A cleanup was refused and you want to know why. +--- + +`driga cleanup` lists disk that agents left behind. Nothing is removed +automatically, and nothing is removed on another machine. + +```sh +driga cleanup list # candidates with evidence +driga cleanup list --sizes # walk sizes on demand (30 s cap per walk) +driga cleanup list --why # include worktrees that don't qualify, and why +driga cleanup remove --dry-run # print the exact commands +driga cleanup remove # re-verify, then ask +driga cleanup remove --kind worktree --all # every ready worktree; skips anything changed +``` + +In the terminal UI, cleanup lives under Machines → `d`. + +## Candidates + +**Worktrees.** A linked worktree (never the main or a locked one) with no live +session or process inside, no tracked or untracked changes, commits merged into +the default branch or pushed, and idle for `cleanup.worktree_idle` (default +`168h`). The action is `git worktree remove`, `git worktree prune`, then +`git branch -d` only when merged, never `-D`. Ignored build output listed in +`cleanup.regenerable` (such as `node_modules/` and `target/`) goes with the +worktree; any other ignored file, such as `.env` or a local database, makes the +candidate `needs-review`, and removing it needs `--include-ignored`. + +**Scratch.** A Claude Code per-session temporary directory whose session ended +at least 24 hours ago and that has no open files. It is moved to the trash +(macOS Trash or the freedesktop trash on Linux), never deleted. + +**History.** Agent history sizes by age. Report only: use the agent's own +retention setting, such as Claude Code's `cleanupPeriodDays`. + +## Safety + +Every check runs again just before acting; if anything changed, the action is +refused with the reason. Each attempt is appended to `cleanup.log` in the data +directory. Bulk removal reports completed, skipped and failed counts and exits +`1` if any item fails. + +On Windows (experimental), verified worktrees go to the Recycle Bin and Claude +scratch cleanup is refused; see [Windows](/guides/windows). + +The MCP tool `list_cleanup_candidates` reads the same candidates and never +removes anything. diff --git a/site/src/content/docs/guides/fleet.mdx b/site/src/content/docs/guides/fleet.mdx new file mode 100644 index 00000000..6a3ba5c9 --- /dev/null +++ b/site/src/content/docs/guides/fleet.mdx @@ -0,0 +1,133 @@ +--- +title: Paired machines +description: Pair Driga across machines over pinned mutual TLS so one viewer sees agents on several machines, with explicit control over what is shared. +summary: How fleet pairing works, interactive and headless enrollment, SSH tunnels, what a serving machine shares, and how to remove or re-pair machines. +read_when: + - You run agents on a VM, a server or a second laptop and want to see them in one place. + - A paired machine shows as untrusted or stale. +--- + +import { Steps } from "@astrojs/starlight/components"; + +Each serving machine runs a collector; each viewer's collector pulls from its +paired peers. Pairing is directional: repeat it the other way if both machines +should see each other. Collection views merge paired machines by default; use +`--machine local` or `--machine ` to narrow them. + +Use a private LAN or overlay address you choose, such as a VPN interface. No +particular overlay is required. + +## Pair two machines + + + +1. **On the peer**, serve the fleet. Stop any running collector first: + + ```sh + driga service stop + driga collect --serve --listen :7411 + ``` + + For persistent serving, configure it and restart the service instead: + + ```toml + [fleet] + serve = true + listen = ":7411" + share_text = "titles" + ``` + +2. **On the peer**, in another terminal, open enrollment: + + ```sh + driga fleet enroll --allow-ack # omit --allow-ack for read-only access + ``` + +3. **On the viewer**, add the peer. Compare the six-digit code shown in both + terminals and answer `y` on each: + + ```sh + driga fleet peers add :7411 --name vm-1 + driga service install + driga machines + driga agents --machine vm-1 + ``` + + + +`fleet peers add` reports the grant it received: `read ✓ · ack ✓` or +`read ✓ · ack ✗`. Enrollment lasts at most ten minutes, allows three attempts +and closes on success. + +### Headless pairing + +Exchange full device IDs over a trusted channel; then neither side prompts: + +```sh +driga fleet id # on each machine +driga fleet enroll --allow-viewer --allow-ack # peer +driga fleet peers add :7411 --name vm-1 --device-id # viewer +``` + +### Through an SSH tunnel + +For a bastion-only host, serve on the peer's loopback and tunnel from the viewer: + +```sh +driga collect --serve --listen 127.0.0.1:7411 # peer +ssh -N -L 7411:127.0.0.1:7411 # viewer, keep running +driga fleet peers add 127.0.0.1:7411 --name vm-1 # viewer +``` + +The pinned certificate authenticates the peer through the tunnel, so no public +port or inbound rule is needed. + +## Security + +Mutual TLS 1.3 pins each certificate. An identity change shows the peer as +`untrusted` and requires removal and deliberate re-pairing; trust is never +renewed automatically. Wildcard and public listeners are refused unless +`fleet.allow_any_address = true`. Keep firewall ingress to TCP 7411 (or your +port) restricted to viewers. Fleet trust files live under the data directory's +`fleet/` with private permissions; never copy its identity key between +machines. + +## What a serving machine shares + +The serving peer decides what leaves it: + +| Data | Shared by default? | +| --- | --- | +| Host, OS and resources; session labels, evidence, timestamps, working directories and touched file paths | Yes (metadata; paths can identify you) | +| Session titles and Git commit subjects | Yes; `fleet.share_text = "none"` withholds them | +| Prompts, handoffs, textual inbox summaries | No; needs `fleet.share_text = "snippets"` on the peer **and** `capture_text = "snippets"` locally | +| Repository paths, branches, dirty counts, remote URLs | Yes, with URL credentials stripped | +| Processes and orphan candidates | Agent processes only, command lines scrubbed and truncated | +| Machine samples, source freshness, coverage gaps | Yes | +| Full transcripts, API keys | No | + +A viewer stores what a peer shares even if its own capture setting is +`titles`. Pair only with viewers you trust to keep that metadata. + +## Manage peers and viewers + +```sh +driga fleet status # serving streams and enrollment +driga fleet peers list +driga fleet peers remove vm-1 # keep cached history +driga fleet peers remove vm-1 --purge +driga fleet viewers list +driga fleet viewers revoke +``` + +Unreachable peers become stale after 45 seconds; their last-known rows stay +visible. Clock skew over 60 seconds warns in `driga machines`. + +## Cloned machines and rekeying + +Before enrolling a cloned VM, stop its collector and run +`driga machines reset-id` **on the clone**, then restart and re-pair. This +creates a new machine ID and certificate. `driga fleet rekey` rotates only the +certificate; it also needs a stopped collector and re-pairing. On a viewer that +then reports the peer as untrusted, remove the peer, reopen enrollment on the +peer and add it again. diff --git a/site/src/content/docs/guides/flow.mdx b/site/src/content/docs/guides/flow.mdx new file mode 100644 index 00000000..c1c224f0 --- /dev/null +++ b/site/src/content/docs/guides/flow.mdx @@ -0,0 +1,79 @@ +--- +title: Flow +description: Use Flow in the terminal UI and web dashboard to see every session as a map, a timeline or a list, and act on one. +summary: Flow's Map, Timeline and Sessions views, keys, labels, the Needs you shelf, Activity history and session actions. +read_when: + - You opened driga top and want to know what Flow shows and which keys drive it. + - You want to jump to, stop or inspect one session. +--- + +import TerminalFrame from "../../../components/TerminalFrame.astro"; + +`driga top` opens on **Flow** (`0`). The other tabs are Projects (`1`) and +Machines (`2`). `driga web` shows the same three tabs in a browser. + + + +## Three views + +| Key | View | Shows | +| --- | --- | --- | +| `m` | Map (default) | A grouped project tree in the terminal; an SVG of projects, leads and workers on the web. More than four workers fold into a `+N` control. | +| `t` | Timeline | Each session's activity over the window, grouped by project. | +| `s` | Sessions | Every session as a sortable list (`S` sorts). | + +Timeline and Sessions always reach every session, including folded ones. + +Flow shows only stored evidence. Purple spawn links come from a session's +recorded parent; red dashed same-file links need full paths on the same +machine. Tool counts and ticks are labelled **telemetry** and appear only for +real Claude or Copilot tool events. Cost is labelled **retained window**. +Unknown history stays neutral rather than guessed. + +## Keys + +| Key | Action | +| --- | --- | +| Arrows, `j` / `k` | Select | +| `/` | Find | +| Enter | Open context; Enter again opens a scrollable inspector | +| Esc | Back | +| Tab | Focus the Needs you shelf | +| `y` / `n` | Answer the selected permission prompt (after a short review delay) | +| `J` | Open the session's terminal through its stored jump destination | +| `K` | Stop a local session after you confirm (web: **Stop**) | +| `C` | Copy the resume command | +| `c` | Open [Chat](/guides/chat) with this context | +| `h` | Activity history | +| `M` | Change machine scope | +| `?` | Help | +| `q` | Quit | + +`K` rechecks that the target is the same idle process before stopping it. +Sessions on a paired machine must be stopped on that machine. + +## Needs you and Activity + +The **Needs you** shelf sits above the tree, oldest first, with the same count +as the waiting header. See [Needs you and prompts](/guides/needs-you). + +The expandable **Activity** section keeps notification and event history. +Reading never acknowledges anything. Press `x` or Space on an eligible history +item, or run `driga inbox ack`, to acknowledge it. + +## From the CLI + +```sh +driga flow # newest live interactive session's family +driga flow 12 --minutes 240 +driga agents --all # include sessions ended in the last 24 hours +driga agents show 12 +driga agents jump 12 +driga agents kill 12 +``` + +Hosted sessions idle for more than an hour are hidden from default listings and +counts; `--all` brings back those active in the last 24 hours. Read commands +take scope and output flags such as `--json`, `--machine` and `--project`; +the [CLI reference](/reference/cli) lists them per command. For a live view use +`driga top` or `driga web`. diff --git a/site/src/content/docs/guides/mcp.mdx b/site/src/content/docs/guides/mcp.mdx new file mode 100644 index 00000000..bd33928e --- /dev/null +++ b/site/src/content/docs/guides/mcp.mdx @@ -0,0 +1,69 @@ +--- +title: Connect an agent over MCP +description: Register driga mcp with Claude Code or Codex so your agent can read sessions, projects, inbox and machine health through read-only tools. +summary: Registering driga's read-only MCP server with Claude Code and Codex, what the tools return, and scoping requests. +read_when: + - You want your coding agent to ask Driga what other agents are doing. + - You are deciding whether giving an agent Driga's MCP tools is safe. +--- + +import { Tabs, TabItem } from "@astrojs/starlight/components"; + +`driga mcp` serves read-only tools over stdio. Every response is the same +schema-2 envelope as `--json`, and reading never acknowledges inbox items. The +server cannot answer prompts, kill processes or remove anything; those actions +exist only inside Driga's own [Chat](/guides/chat), behind approval cards. + +Keep the installed `driga` binary on the client's `PATH`, and run the +collector for history and merged fleet data. Without one, tools answer from a +labelled one-shot snapshot. + + + + +```sh +claude mcp add --scope user driga -- driga mcp +``` + + + + +In `~/.codex/config.toml` (or `$CODEX_HOME/config.toml`): + +```toml +[mcp_servers.driga] +command = "driga" +args = ["mcp"] +``` + + + + +## Scope + +Machine, project and time scopes are tool arguments, not server flags. Pass +`machine: "local"` to read only this machine. `driga mcp --snapshot` forces +one-shot reads without history. + +Every tool takes `limit` (1–500, default 100), which bounds the total entries +in a response including nested lists; `truncated: true` means some were left +out. + +## Tools + +| Tool | CLI equivalent | +| --- | --- | +| `get_summary` | `driga summary` | +| `list_agents`, `get_agent` | `driga agents`, `driga agents show` | +| `get_flow` | `driga flow` | +| `list_projects`, `inspect_project` | `driga projects`, `driga projects show` | +| `list_inbox` | `driga inbox` | +| `list_conflicts` | Overlaps in Flow and Projects | +| `list_orphans` | `driga orphans` | +| `get_machine`, `list_machines` | `driga machines show`, `driga machines` | +| `get_activity` | The web Activity page | +| `inspect_setup` | `driga doctor` | +| `list_cleanup_candidates` | `driga cleanup list` | + +Inputs and descriptions for every tool are in the +[MCP tools reference](/reference/mcp-tools), generated from the server itself. diff --git a/site/src/content/docs/guides/needs-you.mdx b/site/src/content/docs/guides/needs-you.mdx new file mode 100644 index 00000000..796763cb --- /dev/null +++ b/site/src/content/docs/guides/needs-you.mdx @@ -0,0 +1,70 @@ +--- +title: Needs you and prompts +description: See which sessions are waiting on you, acknowledge inbox items, and answer Claude Code permission prompts from Driga. +summary: The Needs you shelf, the inbox, acknowledgment, and answering Claude permission prompts from the TUI or web. +read_when: + - You want to answer a Claude Code permission prompt without switching terminals. + - An inbox item will not go away and you want to know why. +--- + +import { Steps } from "@astrojs/starlight/components"; + +**Needs you** collects every session waiting on you, oldest first. It is the +shelf at the top of Flow and the `driga inbox` command. + +```sh +driga inbox # current waits and recent completions +driga inbox list --all # full history, including acknowledged items +driga inbox ack # explicit acknowledgment +driga inbox ack --all +driga inbox jump # go to the session; does not acknowledge +``` + +Reading an item never acknowledges it. Unresolved permission prompts need an +answer, not an acknowledgment. When a session ends, unread completion items +stay in the inbox and pending waits close. + +## Answer Claude permission prompts + + + +1. Run the collector (`driga service install`). +2. Install the Claude hooks, which include `PermissionRequest` with a + 660-second timeout: + + ```sh + driga hooks install claude + ``` + +3. Restart running Claude sessions. + + + +Pending local Claude prompts appear above the inbox waits with the session, +tool and exact input. + +- **Terminal UI:** select the prompt and press `y` to allow or `n` to deny. + Enter opens the full input. In Flow, Tab focuses the shelf first. +- **Web:** use **Allow** or **Deny**. Browser decisions require the + authenticated session, Origin and CSRF token. + +The first answer wins, whether it comes from Driga or the terminal. A prompt +answered in the terminal retires from Driga within about a second; session end, +hook exit and ten minutes also retire it. If the collector is absent, times out +or errors, the hook exits successfully with no output and the terminal decides +as usual. + +Denials say "Denied from driga". Driga never creates "always allow" rules. + +### Limits + +- Prompts live in memory only: never in the database, logs or fleet. + Notifications for a prompt keep only the tool and needs-you metadata, even + with snippets capture. +- Only local Claude Code prompts can be answered. Codex, Copilot, Gemini and + paired-machine prompts are outside this feature. +- Remote inbox acknowledgments need the peer's `--allow-ack` grant; an + unreachable peer shows `ack pending` and retries on reconnect. + +Chat can also answer prompts, through an approval card; see +[Chat and actions](/guides/chat). diff --git a/site/src/content/docs/guides/notifications.mdx b/site/src/content/docs/guides/notifications.mdx new file mode 100644 index 00000000..7af65eb8 --- /dev/null +++ b/site/src/content/docs/guides/notifications.mdx @@ -0,0 +1,71 @@ +--- +title: Notifications +description: Get a desktop alert when a session needs you, allow Driga in macOS System Settings, and tune or turn off alerts. +summary: Desktop alerts on macOS, Linux and Windows, the macOS notification permission, click actions, health warnings and alert settings. +read_when: + - You expected a desktop alert and did not get one. + - You want fewer alerts, later alerts, or none. +--- + +Driga raises a desktop alert when a session needs you. The alert shows the +session title or project and why it needs you, within your capture policy. + +Alerts come from the background collector, so run the service: + +```sh +driga service install +``` + +## macOS + +Notifications need the installed **Driga.app**, which the Homebrew cask +provides: + +```sh +brew install --cask labstack/tap/driga +``` + +They use Driga's name and icon through the native notification API; no helper +is needed. Builds run from a checkout or `go run` cannot send macOS +notifications, and `driga doctor` explains how to install the app. + +The collector asks for permission when it starts, so answer the prompt that +appears after `driga service install`. macOS asks only once: if the prompt was +declined, or withdrawn because the collector restarted before you answered, +turn on **Allow notifications** in **System Settings → Notifications → Driga**. +`driga doctor` warns when notifications are off and prints the command that +opens that page. Turning them back on takes effect from the next +alert without restarting the collector; alerts raised while they were off are +not replayed, and stay in the inbox. + +Clicking a local item's notification runs `driga inbox jump ` +without acknowledging it. A jump selects a proven tmux pane, focuses a proven +Terminal or iTerm window when `inbox.jump_terminal = true`, or prints a resume +command. Machine warnings open Terminal on the Machines tab. Batch summaries +and remote alerts have no click action. + +## Linux and Windows + +Linux uses `notify-send`. Windows uses native toasts with a per-user +`LabStack.Driga` identity; toasts are plain, without click actions, and Focus +Assist or notification policy can suppress them. `driga doctor` reports +availability. + +## Health warnings + +Machine health warnings, such as low disk, notify once per condition until it +clears. Concurrent warnings from one machine form one summary. Details and +cleanup commands stay in the inbox. + +## Tune alerts + +```toml +[inbox] +alerts = "waiting" # "all" adds completions, "off" disables alerts +alert_after = "0s" # only alert when a wait is still open this long +alert_repeat = "5m" # minimum interval between alerts for one session +jump_terminal = false # bring a proven macOS terminal window to front +``` + +`alert_repeat` throttles session alerts, not health warnings. Every key is in +the [settings reference](/reference/settings#inbox-and-alerts). diff --git a/site/src/content/docs/guides/projects-and-machines.mdx b/site/src/content/docs/guides/projects-and-machines.mdx new file mode 100644 index 00000000..e0d4732a --- /dev/null +++ b/site/src/content/docs/guides/projects-and-machines.mdx @@ -0,0 +1,107 @@ +--- +title: Projects and machines +description: Use the Projects and Machines tabs and commands to see repository state, file overlaps, machine health, agent memory and CPU, and orphaned processes. +summary: Project status and overlaps, machine health with agent attribution, orphan candidates and how to stop them safely, and low-disk and memory-pressure warnings. +read_when: + - Your machine is slow and you want to know which agent sessions are responsible. + - You want to find orphaned agent helper processes or file overlaps between agents. +--- + +import TerminalFrame from "../../../components/TerminalFrame.astro"; + +## Projects + +The Projects tab (`1`) owns repository and worktree context: local Git branches, +worktrees, dirty state, the sessions working in each, and file overlaps between +agents. + +```sh +driga projects # project status +driga projects --at-risk # only projects with risk flags +driga projects show # status, worktrees and sessions +``` + +Repositories are discovered from session working directories. Add scanning +roots only if you want more: + +```toml +roots = ["~/code"] +root_depth = 3 +``` + +Local Git commands never fetch. + +## Machines + +The Machines tab (`2`) owns health and reclamation: `h` health, `p` process +review, `d` [disk candidates](/guides/cleanup). + + + +```sh +driga machines show # local machine, compact, with 24h trends +driga machines show --full # all retained trends and process detail +driga machines # local and paired machine connection health +``` + +Every sampled process is placed exactly once: + +1. **Session** — proven to belong to a live agent session, by its parent chain + or a unique project working directory. +2. **Agent without a session** — the process or an ancestor matches an agent + signature. +3. **Likely agent work** — MCP servers below a non-agent app such as an editor, + shown as **shared with editor**. +4. **Other apps** — everything else, as one total. + +The summary leads with proven agent memory against machine memory, then CPU, +process and MCP server counts, pressure, swap and free disk, followed by +sessions by cost, MCP server roll-ups and pile-ups with observed growth, and +machine vitals. Likely memory is never folded into the proven amount. Machine +session memory is labelled separately from Flow's monetary cost. + +## Orphans + +An orphan is an agent helper process tree whose agent is gone. Driga shows the +evidence and never acts without confirmation. + +```sh +driga orphans # candidates and evidence +driga orphans kill # previews the tree and asks +driga orphans kill --force +``` + +Termination rechecks identity and descendants before acting, and young +candidates (`orphan_min_age`, default 10m) are refused. `--force` escalates +survivors after a second confirmation, unless `--yes` was given. Processes on a +paired machine must be handled on that machine. + +Process signatures can be extended with `orphans.extra_signatures`: + +```toml +[orphans] +extra_signatures = ["~/extra-agent-signatures.toml"] +``` + +```toml +[[signature]] +name = "example-helper" +agent = "codex" +role = "helper" +match = ['^example-agent-helper([[:space:]]|$)'] +``` + +Extra files are read before the built-in signatures and the first match wins. +Roles are `interactive`, `headless`, `host`, `helper` and `app`. + +## Warnings + +- **Low disk:** below `machine.disk_free_min`. The default `"0"` is automatic: + the smaller of 10% of the volume or 20 GB. Set a byte value such as `"5GiB"` + to override. +- **Memory pressure:** after two consecutive critical OS samples. The text + leads with the agents' proven share of memory in use and names the largest + MCP pile-up. + +Each condition notifies once until it recovers; see +[Notifications](/guides/notifications). diff --git a/site/src/content/docs/guides/windows.mdx b/site/src/content/docs/guides/windows.mdx new file mode 100644 index 00000000..1849e5b0 --- /dev/null +++ b/site/src/content/docs/guides/windows.mdx @@ -0,0 +1,63 @@ +--- +title: Windows +description: What Driga supports on Windows 10 and 11 today, how the collector, hooks, alerts and cleanup differ, and what is still unverified. +summary: Experimental Windows support - Task Scheduler collector, hook forms, toasts, terminal jumps, orphan kill and Recycle Bin cleanup, and known limits. +read_when: + - You run coding agents on Windows and want to know what works. + - A Windows hook, alert or cleanup behaves differently from macOS or Linux. +--- + +:::caution[Experimental] +Windows support is feature-complete pending verification on real hardware. +Real agent sessions, logon and restart, notifications, orphan shutdown and +Recycle Bin restore still need that verification. +::: + +Windows 10 1809+ and Windows 11 have native snapshots, foreground collection, +the read commands, the terminal UI, the web dashboard, MCP, OTLP intake and +fleet. Install with [Scoop](/start/install). + +## Collector + +`driga service install` registers a per-user Task Scheduler task, +**Driga collector**, that runs at logon with least privilege. It needs no +password, elevation or PowerShell. `start`, `stop`, `restart`, `status`, +`logs [-f]` and `uninstall` work as on other platforms. Logs are at +`%LOCALAPPDATA%\driga\logs\collector.log`, bounded to 10 MiB plus one rotated +file. + +The task records the home, temporary-directory and Driga path overrides at +installation; reinstall after changing them. Installation refuses an existing +task, so uninstall before changing the binary path. + +## Hooks + +Hook installation previews the diff as on Unix. Claude and Copilot hooks use +the executable-plus-arguments form with an absolute path, which avoids shell +quoting entirely. The Codex hook uses +`cmd.exe /d /c call "" hook codex PermissionRequest`, so +the install path must not contain shell metacharacters such as `%`, `!`, `&`, +parentheses, `$` or backticks. Spaces, apostrophes and Unicode are fine. +`CLAUDE_CONFIG_DIR`, `CODEX_HOME` and `COPILOT_HOME` are respected. + +## Alerts and jumps + +Alerts are plain WinRT toasts without click actions; use `driga inbox` and +`driga inbox jump ` to navigate. Focus Assist and notification policy can +suppress them, and `driga doctor` reports availability. + +Jumps open Windows Terminal (`wt.exe -d `) or, failing that, a new Command +Prompt in the session's directory. Stored resume commands are shown for +copying, never executed. + +## Orphans and cleanup + +`driga orphans kill` uses the same candidates and confirmations as Unix. Every +process start time in a tree is pinned and checked again before acting. The +graceful step posts `WM_CLOSE` to the process's own windows; after the grace +period, `--force` terminates through an identity-checked handle. Headless +processes may need `--force`. + +Verified linked worktrees are moved to the Recycle Bin, then Git worktree +metadata is pruned. Claude scratch cleanup is refused because its Windows +layout is not yet established, and `driga doctor` explains this. diff --git a/site/src/content/docs/index.mdx b/site/src/content/docs/index.mdx new file mode 100644 index 00000000..8169871a --- /dev/null +++ b/site/src/content/docs/index.mdx @@ -0,0 +1,92 @@ +--- +title: See what your coding agents are doing, and what needs you. +description: Driga watches Claude Code, Codex, Gemini CLI and Copilot sessions across your projects and machines, in a CLI, a terminal UI and a local web dashboard. +summary: What Driga is, how to install it on macOS, and what it shows. +template: splash +head: + - tag: title + content: "Driga · See what your coding agents are doing, and what needs you." + - tag: link + attrs: + rel: canonical + href: "https://driga.dev/" + - tag: meta + attrs: + property: og:title + content: "Driga · See what your coding agents are doing, and what needs you." + - tag: meta + attrs: + property: og:url + content: "https://driga.dev/" +hero: + title: See what your coding agents are doing, and what needs you. + tagline: Every Claude Code, Codex, Copilot and Gemini session across your projects and machines, live. Answer a waiting agent from the terminal or the browser. + actions: + - text: Read the docs + link: /start/what-driga-is + attrs: + data-analytics-action: docs +--- + +import Feature from "../../components/landing/Feature.astro"; +import Section from "../../components/landing/Section.astro"; +import Way from "../../components/landing/Way.astro"; +import InstallCommand from "../../components/landing/InstallCommand.astro"; + + + +Permission prompts, questions and finished turns land in one list, oldest first, with the full command. Allow or deny without finding the window. + + + + + +Sessions grouped by project, workers under the agent that started them, and a red tag when two agents edit the same file. As a map, a timeline or a plain list. + + + + + +Memory and CPU by session, helpers left running after an agent ends, and old worktrees you can remove, each with its evidence and a confirm step. + + + +
+ + + +Keyboard first. Flow, Projects and Machines, with Chat one key away. [Flow](/guides/flow) + + + + + +The same views in your browser, on loopback only. Light and dark follow your system. [First run](/start/first-run) + + + + + +Read-only MCP tools and versioned `--json` on every read command. [MCP](/guides/mcp) + + + +
+ +
+ +No account and no API key. Driga reads session files, the process table and Git on your machine. Driga is alpha: formats and behaviour can still change. + +- Full transcripts are never stored. +- Nothing leaves the machine unless you pair machines, over pinned mutual TLS, or use Chat and summaries, which go through your own `claude` CLI. +- Open source, Apache 2.0. [Privacy and data](/explanation/privacy-and-data) + +
+ +
+ + + +Then run `driga`. Linux packages and Windows (experimental) are on the [install page](/start/install). + +
diff --git a/site/src/content/docs/privacy.mdx b/site/src/content/docs/privacy.mdx new file mode 100644 index 00000000..8bc6e4cd --- /dev/null +++ b/site/src/content/docs/privacy.mdx @@ -0,0 +1,66 @@ +--- +title: Privacy +description: What driga.dev measures, what it never collects, and how to turn analytics off. +summary: Website analytics, consent controls, browser storage and hosting for driga.dev; separate from the Driga app. +read_when: + - You want to know what this website records about your visit. + - You allowed or declined analytics and want to change that answer. +--- + +import AnalyticsPreference from "../../components/AnalyticsPreference.astro"; + +This page describes the `driga.dev` website. The Driga app runs on your own +machines and sends no usage reports to LabStack; what it reads and stores is +described in [Privacy and data](/explanation/privacy-and-data). + +## Website analytics + + + +### When it runs + +- **In the EEA, the UK, Guernsey, the Isle of Man and Jersey**, the analytics tag is + loaded and its identifier stored only after you allow analytics. +- **Everywhere else**, analytics run and the control above turns them off. +- **If your browser sends Global Privacy Control**, analytics do not run and + you are not asked. Choosing Allow above overrides that signal for this browser. + +Do Not Track is not consulted. Which rule applies is decided from the country +Cloudflare reports for your connection; if that lookup fails, the site asks. + +### What is sent + +When analytics are running, each page view sends the page path, the page title, +the site you arrived from, and the coarse device, browser and country +information any web request carries. Query strings are removed from the +recorded address, and the referrer is reduced to its site. + +Outbound clicks in the header, footer and landing page record the control, +link text and destination URL. Copying the install command records that it was +copied. Google Signals and ad personalisation are disabled and ad data +redaction is enabled. + +### What is never sent + +The site does not send search terms or collect form input. It has no accounts, +session recording or heatmaps. + +### Storage + +Your answer is kept in your browser's local storage under +`driga.analytics-consent.v1`, which is read by this site and sent to nobody. +Allowing lets Google Analytics set its `_ga` cookies; declining afterwards +deletes them. + +## Hosting + +The site is static files served by Cloudflare Pages. Like any web server, +Cloudflare receives the IP address and request headers needed to deliver a +page. That processing is Cloudflare's, under their terms. + +## Contact + +Questions about this page belong in +[an issue](https://github.com/labstack/driga/issues). The site's source, +including the analytics code described here, is in +[the repository](https://github.com/labstack/driga/tree/main/site). diff --git a/site/src/content/docs/reference/cli.mdx b/site/src/content/docs/reference/cli.mdx new file mode 100644 index 00000000..240836b6 --- /dev/null +++ b/site/src/content/docs/reference/cli.mdx @@ -0,0 +1,922 @@ +--- +title: "CLI reference" +description: "Every driga command, subcommand, argument and flag, with defaults and allowed values." +summary: "Every visible driga command and flag, generated from the same Kong command tree that prints `driga --help`." +read_when: + - "You need the exact spelling, default or allowed values of a driga flag." + - "You are scripting driga and want to know which commands take --json or --yes." +generated: true +--- + +{/* Generated by cmd/driga-docgen. Do not edit by hand; run `just docs` to regenerate. */} + +Watch AI coding agent sessions across your machines and projects. + +This page is generated from the command tree that `driga --help` prints, so it +matches the binary built from the same commit. Run `driga --help` for +the same text in a terminal. + +Running `driga` with no command runs `driga summary`. + +Exit codes: `0` success; `1` failure, refusal or partial completion; `2` invalid +usage or missing required non-interactive input. A command that needs +confirmation exits `2` when stdin is not a terminal unless `--yes` is passed. + +## Global flags + +| Flag | Default | Description | +|---|---|---| +| `-h, --help` | | Show context-sensitive help. | +| `--version` | | Print the driga version. | + +## Commands + +| Command | Description | +|---|---| +| [`driga summary`](#driga-summary) | Show a one-screen summary. Bare driga opens top in a terminal. | +| [`driga flow`](#driga-flow) | Show a session family and its state signals. | +| [`driga agents`](#driga-agents) | List agents grouped by family. | +| [`driga projects`](#driga-projects) | List project status. | +| [`driga inbox`](#driga-inbox) | List attention and completion events. | +| [`driga orphans`](#driga-orphans) | List orphan process trees. | +| [`driga machines`](#driga-machines) | List known machines and their connection health. | +| [`driga cleanup`](#driga-cleanup) | Inspect and explicitly clean local agent disk candidates. | +| [`driga top`](#driga-top) | Open the interactive session viewer. | +| [`driga web`](#driga-web) | Serve the interactive browser dashboard on loopback. | +| [`driga ask`](#driga-ask) | Ask a one-shot Chat question through Claude and driga's read-only tools. | +| [`driga mcp`](#driga-mcp) | Serve read-only MCP tools over stdio. | +| [`driga doctor`](#driga-doctor) | Check setup and collection health. | +| [`driga init`](#driga-init) | Guide optional setup. | +| [`driga config`](#driga-config) | Inspect or edit configuration. | +| [`driga collect`](#driga-collect) | Run the collector (what launchd runs). | +| [`driga service`](#driga-service) | Manage the collector service. | +| [`driga hooks`](#driga-hooks) | Manage agent hooks. | +| [`driga fleet`](#driga-fleet) | Inspect fleet identity, serving status and viewers. | +| [`driga version`](#driga-version) | Print the driga version. | + +## driga summary + +Show a one-screen summary. Bare driga opens top in a terminal. + +```sh +driga summary [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | + +## driga flow + +Show a session family and its state signals. + +```sh +driga flow [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | | Internal session ID (defaults to most recently active live interactive session). | + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | +| `--minutes=` | `60` | Time window: 15, 60 or 240 minutes. | + +## driga agents + +List agents grouped by family. + +Without a subcommand, runs `driga agents list`. + +| Subcommand | Description | +|---|---| +| [`driga agents list`](#driga-agents-list) | List agents grouped by family. | +| [`driga agents show`](#driga-agents-show) | Show one session by session ID. | +| [`driga agents jump`](#driga-agents-jump) | Confirm and jump to a local session. | +| [`driga agents kill`](#driga-agents-kill) | Confirm and terminate a local idle session. | + +### driga agents list + +List agents grouped by family. + +```sh +driga agents list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | +| `--all` | | Include sessions ended within the last 24 hours. | + +### driga agents show + +Show one session by session ID. + +```sh +driga agents show [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Internal session ID. | + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | + +### driga agents jump + +Confirm and jump to a local session. + +```sh +driga agents jump [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Internal session ID. | + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Jump without asking for confirmation. | + +### driga agents kill + +Confirm and terminate a local idle session. + +```sh +driga agents kill [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Internal session ID. | + +| Flag | Default | Description | +|---|---|---| +| `--force` | | Escalate survivors to SIGKILL (TerminateProcess on Windows); use --yes to skip confirmation. | +| `-y, --yes` | | Skip confirmation; identity and idle checks still apply. | + +## driga projects + +List project status. + +Without a subcommand, runs `driga projects list`. + +| Subcommand | Description | +|---|---| +| [`driga projects list`](#driga-projects-list) | List project status. | +| [`driga projects show`](#driga-projects-show) | Show project status, worktrees and sessions. | +| [`driga projects summarize`](#driga-projects-summarize) | Refresh opt-in local project summaries through Claude. | + +### driga projects list + +List project status. + +```sh +driga projects list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | +| `--at-risk` | | Only show projects with risk flags. | +| `--active` | | Only show active projects. | + +### driga projects show + +Show project status, worktrees and sessions. + +```sh +driga projects show [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Repository name or path. | + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | + +### driga projects summarize + +Refresh opt-in local project summaries through Claude. + +```sh +driga projects summarize [...] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[ ...]` | | Local project names or paths; requires names or --all. | + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | +| `--all` | | Summarize every collected local project. | + +## driga inbox + +List attention and completion events. + +Without a subcommand, runs `driga inbox list`. + +| Subcommand | Description | +|---|---| +| [`driga inbox list`](#driga-inbox-list) | List inbox events. | +| [`driga inbox ack`](#driga-inbox-ack) | Explicitly acknowledge inbox events. | +| [`driga inbox jump`](#driga-inbox-jump) | Jump to a local inbox item without acknowledging it. | + +### driga inbox list + +List inbox events. + +```sh +driga inbox list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | +| `--all` | | Show all history, including acknowledged and ended events (default: current waits and up to 50 completions from 24h). | + +### driga inbox ack + +Explicitly acknowledge inbox events. + +```sh +driga inbox ack [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | | Inbox item ID. | + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--all` | | Acknowledge every unacknowledged item. | + +### driga inbox jump + +Jump to a local inbox item without acknowledging it. + +```sh +driga inbox jump +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Inbox item ID. | + +## driga orphans + +List orphan process trees. + +Without a subcommand, runs `driga orphans list`. + +| Subcommand | Description | +|---|---| +| [`driga orphans list`](#driga-orphans-list) | List orphan candidates. | +| [`driga orphans kill`](#driga-orphans-kill) | Confirm and terminate an orphan tree. | + +### driga orphans list + +List orphan candidates. + +```sh +driga orphans list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--project=` | | Scope candidates to one project (path, name, or dot). | +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | + +### driga orphans kill + +Confirm and terminate an orphan tree. + +```sh +driga orphans kill [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | | Orphan candidate ID. | + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Select orphan candidates from this machine, local, or all. | +| `--snapshot` | | Collect one snapshot before selecting candidates. | +| `-y, --yes` | | Skip confirmation; identity and idle checks still apply. | +| `--all` | | Select all local orphan candidates; verify and confirm each unless --yes. | +| `--force` | | Escalate survivors to SIGKILL (TerminateProcess on Windows); confirmation is still required unless --yes. | + +## driga machines + +List known machines and their connection health. + +Without a subcommand, runs `driga machines list`. + +| Subcommand | Description | +|---|---| +| [`driga machines list`](#driga-machines-list) | List known machines and connection health. | +| [`driga machines show`](#driga-machines-show) | Show one machine (default: local). | +| [`driga machines reset-id`](#driga-machines-reset-id) | Regenerate the local machine identity. | + +### driga machines list + +List known machines and connection health. + +```sh +driga machines list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | + +### driga machines show + +Show one machine (default: local). + +```sh +driga machines show [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | `local` | Machine name, ID, device-ID prefix, or local. | + +| Flag | Default | Description | +|---|---|---| +| `--project=` | | Scope process detail to one project (path, name, or dot). | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--json` | | Print versioned JSON instead of tables. | +| `--no-color` | | Disable colors. | +| `--full` | | Show all retained MCP trends and full process detail. | + +### driga machines reset-id + +Regenerate the local machine identity. + +```sh +driga machines reset-id [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Apply without asking for confirmation. | + +## driga cleanup + +Inspect and explicitly clean local agent disk candidates. + +Without a subcommand, runs `driga cleanup list`. + +| Subcommand | Description | +|---|---| +| [`driga cleanup list`](#driga-cleanup-list) | List local disk cleanup candidates. | +| [`driga cleanup remove`](#driga-cleanup-remove) | Verify and remove selected local disk candidates. | + +### driga cleanup list + +List local disk cleanup candidates. + +```sh +driga cleanup list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | +| `--kind=` | | Filter by worktree, scratch, or history. | +| `--sizes` | | Walk candidate sizes on demand. | +| `--why` | | Include worktrees that do not qualify, with reasons. | + +### driga cleanup remove + +Verify and remove selected local disk candidates. + +```sh +driga cleanup remove [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | | Candidate ID to clean after confirmation. | + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | +| `--kind=` | | Filter by worktree or scratch (required with --all); history is report-only. | +| `--sizes` | | Walk candidate sizes on demand (30s cap per walk). | +| `--all` | | Remove ready candidates of --kind; skip candidates needing review and report failures. | +| `--dry-run` | | Print exact commands after verification without removing anything. | +| `-y, --yes` | | Confirm the displayed action without prompting. | +| `--include-ignored` | | Allow listed non-regenerable ignored files for one explicit ID. | + +## driga top + +Open the interactive session viewer. + +```sh +driga top [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--no-color` | | Disable colors. | +| `--theme=` | | TUI theme: system, light or dark (overrides ui.theme). | +| `--tab=` | `flow` | Initial tab: flow, projects or machines. | + +## driga web + +Serve the interactive browser dashboard on loopback. + +```sh +driga web [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--since=` | | Only show items since a duration ago or yesterday. | +| `--snapshot` | | Force one-shot snapshot collection without history. | +| `--listen=` | `127.0.0.1:0` | Loopback address and port for the dashboard. | +| `--open` | | Open the dashboard in your browser. | + +## driga ask + +Ask a one-shot Chat question through Claude and driga's read-only tools. + +```sh +driga ask ... [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| ` ...` | | One-shot Chat question using Claude and driga's read-only tools. | + +| Flag | Default | Description | +|---|---|---| +| `--machine=` | `all` | Scope to a machine name, ID, device-ID prefix, local, or all. | +| `--project=` | | Scope to one project (path, name, or dot). | +| `--json` | | Print versioned JSON instead of tables. | + +## driga mcp + +Serve read-only MCP tools over stdio. + +```text +Read-only MCP server on stdio. Reading never acknowledges inbox items; snapshot mode has no history. + +Claude Code: claude mcp add --scope user driga -- driga mcp + +Codex configuration: +[mcp_servers.driga] +command = "driga" +args = ["mcp"] +``` + +```sh +driga mcp [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--snapshot` | | Force one-shot snapshot collection for read tools (no history). | + +## driga doctor + +Check setup and collection health. + +```sh +driga doctor [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | + +## driga init + +Guide optional setup. + +```sh +driga init [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Accept each optional setup change without asking. | + +## driga config + +Inspect or edit configuration. + +| Subcommand | Description | +|---|---| +| [`driga config path`](#driga-config-path) | Print the config path. | +| [`driga config show`](#driga-config-show) | Print effective values including defaults. | +| [`driga config edit`](#driga-config-edit) | Edit the config with $EDITOR (default vi). | + +### driga config path + +Print the config path. + +```sh +driga config path [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | + +### driga config show + +Print effective values including defaults. + +```sh +driga config show +``` + +### driga config edit + +Edit the config with $EDITOR (default vi). + +```sh +driga config edit +``` + +## driga collect + +Run the collector (what launchd runs). + +```sh +driga collect [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--serve` | | Enable fleet serving alongside collection (overrides fleet.serve). | +| `--listen=` | | Fleet private IP or interface and port (requires serving). | +| `--once` | | Collect once into the persistent database and exit. | +| `--cpu-profile=` | | Write a CPU profile of the collector to this file. | +| `--profile-for=` | `2m` | How long --cpu-profile records before it stops. | + +## driga service + +Manage the collector service. + +| Subcommand | Description | +|---|---| +| [`driga service install`](#driga-service-install) | Install and start the collector service. | +| [`driga service start`](#driga-service-start) | Start the collector service. | +| [`driga service stop`](#driga-service-stop) | Stop the collector service. | +| [`driga service restart`](#driga-service-restart) | Restart the collector service. | +| [`driga service status`](#driga-service-status) | Show collector service status. | +| [`driga service logs`](#driga-service-logs) | Print collector logs. | +| [`driga service uninstall`](#driga-service-uninstall) | Uninstall the collector service. | + +### driga service install + +Install and start the collector service. + +```sh +driga service install +``` + +### driga service start + +Start the collector service. + +```sh +driga service start +``` + +### driga service stop + +Stop the collector service. + +```sh +driga service stop +``` + +### driga service restart + +Restart the collector service. + +```sh +driga service restart +``` + +### driga service status + +Show collector service status. + +```sh +driga service status +``` + +### driga service logs + +Print collector logs. + +```sh +driga service logs [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `-f, --follow` | | Follow collector log output. | + +### driga service uninstall + +Uninstall the collector service. + +```sh +driga service uninstall +``` + +## driga hooks + +Manage agent hooks. + +| Subcommand | Description | +|---|---| +| [`driga hooks install`](#driga-hooks-install) | Preview and install agent hooks. | +| [`driga hooks uninstall`](#driga-hooks-uninstall) | Preview and remove Driga's agent hooks. | +| [`driga hooks status`](#driga-hooks-status) | Show installed agent hooks. | + +### driga hooks install + +Preview and install agent hooks. + +```sh +driga hooks install [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | `all` | Adapter: claude, codex, copilot, or all. | + +| Flag | Default | Description | +|---|---|---| +| `--dry-run` | | Print the diff without writing or prompting. | +| `-y, --yes` | | Apply without asking for confirmation. | +| `--otlp` | | Configure optional metadata-only loopback OTLP instead of hooks. | +| `--traces` | | Include Claude beta spans (requires --otlp). | + +### driga hooks uninstall + +Preview and remove Driga's agent hooks. + +```sh +driga hooks uninstall [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | `all` | Adapter: claude, codex, copilot, or all. | + +| Flag | Default | Description | +|---|---|---| +| `--dry-run` | | Print the diff without writing or prompting. | +| `-y, --yes` | | Apply without asking for confirmation. | +| `--otlp` | | Configure optional metadata-only loopback OTLP instead of hooks. | +| `--traces` | | Include Claude beta spans (requires --otlp). | + +### driga hooks status + +Show installed agent hooks. + +```sh +driga hooks status [] [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `[]` | `all` | Adapter: claude, codex, copilot, or all. | + +| Flag | Default | Description | +|---|---|---| +| `--otlp` | | Show optional loopback OTLP status. | + +## driga fleet + +Inspect fleet identity, serving status and viewers. + +| Subcommand | Description | +|---|---| +| [`driga fleet peers`](#driga-fleet-peers) | List paired machines. | +| [`driga fleet viewers`](#driga-fleet-viewers) | List identities trusted to read this machine. | +| [`driga fleet enroll`](#driga-fleet-enroll) | Open a bounded pairing window. | +| [`driga fleet rekey`](#driga-fleet-rekey) | Regenerate identity; invalidate all pairings. | +| [`driga fleet id`](#driga-fleet-id) | Print this machine's fleet device ID. | +| [`driga fleet status`](#driga-fleet-status) | Show the serving collector's live state. | + +### driga fleet peers + +List paired machines. + +| Subcommand | Description | +|---|---| +| [`driga fleet peers list`](#driga-fleet-peers-list) | List paired machines. | +| [`driga fleet peers add`](#driga-fleet-peers-add) | Pair with a serving machine. | +| [`driga fleet peers remove`](#driga-fleet-peers-remove) | Remove a peer locally. | + +#### driga fleet peers list + +List paired machines. + +```sh +driga fleet peers list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | + +#### driga fleet peers add + +Pair with a serving machine. + +```sh +driga fleet peers add [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Peer host[:port] (default port 7411). | + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Skip confirmation only with --device-id identity pinning. | +| `--json` | | Print versioned JSON instead of tables. | +| `--name=` | | Local name for the peer. | +| `--device-id=` | | Require this peer device ID (headless). | + +#### driga fleet peers remove + +Remove a peer locally. + +```sh +driga fleet peers remove [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Peer name, device ID or machine ID (removed peers with --purge). | + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Apply without asking for confirmation. | +| `--purge` | | Delete this peer's cached rows. | + +### driga fleet viewers + +List identities trusted to read this machine. + +| Subcommand | Description | +|---|---| +| [`driga fleet viewers list`](#driga-fleet-viewers-list) | List identities trusted to read this machine. | +| [`driga fleet viewers revoke`](#driga-fleet-viewers-revoke) | Revoke a viewer immediately. | + +#### driga fleet viewers list + +List identities trusted to read this machine. + +```sh +driga fleet viewers list [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | + +#### driga fleet viewers revoke + +Revoke a viewer immediately. + +```sh +driga fleet viewers revoke [flags] +``` + +| Argument | Default | Description | +|---|---|---| +| `` | | Viewer name or device ID. | + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Apply without asking for confirmation. | + +### driga fleet enroll + +Open a bounded pairing window. + +```sh +driga fleet enroll [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Skip confirmation only with --allow-viewer identity pinning. | +| `--allow-ack` | | Allow this viewer to acknowledge inbox items. | +| `--allow-viewer=` | | Pre-authorize exactly this viewer device ID (headless). | +| `--window=` | | Enrollment duration (default fleet.enroll_window, at most 10m). | + +### driga fleet rekey + +Regenerate identity; invalidate all pairings. + +```sh +driga fleet rekey [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `-y, --yes` | | Apply without asking for confirmation. | + +### driga fleet id + +Print this machine's fleet device ID. + +```sh +driga fleet id [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | + +### driga fleet status + +Show the serving collector's live state. + +```sh +driga fleet status [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | + +## driga version + +Print the driga version. + +```sh +driga version [flags] +``` + +| Flag | Default | Description | +|---|---|---| +| `--json` | | Print versioned JSON instead of tables. | diff --git a/site/src/content/docs/reference/hooks.mdx b/site/src/content/docs/reference/hooks.mdx new file mode 100644 index 00000000..a603944a --- /dev/null +++ b/site/src/content/docs/reference/hooks.mdx @@ -0,0 +1,77 @@ +--- +title: "Hooks" +description: "Which agent hook events `driga hooks install` writes for Claude Code, Codex and Copilot, with timeouts." +summary: "The hook events driga installs per agent and their timeouts, generated by running each installer in dry-run mode." +read_when: + - "You want to know exactly what `driga hooks install` adds to an agent's configuration." + - "You are reviewing a hooks diff before accepting it." +generated: true +--- + +{/* Generated by cmd/driga-docgen. Do not edit by hand; run `just docs` to regenerate. */} + +Hooks are optional. Without them Driga still reads session files and the +process table; hooks add lifecycle and attention events, Claude prompt +answering and Copilot session state. Every install shows a unified diff and asks before +writing, backs up edited files to `*.driga-bak-`, and uninstall +removes only Driga's own entries. A hook always exits successfully and +prints nothing, so a failing hook never blocks the agent. + +Each hook runs `driga hook `. The tables below are produced +by running each installer against an empty configuration, so they list what +the installer writes. + +```sh +driga hooks install --dry-run # preview every adapter +driga hooks install claude # or codex, copilot, all +driga hooks status +driga hooks uninstall +``` + +## Claude Code + +`PermissionRequest` lets Driga answer permission prompts; its long timeout keeps the prompt open while you decide. The other events record lifecycle and attention. + +Written to `~/.claude/settings.json` (or under `CLAUDE_CONFIG_DIR`), appended beside existing hooks. + +| Event | Timeout | +|---|---| +| `Notification` | agent default | +| `PermissionRequest` | 660 s | +| `SessionEnd` | agent default | +| `SessionStart` | agent default | +| `Stop` | agent default | + +## Codex + +Codex reports permission requests to Driga. Driga does not answer Codex prompts. + +Written to a marked block in `~/.codex/config.toml` (or `$CODEX_HOME/config.toml`), preserving comments and existing `notify` settings. + +| Event | Timeout | +|---|---| +| `PermissionRequest` | 3 s | + +## GitHub Copilot CLI + +Copilot session state comes only from hooks and the process table. Restart running Copilot sessions after installing or removing hooks. + +Written to Driga's own file, `~/.copilot/hooks/driga.json` (or under `COPILOT_HOME`); uninstall deletes only that file. + +| Event | Timeout | +|---|---| +| `agentStop` | 3 s | +| `errorOccurred` | 3 s | +| `notification` | 3 s | +| `postToolUse` | 3 s | +| `postToolUseFailure` | 3 s | +| `sessionEnd` | 3 s | +| `sessionStart` | 3 s | +| `subagentStart` | 3 s | +| `subagentStop` | 3 s | +| `userPromptSubmitted` | 3 s | + +## Gemini CLI + +Driga installs no Gemini hooks. Gemini sessions are read from their chat +transcripts. diff --git a/site/src/content/docs/reference/mcp-tools.mdx b/site/src/content/docs/reference/mcp-tools.mdx new file mode 100644 index 00000000..83cdfcf3 --- /dev/null +++ b/site/src/content/docs/reference/mcp-tools.mdx @@ -0,0 +1,265 @@ +--- +title: "MCP tools" +description: "Every tool driga's MCP server exposes, with its inputs, generated from the server's tools/list answer." +summary: "The 14 read-only tools `driga mcp` serves to your agents and the 8 tools only Driga's own Chat receives, with their inputs." +read_when: + - "You are connecting an agent to driga over MCP and want to know what it can call." + - "You need a tool's exact input fields, defaults or limits." +generated: true +--- + +{/* Generated by cmd/driga-docgen. Do not edit by hand; run `just docs` to regenerate. */} + +`driga mcp` serves read-only tools over stdio. Every response is the same +schema-2 view envelope as the CLI's `--json` output, and reading never +acknowledges inbox items. Without a running collector the tools answer from a +labelled one-shot snapshot with no history. Registration is covered in +[Connect an agent over MCP](/guides/mcp). + +Every read tool shares this contract: + +> Use this to inspect collected state without changing it; safe to retry. Optional scope fields select machine (default all) and project where supported; for example \{"limit":100\}. Returns a schema-2 envelope with data, UTC observed_at, source freshness and coverage gaps; mode: "snapshot" means no history. limit bounds total array entries, including nested collections (default 100, maximum 500). truncated=true means entries were omitted: narrow the scope or increase limit. Reading never acknowledges inbox items. + +## Read tools + +Served by `driga mcp`. All 14 are annotated read-only. + +| Tool | Read-only | +|---|---| +| [`get_activity`](#get_activity) | yes | +| [`get_agent`](#get_agent) | yes | +| [`get_flow`](#get_flow) | yes | +| [`get_machine`](#get_machine) | yes | +| [`get_summary`](#get_summary) | yes | +| [`inspect_project`](#inspect_project) | yes | +| [`inspect_setup`](#inspect_setup) | yes | +| [`list_agents`](#list_agents) | yes | +| [`list_cleanup_candidates`](#list_cleanup_candidates) | yes | +| [`list_conflicts`](#list_conflicts) | yes | +| [`list_inbox`](#list_inbox) | yes | +| [`list_machines`](#list_machines) | yes | +| [`list_orphans`](#list_orphans) | yes | +| [`list_projects`](#list_projects) | yes | + +### get_activity + +Read the last sixty minutes of machine samples and event counts. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all (default all). | + +### get_agent + +Read one session's detail and recent evidence; use required id from list_agents, e.g. id=1. + +| Input | Type | Required | Description | +|---|---|---|---| +| `id` | integer | yes | Internal session ID shown by driga agents. Minimum 1. | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all. | + +### get_flow + +Inspect one session family map: per-node stored mixer, events, inbox wait spans, observations, retention, gaps and machine-wide waiting attention. Optional id from list_agents selects its lead; omit for the newest live interactive session. Missing telemetry measurements are omitted; usage covers retained api_request events only. + +| Input | Type | Required | Description | +|---|---|---|---| +| `id` | integer | | Minimum 1. | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | | +| `minutes` | integer | | Time window: 15, 60 or 240 minutes; default 60. | +| `project` | string | | | + +### get_machine + +Read agents' share of machine memory and CPU, cost by session, agent processes without a session, likely agent work, other apps, MCP server roll-ups and pile-ups. Defaults to bounded detail and 24h trends; full includes all retained evidence. + +| Input | Type | Required | Description | +|---|---|---|---| +| `full` | boolean | | | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | | + +### get_summary + +Read agent counts, inbox counts, and machine health. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all (default all). | + +### inspect_project + +Read a project's sourced status, worktrees, and handoffs; required project is a name or path, e.g. project=api. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `project` | string | yes | Project name or path. Must not be empty. | + +### inspect_setup + +Read setup and collection diagnostics. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | + +### list_agents + +Read agent sessions and their families. + +| Input | Type | Required | Description | +|---|---|---|---| +| `all` | boolean | | Include sessions ended in the last 24 hours. | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all. | +| `project` | string | | Project name, path, or dot for the local working directory. | + +### list_cleanup_candidates + +Inspect local disk cleanup candidates read-only. Optional kind is worktree, scratch, or history (omit for all); sizes=true opts into bounded directory sizing. This tool never removes anything. + +| Input | Type | Required | Description | +|---|---|---|---| +| `kind` | string | | One of `worktree`, `scratch`, `history`. | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `sizes` | boolean | | | + +### list_conflicts + +Read current and recent file overlaps. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all. | +| `project` | string | | Project name, path, or dot for the local working directory. | + +### list_inbox + +Read attention and completion events. + +| Input | Type | Required | Description | +|---|---|---|---| +| `all` | boolean | | Include acknowledged events. | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all. | +| `project` | string | | Project name, path, or dot for the local working directory. | +| `since` | string | | Non-negative duration or yesterday. | + +### list_machines + +Read cached fleet connection health, even when collection has stopped. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | + +### list_orphans + +Read orphan process candidates without signaling processes. + +| Input | Type | Required | Description | +|---|---|---|---| +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all (default all). | + +### list_projects + +Read project activity and risk flags. + +| Input | Type | Required | Description | +|---|---|---|---| +| `active` | boolean | | Only active projects. | +| `at_risk` | boolean | | Only projects with risk flags. | +| `limit` | integer | | Maximum total array entries, including nested collections; 1–500, default 100. | +| `machine` | string | | Machine name, ID, device-ID prefix, local, or all. | + +## Chat tools + +Offered only to Driga's own Chat turn through a private MCP child, never by +`driga mcp`. Action tools run through Chat's approval cards and trust modes; +see [Chat and actions](/guides/chat). + +| Tool | Read-only | +|---|---| +| [`ack_inbox`](#ack_inbox) | no | +| [`answer_prompt`](#answer_prompt) | no | +| [`approve`](#approve) | no | +| [`cleanup`](#cleanup) | no | +| [`jump`](#jump) | no | +| [`kill`](#kill) | no | +| [`list_prompts`](#list_prompts) | yes | +| [`summarize`](#summarize) | no | + +### ack_inbox + +Acknowledge a local inbox id or all local items. + +| Input | Type | Required | Description | +|---|---|---|---| +| `all` | boolean | | | +| `id` | string | | | + +### answer_prompt + +Answer one pending local Claude permission prompt. Always asks in Auto. + +| Input | Type | Required | Description | +|---|---|---|---| +| `allow` | boolean | yes | | +| `id` | string | yes | | + +### approve + +Request driga permission for a tool. Cannot decide cards or change trust mode. + +| Input | Type | Required | Description | +|---|---|---|---| +| `input` | object | yes | | +| `tool_name` | string | yes | | +| `tool_use_id` | string | yes | | + +### cleanup + +Clean one local candidate after re-verification. + +| Input | Type | Required | Description | +|---|---|---|---| +| `id` | string | | | + +### jump + +Jump to a local session terminal. Never types into the terminal. + +| Input | Type | Required | Description | +|---|---|---|---| +| `session_id` | integer | | | + +### kill + +Kill a local agent session or orphan id after identity and idle verification. Force also escalates survivors. + +| Input | Type | Required | Description | +|---|---|---|---| +| `force` | boolean | | | +| `id` | string | | | +| `session_id` | integer | | | + +### list_prompts + +Read pending local Claude permission prompts. Inputs are visible only under snippets capture. + +No inputs. + +### summarize + +Refresh one local project summary. + +| Input | Type | Required | Description | +|---|---|---|---| +| `project` | string | | | diff --git a/site/src/content/docs/reference/settings.mdx b/site/src/content/docs/reference/settings.mdx new file mode 100644 index 00000000..cd2bbda7 --- /dev/null +++ b/site/src/content/docs/reference/settings.mdx @@ -0,0 +1,374 @@ +--- +title: "Settings reference" +description: "Every driga configuration key with its type, default, allowed values and DRIGA_* environment variable." +summary: "Every configuration key, its type, default, allowed values and environment variable, generated from the settings table that also writes .env.example." +read_when: + - "You want to change a default in config.toml or through the environment." + - "A DRIGA_* variable is rejected as unknown and you want the valid names." +generated: true +--- + +{/* Generated by cmd/driga-docgen. Do not edit by hand; run `just docs` to regenerate. */} + +Driga reads `config.toml` and the process environment. Precedence is explicit +flags, then environment, then the TOML file, then the defaults below. Empty +environment values count as unset, and dotenv files are never loaded. An +unknown `DRIGA_*` name is an error. Restart the collector after changing its +configuration; the CLI and hooks reload on every invocation. + +Find and edit the file with `driga config path`, `driga config show` and +`driga config edit`. List settings are file-only and have no environment +variable. + +## Summary + +| Key | Type | Default | Environment | +|---|---|---|---| +| [`motion`](#motion) | string | `on` | `DRIGA_MOTION` | +| [`roots`](#roots) | list | empty | file only | +| [`root_depth`](#root_depth) | int | `3` | `DRIGA_ROOT_DEPTH` | +| [`exclude`](#exclude) | list | `**/node_modules`, `**/.tmp/**` | file only | +| [`stalled_after`](#stalled_after) | duration | `10m` | `DRIGA_STALLED_AFTER` | +| [`orphan_min_age`](#orphan_min_age) | duration | `10m` | `DRIGA_ORPHAN_MIN_AGE` | +| [`capture_text`](#capture_text) | string | `titles` | `DRIGA_CAPTURE_TEXT` | +| [`open_cmd`](#open_cmd) | string | empty | `DRIGA_OPEN_CMD` | +| [`no_service_hint`](#no_service_hint) | bool | `false` | `DRIGA_NO_SERVICE_HINT` | +| [`ui.theme`](#uitheme) | string | `system` | `DRIGA_UI_THEME` | +| [`adapters.claude.enabled`](#adaptersclaudeenabled) | bool | `true` | `DRIGA_ADAPTERS_CLAUDE_ENABLED` | +| [`adapters.codex.enabled`](#adapterscodexenabled) | bool | `true` | `DRIGA_ADAPTERS_CODEX_ENABLED` | +| [`adapters.gemini.enabled`](#adaptersgeminienabled) | bool | `true` | `DRIGA_ADAPTERS_GEMINI_ENABLED` | +| [`adapters.copilot.enabled`](#adapterscopilotenabled) | bool | `true` | `DRIGA_ADAPTERS_COPILOT_ENABLED` | +| [`orphans.extra_signatures`](#orphansextra_signatures) | list | empty | file only | +| [`machine.disk_free_min`](#machinedisk_free_min) | size | `0` | `DRIGA_MACHINE_DISK_FREE_MIN` | +| [`summaries.enabled`](#summariesenabled) | bool | `false` | `DRIGA_SUMMARIES_ENABLED` | +| [`summaries.model`](#summariesmodel) | string | `haiku` | `DRIGA_SUMMARIES_MODEL` | +| [`cleanup.worktree_idle`](#cleanupworktree_idle) | duration | `168h` | `DRIGA_CLEANUP_WORKTREE_IDLE` | +| [`cleanup.regenerable`](#cleanupregenerable) | list | `node_modules/`, `target/`, `.venv/`, `venv/`, `dist/`, `build/`, `.next/`, `__pycache__/`, `.gradle/`, `.terraform/` | file only | +| [`fleet.serve`](#fleetserve) | bool | `false` | `DRIGA_FLEET_SERVE` | +| [`fleet.listen`](#fleetlisten) | string | empty | `DRIGA_FLEET_LISTEN` | +| [`fleet.share_text`](#fleetshare_text) | string | `titles` | `DRIGA_FLEET_SHARE_TEXT` | +| [`fleet.enroll_window`](#fleetenroll_window) | duration | `10m` | `DRIGA_FLEET_ENROLL_WINDOW` | +| [`fleet.allow_any_address`](#fleetallow_any_address) | bool | `false` | `DRIGA_FLEET_ALLOW_ANY_ADDRESS` | +| [`inbox.alerts`](#inboxalerts) | string | `waiting` | `DRIGA_INBOX_ALERTS` | +| [`inbox.alert_after`](#inboxalert_after) | duration | `0s` | `DRIGA_INBOX_ALERT_AFTER` | +| [`inbox.alert_repeat`](#inboxalert_repeat) | duration | `5m` | `DRIGA_INBOX_ALERT_REPEAT` | +| [`inbox.jump_terminal`](#inboxjump_terminal) | bool | `false` | `DRIGA_INBOX_JUMP_TERMINAL` | +| [`intake.otlp`](#intakeotlp) | bool | `false` | `DRIGA_INTAKE_OTLP` | +| [`intake.listen`](#intakelisten) | string | `127.0.0.1:7418` | `DRIGA_INTAKE_LISTEN` | + +## General + +Top-level keys of `config.toml`. + +### motion + +Event-bound motion in the terminal Flow map. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `on` | on or off | `DRIGA_MOTION` | + +### roots + +Additional repository discovery roots; ~ expands to HOME. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| list | empty | file-only; empty = session working directories only | file only | + +### root_depth + +Repository discovery depth. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| int | `3` | 0..max int; zero = roots only | `DRIGA_ROOT_DEPTH` | + +### exclude + +Repository discovery exclusions. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| list | `**/node_modules`, `**/.tmp/**` | file-only; empty = no exclusions | file only | + +### stalled_after + +Quiet busy-session threshold. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| duration | `10m` | 0..2562047h47m16.854775807s; zero = default 10m | `DRIGA_STALLED_AFTER` | + +### orphan_min_age + +Minimum orphan candidate age. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| duration | `10m` | 0..2562047h47m16.854775807s; zero = no age minimum | `DRIGA_ORPHAN_MIN_AGE` | + +### capture_text + +Local text capture policy. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `titles` | titles or snippets | `DRIGA_CAPTURE_TEXT` | + +### open_cmd + +Editor command; \{cwd\} is substituted. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | empty | empty = auto-detect | `DRIGA_OPEN_CMD` | + +### no_service_hint + +Suppress optional service hints. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `false` | true or false | `DRIGA_NO_SERVICE_HINT` | + +## Terminal UI + +The `[ui]` table. + +### ui.theme + +Palette for the whole terminal UI: light, dark, or system to follow the terminal. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `system` | system, light or dark | `DRIGA_UI_THEME` | + +## Agent adapters + +One `[adapters.]` table per agent. + +### adapters.claude.enabled + +Enable Claude session discovery. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `true` | true or false | `DRIGA_ADAPTERS_CLAUDE_ENABLED` | + +### adapters.codex.enabled + +Enable Codex session discovery. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `true` | true or false | `DRIGA_ADAPTERS_CODEX_ENABLED` | + +### adapters.gemini.enabled + +Enable Gemini session discovery. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `true` | true or false | `DRIGA_ADAPTERS_GEMINI_ENABLED` | + +### adapters.copilot.enabled + +Enable Copilot hook and process discovery. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `true` | true or false | `DRIGA_ADAPTERS_COPILOT_ENABLED` | + +## Orphans + +The `[orphans]` table. + +### orphans.extra_signatures + +Additional signature files; ~ expands to HOME. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| list | empty | file-only; empty = built-in signatures | file only | + +## Machine health + +The `[machine]` table. + +### machine.disk_free_min + +Low disk free-space limit. Zero uses the smaller of 10% of the volume or 20 GB (decimal). Replaces cleanup.low_disk_\* warning thresholds. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| size | `0` | 0..18446744073709551615 bytes; optional KiB/MiB/GiB suffix; zero = automatic | `DRIGA_MACHINE_DISK_FREE_MIN` | + +## Summaries + +The `[summaries]` table. Summaries run your installed Claude CLI on demand. + +### summaries.enabled + +Enable optional local Claude summaries. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `false` | true or false | `DRIGA_SUMMARIES_ENABLED` | + +### summaries.model + +Model selection passed to the Claude CLI. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `haiku` | nonempty | `DRIGA_SUMMARIES_MODEL` | + +## Cleanup + +The `[cleanup]` table. + +### cleanup.worktree_idle + +Idle worktree cleanup eligibility. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| duration | `168h` | 0..2562047h47m16.854775807s; zero = no idle minimum | `DRIGA_CLEANUP_WORKTREE_IDLE` | + +### cleanup.regenerable + +Additional regenerable relative directories (merged with defaults). + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| list | `node_modules/`, `target/`, `.venv/`, `venv/`, `dist/`, `build/`, `.next/`, `__pycache__/`, `.gradle/`, `.terraform/` | file-only; empty = built-in directories | file only | + +## Fleet + +The `[fleet]` table for paired machines. + +### fleet.serve + +Enable optional fleet serving. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `false` | true or false; requires fleet.listen | `DRIGA_FLEET_SERVE` | + +### fleet.listen + +Fleet TCP listener address. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | empty | required with fleet.serve; explicit private IP/interface, public addresses require allow_any_address | `DRIGA_FLEET_LISTEN` | + +### fleet.share_text + +Fleet export text policy, bounded by local capture policy. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `titles` | none, titles or snippets | `DRIGA_FLEET_SHARE_TEXT` | + +### fleet.enroll_window + +Fleet enrollment duration. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| duration | `10m` | 1ns..10m; zero rejected | `DRIGA_FLEET_ENROLL_WINDOW` | + +### fleet.allow_any_address + +Permit explicit non-loopback fleet listener. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `false` | true or false | `DRIGA_FLEET_ALLOW_ANY_ADDRESS` | + +## Inbox and alerts + +The `[inbox]` table. + +### inbox.alerts + +Desktop alerts for attention and optionally completions. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `waiting` | waiting, all or off | `DRIGA_INBOX_ALERTS` | + +### inbox.alert_after + +Alert only when a wait is still open this long after it began. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| duration | `0s` | 0..2562047h47m16.854775807s; zero = alert immediately | `DRIGA_INBOX_ALERT_AFTER` | + +### inbox.alert_repeat + +Minimum interval between alerts for one session. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| duration | `5m` | 0..2562047h47m16.854775807s; zero = no throttle | `DRIGA_INBOX_ALERT_REPEAT` | + +### inbox.jump_terminal + +Opt in to bringing a proven macOS terminal window to front. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `false` | true or false | `DRIGA_INBOX_JUMP_TERMINAL` | + +## OTLP intake + +The `[intake]` table for the optional loopback OTLP receiver. + +### intake.otlp + +Enable optional loopback OTLP/HTTP JSON intake. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| bool | `false` | true or false | `DRIGA_INTAKE_OTLP` | + +### intake.listen + +OTLP intake TCP listener address. + +| Type | Default | Allowed | Environment | +|---|---|---|---| +| string | `127.0.0.1:7418` | loopback IP and port 0..65535; zero = ephemeral port | `DRIGA_INTAKE_LISTEN` | + +## Path overrides + +Relative values resolve against the working directory at startup. + +| Variable | Default | Purpose | +|---|---|---| +| `DRIGA_CONFIG` | $XDG_CONFIG_HOME/driga/config.toml or ~/.config/driga/config.toml | Configuration file override. | +| `DRIGA_DATA_DIR` | Linux: $XDG_DATA_HOME/driga or ~/.local/share/driga; macOS: ~/Library/Application Support/driga | Database and fleet data directory override. | +| `DRIGA_SPOOL_DIR` | Linux: $XDG_STATE_HOME/driga/events or ~/.local/state/driga/events; macOS: ~/Library/Application Support/driga/events | Hook/ack spool directory override. | + +## Internal names + +Driga sets these for its own child processes and tests. They are accepted so +those processes start cleanly; they are not configuration. + +| Variable | Kind | Purpose | +|---|---|---| +| `DRIGA_CHAT_SOCKET` | path | Chat broker socket for the MCP child of one Chat turn. | +| `DRIGA_CHAT_CONVERSATION` | id | Chat conversation of the MCP child's turn. | +| `DRIGA_CHAT_TOKEN` | secret | Per-turn token tying the MCP child's approval requests to its turn. | +| `DRIGA_CHAT_READ_ONLY` | marker | 1 keeps the Chat MCP child read-only. | +| `DRIGA_INTERNAL` | marker | 1 suppresses recursive hooks from Driga-owned Claude subprocesses. | +| `DRIGA_FIXTURE_OUTPUT` | path | Fixture generator output directory (tests only). | +| `DRIGA_COLLECTOR_HEAP_CHILD` | marker | 1 selects isolated collector heap-test child. | +| `DRIGA_FLEET_HEAP_CHILD` | marker | 1 selects isolated fleet heap-test child. | +| `DRIGA_OTLP_TRACES_ADDED` | marker | 1 records enhanced telemetry installed by Driga in Claude settings. | +| `DRIGA_JSON_WATCH_CHILD` | marker | 1 selects isolated NDJSON watch-test child. | +| `DRIGA_TEST_MCP_PROCESS` | marker | 1 selects isolated MCP-test child. | diff --git a/site/src/content/docs/start/first-run.mdx b/site/src/content/docs/start/first-run.mdx new file mode 100644 index 00000000..393f92f1 --- /dev/null +++ b/site/src/content/docs/start/first-run.mdx @@ -0,0 +1,96 @@ +--- +title: First run +description: Run Driga without setup, then add the collector service and agent hooks for history, alerts and prompt answering. +summary: Snapshot mode with no setup, guided setup with driga init, the collector service, and installing agent hooks. +read_when: + - You just installed Driga and want to see your sessions. + - You want history, desktop alerts or permission prompt answering. +--- + +import { Steps } from "@astrojs/starlight/components"; + +## Look first, configure nothing + +```sh +driga # the terminal UI: Flow, Projects and Machines +driga web # the same views in your browser +driga summary # one-screen text summary +``` + +Without a collector, Driga takes a disposable snapshot and say +`snapshot · no history`. Nothing is written to a database. One agent in one +repository works without configuring roots or a service: session working +directories are enough to discover repositories. + +## Set it up properly + + + +1. **Run guided setup** (optional). Each step previews its change and asks: + + ```sh + driga init + ``` + + It covers repository roots, text capture, hooks and the service. You can do + each one by hand instead, as below. + +2. **Install the collector service** for history, the inbox and alerts: + + ```sh + driga service install + driga doctor + ``` + + The service is a per-user LaunchAgent on macOS, a systemd user service on + Linux and a Task Scheduler task on Windows. The first import marks older + events as already seen. + +3. **Install agent hooks** for attention events, Claude permission prompts and + Copilot sessions. Preview the diff first: + + ```sh + driga hooks install --dry-run + driga hooks install + driga hooks status + ``` + + Pass an adapter to limit the change: `claude`, `codex`, `copilot` or `all` + (the default). Restart running agent sessions afterwards. The exact events + are in the [hooks reference](/reference/hooks). + +4. **Open a view.** + + ```sh + driga top # terminal UI + driga web --open # browser dashboard on loopback + driga inbox --since yesterday + ``` + + + +Reading an inbox item never acknowledges it. Acknowledge with +`driga inbox ack ` or from the Activity section in Flow. + +## Service commands + +```sh +driga service status +driga service logs -f +driga service stop +driga service start +driga service restart +driga service uninstall +``` + +On macOS the label is `run.driga.collector` and logs are at +`~/Library/Logs/driga/collector.log`. On Linux, `driga service logs -f` wraps +`journalctl --user -u run.driga.collector`. + +## Undo + +`driga hooks uninstall` removes only Driga's entries, and +`driga service uninstall` removes the service. Your agent configuration is +changed only by these explicit commands. + +Next: [Flow](/guides/flow). diff --git a/site/src/content/docs/start/install.mdx b/site/src/content/docs/start/install.mdx new file mode 100644 index 00000000..5ab94f84 --- /dev/null +++ b/site/src/content/docs/start/install.mdx @@ -0,0 +1,93 @@ +--- +title: Install +description: Install Driga with Homebrew on macOS, packages on Linux, Scoop on Windows, or build it from source. +summary: Homebrew cask on macOS, .deb/.rpm and archives on Linux, Scoop on Windows (experimental), and source builds. +read_when: + - You are installing Driga for the first time. + - You are upgrading from a bare-binary release on macOS. +--- + +import { Tabs, TabItem } from "@astrojs/starlight/components"; + + + + +Install the signed and notarized release with Homebrew: + +```sh +brew install --cask labstack/tap/driga +``` + +Homebrew keeps the background-only `Driga.app` in Caskroom and links `driga` +to the CLI inside it. The app has no Dock icon; it gives the collector its name +and icon in System Settings and is required for +[desktop notifications](/guides/notifications). + +Upgrading from a bare-binary release: if you use the collector, run +`driga service install` once to repair the service path. After that, +`brew upgrade` keeps the path stable; run `driga service restart` to pick up +the new version. `driga doctor` warns about a stale service path. + + + + +Debian `.deb` and RPM `.rpm` packages, plus `tar.gz` archives for amd64 and +arm64, are on [GitHub Releases](https://github.com/labstack/driga/releases). +Verify each download against `driga__checksums.txt` before +installing. + +The collector runs as a systemd user service. On a VM or server, allow it to +run after logout: + +```sh +loginctl enable-linger "$USER" +``` + +Without systemd, run `driga collect` under tmux or nohup instead. + + + + +Windows support is [experimental](/guides/windows). Install with Scoop: + +```powershell +scoop bucket add labstack https://github.com/labstack/scoop-bucket +scoop install labstack/driga +``` + +Archives containing `driga.exe` are also on +[GitHub Releases](https://github.com/labstack/driga/releases). Keep +`driga.exe` at a stable path without shell metacharacters before installing +hooks or the service. + + + + +Use the Go version in `go.mod` or newer: + +```sh +CGO_ENABLED=0 go build ./cmd/driga +./driga version +``` + +`go install ...@` does not work: CalVer tags use the year as their major +version, which Go module rules reject for this module path. Use a package, an +archive or a checkout. + + + + +## Before hooks or the service + +Keep Git on `PATH` and the installed binary at a stable absolute path. Hooks +and the collector service record that path; moving the binary afterwards breaks +them until you reinstall them. + +Check the install: + +```sh +driga version +driga doctor +``` + +Next: [First run](/start/first-run). diff --git a/site/src/content/docs/start/what-driga-is.mdx b/site/src/content/docs/start/what-driga-is.mdx new file mode 100644 index 00000000..96fa00d2 --- /dev/null +++ b/site/src/content/docs/start/what-driga-is.mdx @@ -0,0 +1,69 @@ +--- +title: What Driga is +description: A CLI, terminal UI and local web dashboard that shows what your AI coding agents are doing across projects and machines, and what needs you. +summary: The problem Driga solves, the agents it reads, its three views and its alpha status. +read_when: + - You are deciding whether Driga fits how you run coding agents. + - You want the vocabulary (session, family, Needs you, Flow) before the guides. +--- + +Driga watches AI coding agent sessions on your machine, and optionally on +machines you pair with it, and puts them in one place: what is running, what is +waiting for you, what finished, and what was left behind. + +It is one binary with several faces: + +- **Terminal UI** — `driga` (or `driga top`), with Flow, Projects and Machines tabs. +- **Web dashboard** — `driga web` serves the same views on loopback. +- **For scripts and agents** — `driga agents`, `driga inbox` and the other read + commands print one snapshot as a table or versioned JSON, actions confirm + before they change anything, and `driga mcp` serves read-only MCP tools. + +## What it reads + +| Agent | Evidence | +| --- | --- | +| Claude Code | Session history, optional hooks, optional OTLP telemetry | +| Codex | Session history and catalog (opened read-only), optional permission hook | +| Gemini CLI | Chat transcripts | +| GitHub Copilot CLI | Hooks and process observations | +| Antigravity (`agy`) | Process observations only | + +Driga also reads the process table, machine health (memory, CPU, pressure, +disk) and local Git state. Local Git commands never fetch. See +[How Driga observes sessions](/explanation/how-driga-observes). + +## The views + +**Flow** shows sessions as a map, a timeline or a list, grouped by project. A +*family* is a set of related sessions, such as a lead and the workers it +spawned. **Needs you** is the shelf of sessions waiting on you, oldest first, +including Claude permission prompts you can answer from Driga. + +**Projects** owns repository context: branches, worktrees, dirty state and file +overlaps between agents. **Machines** owns health and reclamation: memory and +CPU by session, orphaned helper processes, and disk that agents left behind. + +## Session labels + +| Label | Meaning | +| --- | --- | +| `working` | The agent is in a turn. | +| `waiting` | The agent needs you: an attention request or permission prompt. | +| `idle` | Alive, between turns. | +| `stalled?` | A busy session has been quiet longer than `stalled_after`; suspected, not proven. | +| `finished` | A completed turn you have not read, in a continuing session. | +| `ended` | The process exited with no open turn, a session-end hook arrived, or the conversation was replaced. | +| `dead` | An interrupted open turn or crash evidence. | +| `unknown` | The evidence cannot establish a state. | + +Evidence for each label is in the session detail (`driga agents show `). + +## Status + +Driga is **alpha**. Agent formats and behaviour can change, and unknown or +incomplete evidence is shown explicitly rather than guessed. macOS and Linux are +supported; Windows is [experimental](/guides/windows). Pre-release databases may +need a reset; `driga doctor` prints the command. + +Next: [Install](/start/install). diff --git a/site/src/data/media.json b/site/src/data/media.json new file mode 100644 index 00000000..a985efb2 --- /dev/null +++ b/site/src/data/media.json @@ -0,0 +1,34 @@ +{ + "flow-dark": { + "mp4": "https://assets.driga.dev/media/flow-dark-0b00f8dfe207.mp4", + "webm": "https://assets.driga.dev/media/flow-dark-d24c69474d4a.webm" + }, + "flow-light": { + "mp4": "https://assets.driga.dev/media/flow-light-086670b5d512.mp4", + "webm": "https://assets.driga.dev/media/flow-light-eaf66ba3616b.webm" + }, + "hero-dark": { + "mp4": "https://assets.driga.dev/media/hero-dark-0a087e618361.mp4", + "webm": "https://assets.driga.dev/media/hero-dark-413ba2a34570.webm" + }, + "hero-light": { + "mp4": "https://assets.driga.dev/media/hero-light-15b460ecc6b1.mp4", + "webm": "https://assets.driga.dev/media/hero-light-28447258c626.webm" + }, + "machines-dark": { + "mp4": "https://assets.driga.dev/media/machines-dark-3237d4b552e6.mp4", + "webm": "https://assets.driga.dev/media/machines-dark-ea34fa9126af.webm" + }, + "machines-light": { + "mp4": "https://assets.driga.dev/media/machines-light-4e11c88b5cb0.mp4", + "webm": "https://assets.driga.dev/media/machines-light-04154808997c.webm" + }, + "needs-dark": { + "mp4": "https://assets.driga.dev/media/needs-dark-037392b51f3f.mp4", + "webm": "https://assets.driga.dev/media/needs-dark-c6dc70a97353.webm" + }, + "needs-light": { + "mp4": "https://assets.driga.dev/media/needs-light-50fca1ee8d3c.mp4", + "webm": "https://assets.driga.dev/media/needs-light-e245faf869cc.webm" + } +} diff --git a/site/src/lib/markdown.ts b/site/src/lib/markdown.ts new file mode 100644 index 00000000..8dca8314 --- /dev/null +++ b/site/src/lib/markdown.ts @@ -0,0 +1,108 @@ +// Turn page source into Markdown an agent can read without knowing MDX. +// +// The pages are MDX, so their source carries three things that are noise to +// anything that is not Astro: ESM `import` lines, Starlight component tags, and +// the `:::` directive syntax. Serving that raw under `text/markdown` — which is +// what the alternates did — means `/start/install.md` opens with an import +// statement and ``, and the caution blocks that carry the shipped versus +// proposed distinction arrive as literal colons. +// +// The directives are converted rather than stripped, because their content is +// exactly the part an agent most needs: `:::caution[Not yet executable]` becomes +// a blockquote that still says so. +export function toPlainMarkdown(source: string): string { + const out: string[] = []; + + let inFence = false; + let inDirective = false; + let directiveIndent = ""; + + for (const line of source.split("\n")) { + const fence = line.trimStart().startsWith("```"); + const wasInFence = inFence; + if (fence) inFence = !inFence; + + // A fenced block inside a `:::` directive still belongs to that directive. + // Testing the post-toggle state skipped the directive branch for every line + // from the opening fence onward, so the code escaped the blockquote and + // split it in the .md alternate. No page does this today; install.mdx is + // one edit away from it. + if (inDirective && (wasInFence || inFence)) { + const content = line.startsWith(directiveIndent) + ? line.slice(directiveIndent.length) + : line; + out.push(content.trim() === "" ? `${directiveIndent}>` : `${directiveIndent}> ${content}`); + continue; + } + + if (!inFence) { + // ESM imports at the top of an MDX file. + if (/^import\s.+\sfrom\s+["'].+["'];?\s*$/.test(line)) continue; + + // The generator's own marker, and any other MDX comment. + if (/^\s*\{\/\*.*\*\/\}\s*$/.test(line)) continue; + + // `:::note[Title]` / `:::caution` open, `:::` close. + const open = line.match(/^(\s*):::(\w+)(?:\[(.+?)\])?\s*$/); + if (open) { + directiveIndent = open[1] ?? ""; + const kind = open[2] ?? "note"; + const title = open[3] ?? kind.charAt(0).toUpperCase() + kind.slice(1); + out.push(`${directiveIndent}> **${title}**`, `${directiveIndent}>`); + inDirective = true; + continue; + } + if (inDirective && line.trim() === ":::") { + inDirective = false; + directiveIndent = ""; + out.push(""); + continue; + } + if (inDirective) { + const content = line.startsWith(directiveIndent) + ? line.slice(directiveIndent.length) + : line; + out.push( + content.trim() === "" + ? `${directiveIndent}>` + : `${directiveIndent}> ${content}`, + ); + continue; + } + } + + out.push(line); + } + + return stripComponentTags(out.join("\n")); +} + +// Starlight components carry their text as children, so the tags are removed and +// the prose between them kept. Tab labels are retained because they provide the +// context for otherwise indistinguishable command blocks. The landing page's own +// components carry their heading in `title` and their command in `command`; +// those become a heading and a code line, so the alternate keeps them. Any other +// self-closing component carries nothing a reader needs and goes entirely. +function stripComponentTags(source: string): string { + const fences = source.split(/(```[\s\S]*?```)/g); + return fences + .map((chunk, index) => + // Odd indices are fenced code, which is left exactly as authored. + index % 2 === 1 + ? chunk + : chunk + .replace( + /]*\blabel=["']([^"']+)["'][^>]*>/g, + "\n**$1**\n", + ) + .replace(/<[A-Z]\w*\b[^>]*\bcommand=["']([^"']+)["'][^>]*\/>/g, "\n```sh\n$1\n```\n") + .replace(/<[A-Z]\w*\b[^>]*\btitle=["']([^"']+)["'][^>]*(?/g, (tag, title: string) => { + const command = tag.match(/\bcommand=["']([^"']+)["']/)?.[1]; + return `\n## ${title}\n` + (command ? `\n\`${command}\`\n` : ""); + }) + .replace(/<([A-Z]\w*)\b[^>]*\/>/g, "") + .replace(/<\/?([A-Z]\w*)\b[^>]*>/g, "") + .replace(/\n{3,}/g, "\n\n"), + ) + .join(""); +} diff --git a/site/src/lib/site-assets.ts b/site/src/lib/site-assets.ts new file mode 100644 index 00000000..b8f8941e --- /dev/null +++ b/site/src/lib/site-assets.ts @@ -0,0 +1,5 @@ +/** Absolute public asset URLs require the configured canonical site origin. */ +export function siteAssetURL(site: URL | undefined, path: string): string { + if (!site) throw new Error("Driga site URL is required"); + return new URL(path, site).href; +} diff --git a/site/src/pages/[...slug].md.ts b/site/src/pages/[...slug].md.ts new file mode 100644 index 00000000..03438a0f --- /dev/null +++ b/site/src/pages/[...slug].md.ts @@ -0,0 +1,55 @@ +import type { APIRoute, GetStaticPaths } from "astro"; +import { getCollection, type CollectionEntry } from "astro:content"; +import { toPlainMarkdown } from "../lib/markdown"; + +// Clean Markdown for every page, at `.md`. +// +// This is the same source the site renders, with the agent-facing frontmatter +// kept and the presentational frontmatter dropped. It exists so an agent never +// has to reconstruct prose from rendered HTML, and so what an agent reads and +// what a person reads cannot drift apart: there is one source. +export const getStaticPaths: GetStaticPaths = async () => { + const docs = await getCollection("docs"); + return docs.map((entry) => ({ + // The landing page's id is already "index", so no path needs inventing here; + // every page has a Markdown alternate at a real path. + params: { slug: entry.id }, + props: { entry }, + })); +}; + +export const GET: APIRoute = ({ props }) => { + const { entry } = props as { entry: CollectionEntry<"docs"> }; + const data = entry.data; + + const front: string[] = ["---", `title: ${JSON.stringify(data.title)}`]; + if (data.summary) front.push(`summary: ${JSON.stringify(data.summary)}`); + if (data.description && data.description !== data.summary) { + front.push(`description: ${JSON.stringify(data.description)}`); + } + if (data.generated) front.push("generated: true"); + if (data.read_when?.length) { + front.push("read_when:"); + for (const when of data.read_when) front.push(` - ${JSON.stringify(when)}`); + } + front.push("---", ""); + + // A body that failed to load would otherwise be served as a valid 200 with + // frontmatter and nothing else, which an agent cannot tell from a short page. + // The landing page's headline and tagline live in its hero frontmatter. + const hero = data.hero?.tagline ? `${data.hero.tagline}\n\n` : ""; + const body = hero + toPlainMarkdown(entry.body ?? ""); + if (!body.trim()) { + throw new Error( + `${entry.id || "index"} has no body: its .md alternate would serve frontmatter only`, + ); + } + + if (entry.id === "index" && !body.includes("brew install --cask labstack/tap/driga")) { + throw new Error("index.md lost the install command"); + } + + return new Response(front.join("\n") + body, { + headers: { "Content-Type": "text/markdown; charset=utf-8" }, + }); +}; diff --git a/site/src/pages/llms-full.txt.ts b/site/src/pages/llms-full.txt.ts new file mode 100644 index 00000000..f94e1bca --- /dev/null +++ b/site/src/pages/llms-full.txt.ts @@ -0,0 +1,49 @@ +import type { APIRoute } from "astro"; +import { getCollection } from "astro:content"; +import { toPlainMarkdown } from "../lib/markdown"; + +// Every page, concatenated, for an agent that would rather make one request +// than twenty. Ordered the way a reader meets the material. +const ROOT = "index"; +const ORDER = [ROOT, "start", "guides", "reference", "explanation", "privacy"]; + +export const GET: APIRoute = async () => { + const docs = await getCollection("docs"); + + const unlisted = [...new Set(docs.map((doc) => doc.id.split("/")[0] ?? ROOT))].filter( + (group) => !ORDER.includes(group), + ); + if (unlisted.length > 0) { + throw new Error( + `llms-full.txt claims to be complete but would omit: ${unlisted.join(", ")}. ` + + `Add them to ORDER in src/pages/llms-full.txt.ts.`, + ); + } + + const ranked = [...docs].sort((a, b) => { + const ga = ORDER.indexOf(a.id.split("/")[0] ?? ROOT); + const gb = ORDER.indexOf(b.id.split("/")[0] ?? ROOT); + return ga === gb ? a.id.localeCompare(b.id) : ga - gb; + }); + + const parts = [ + "# Driga — complete documentation", + "", + "Driga watches AI coding agent sessions across projects and paired machines:", + "a CLI, a terminal UI, a loopback web dashboard and a read-only MCP server.", + "Generated from the documentation source.", + "", + ]; + + for (const doc of ranked) { + parts.push("---", ""); + parts.push(`# ${doc.data.title}`, ""); + parts.push(`Path: /${doc.id}`); + if (doc.data.summary) parts.push(`Summary: ${doc.data.summary}`); + parts.push("", toPlainMarkdown(doc.body ?? ""), ""); + } + + return new Response(parts.join("\n"), { + headers: { "Content-Type": "text/plain; charset=utf-8" }, + }); +}; diff --git a/site/src/pages/llms.txt.ts b/site/src/pages/llms.txt.ts new file mode 100644 index 00000000..8c21e894 --- /dev/null +++ b/site/src/pages/llms.txt.ts @@ -0,0 +1,98 @@ +import type { APIRoute } from "astro"; +import { getCollection } from "astro:content"; + +// The index an agent reads first. Every entry carries the author's one-line +// summary, because a list of titles does not tell an agent whether a page is +// worth fetching. +// +// The landing page groups as "index", so it is listed explicitly; otherwise it +// is dropped from an index whose heading promises every page. +const ROOT = "index"; +const ORDER = [ROOT, "start", "guides", "reference", "explanation", "privacy"]; + +const GROUP_TITLES: Record = { + [ROOT]: "Overview", + start: "Start here", + guides: "Guides", + reference: "Reference", + explanation: "Explanation", + privacy: "Site terms", +}; + +export const GET: APIRoute = async ({ site }) => { + const origin = (site ?? new URL("https://driga.dev")).origin; + const docs = await getCollection("docs"); + + const lines: string[] = [ + "# Driga", + "", + "Driga watches AI coding agent sessions (Claude Code, Codex, Gemini CLI,", + "GitHub Copilot CLI) across projects and paired machines. It is a CLI, a", + "terminal UI and a loopback web dashboard: Flow shows sessions as a map,", + "timeline and list; Needs you collects waits and permission prompts; Projects", + "and Machines show Git state, health and leftovers. Driga is alpha.", + "", + "> Use this file as a map of the Driga documentation. Fetch any page as", + "> Markdown by appending `.md` to its URL.", + "", + "## Agent Resources", + "", + `- [Markdown page export](${origin}/start/install.md): Append \`.md\` to any docs page URL for clean Markdown.`, + `- [Full documentation text](${origin}/llms-full.txt): Every page concatenated, for one-shot ingestion.`, + `- [Sitemap](${origin}/sitemap-index.xml): Crawler URL index.`, + "", + "## Operating Driga from an agent", + "", + "- `driga mcp` serves read-only MCP tools over stdio; register it with `claude mcp add --scope user driga -- driga mcp`. Reading never acknowledges inbox items.", + "- Every read command accepts `--json` and returns a schema-2 envelope with data, observed_at, source freshness and coverage gaps.", + "- Commands that change state ask for confirmation; `--yes` applies without asking. Without a terminal and without `--yes` they exit 2 and change nothing.", + "- Configuration is `config.toml` plus DRIGA_* environment variables; unknown DRIGA_* names are errors.", + "", + ]; + + // Silently dropping a section is how a directory of documentation becomes + // invisible to every agent while the site builds clean. Fail instead. + const groups = new Set(docs.map((doc) => doc.id.split("/")[0] ?? ROOT)); + const unlisted = [...groups].filter((group) => !ORDER.includes(group)); + if (unlisted.length > 0) { + throw new Error( + `llms.txt would omit these documentation sections: ${unlisted.join(", ")}. ` + + `Add them to ORDER and GROUP_TITLES in src/pages/llms.txt.ts.`, + ); + } + + const unsummarised = docs.filter((doc) => !doc.data.summary && !doc.data.description); + if (unsummarised.length > 0) { + throw new Error( + `these pages would be indexed with no summary: ${unsummarised + .map((doc) => doc.id || "index") + .join(", ")}`, + ); + } + + const byGroup = new Map(); + for (const doc of docs) { + const group = doc.id.split("/")[0] ?? ROOT; + const bucket = byGroup.get(group) ?? []; + bucket.push(doc); + byGroup.set(group, bucket); + } + + for (const group of ORDER) { + const entries = (byGroup.get(group) ?? []).sort((a, b) => a.id.localeCompare(b.id)); + if (entries.length === 0) continue; + lines.push(`## ${GROUP_TITLES[group] ?? group}`, ""); + for (const entry of entries) { + const summary = entry.data.summary ?? entry.data.description; + lines.push(`- [${entry.data.title}](${origin}/${entry.id}.md): ${summary}`); + for (const when of entry.data.read_when ?? []) { + lines.push(` - Read when: ${when}`); + } + } + lines.push(""); + } + + return new Response(lines.join("\n"), { + headers: { "Content-Type": "text/plain; charset=utf-8" }, + }); +}; diff --git a/site/src/plugins/rehype-table-wrap.mjs b/site/src/plugins/rehype-table-wrap.mjs new file mode 100644 index 00000000..2ff82e48 --- /dev/null +++ b/site/src/plugins/rehype-table-wrap.mjs @@ -0,0 +1,52 @@ +/** + * Wrap every Markdown table in a scrollable container. + * + * The generated field reference has tables far wider than a phone. Without a + * wrapper the table is clipped at the content edge with no way to reach the + * rest of it: the page correctly refuses to scroll sideways, and the last two + * columns simply cannot be read. Wrapping moves the overflow onto an element + * that is allowed to scroll, so the page stays put and the table does not. + */ +// The invariant this plugin exists for is checked after the build, by +// scripts/check-tables.mjs, not here. +// +// A self-count was tried and was worthless: every path that saw a table also +// wrapped it, so the two counters could never disagree. And the failure actually +// worth catching — Starlight taking over the markdown config so this never runs +// — leaves both counters at zero. A plugin cannot detect that it was not +// invoked; only something reading the output can. +export function rehypeTableWrap() { + return (tree) => { + visit(tree, (node, index, parent) => { + if (!parent || node.tagName !== "table" || index === null) return; + if (parent.type === "element" && parent.properties?.className?.includes?.("table-wrap")) { + return; + } + parent.children[index] = { + type: "element", + tagName: "div", + properties: { + className: ["table-wrap"], + tabIndex: 0, + role: "region", + // A `region` with no accessible name is not exposed as a landmark, so + // the keyboard stop this adds would announce nothing. + "aria-label": "Reference table, scrollable", + }, + children: [node], + }; + }); + }; +} + +function visit(node, fn, index = null, parent = null) { + if (node.type === "element" || node.type === "root") { + fn(node, index, parent); + const children = node.children ?? []; + for (let i = children.length - 1; i >= 0; i--) { + visit(children[i], fn, i, node); + } + } +} + +export default rehypeTableWrap; diff --git a/site/src/starlight-route-data.ts b/site/src/starlight-route-data.ts new file mode 100644 index 00000000..34bfe6b0 --- /dev/null +++ b/site/src/starlight-route-data.ts @@ -0,0 +1,52 @@ +import { defineRouteMiddleware } from "@astrojs/starlight/route-data"; + +// Strips the `.html` Astro puts in the canonical URL. +// +// Starlight builds the canonical from `Astro.url.pathname`, and under +// `build.format: "file"` that pathname is the file it wrote to disk, so the tag +// read `https://driga.dev/start/install.html`. Nothing else on the site uses +// that form: the sitemap lists `/start/install`, every internal link points at +// `/start/install`, `llms.txt` points at `/start/install.md`, and Cloudflare +// Pages — where this site is published — serves the extensionless path and 301s +// the `.html` one to it. The single tag whose job is to state the page's real +// address was naming a redirect, on every page. +// +// Starlight's own `formatCanonical` returns the href untouched when the format +// is "file". That is right for a server that only serves `foo.html`, and wrong +// for this one, which is why the correction lives here rather than in a +// configuration flag. +// +// The tags are rewritten in place rather than appended to, because two +// `` elements with different hrefs are worse than one +// wrong href: a crawler that sees the pair discards both and picks a canonical +// on its own. +function withoutHtmlExtension(href: string): string { + const url = new URL(href); + if (url.pathname === "/index.html") { + url.pathname = "/"; + } else if (url.pathname.endsWith(".html")) { + url.pathname = url.pathname.slice(0, -".html".length); + } + return url.href; +} + +export const onRequest = defineRouteMiddleware((context) => { + for (const tag of context.locals.starlightRoute.head) { + // `og:url` is generated from the same string as the canonical, so a fix + // that touched only the `` would leave the two disagreeing about + // which URL the page is. + if ( + tag.tag === "link" && + tag.attrs?.rel === "canonical" && + typeof tag.attrs.href === "string" + ) { + tag.attrs.href = withoutHtmlExtension(tag.attrs.href); + } else if ( + tag.tag === "meta" && + tag.attrs?.property === "og:url" && + typeof tag.attrs.content === "string" + ) { + tag.attrs.content = withoutHtmlExtension(tag.attrs.content); + } + } +}); diff --git a/site/src/styles/driga.css b/site/src/styles/driga.css new file mode 100644 index 00000000..2cab0171 --- /dev/null +++ b/site/src/styles/driga.css @@ -0,0 +1,211 @@ +@import "@fontsource/geist-sans/400.css"; +@import "@fontsource/geist-sans/500.css"; +@import "@fontsource/geist-sans/600.css"; +@import "@fontsource/geist-sans/700.css"; +@import "@fontsource/geist-mono/latin-400.css"; +@import "@fontsource/geist-mono/latin-500.css"; + +/* Driga docs theme. + * + * Colours come from @catppuccin/starlight: Mocha in the dark, Latte in the + * light, the same two palettes the terminal UI and web console ship (`ui.theme`). + * The theme's tokens live in a `catppuccin` cascade layer, so nothing here + * redefines them. The state hues below are the app's own glyph colours + * (working ▶ green, needs you ◆ yellow, overlap ┄ red); in Latte they are + * darkened to 4.5:1 on the page, as the app's readable() does. + * + * Geist carries headings and prose; Geist Mono carries commands, keys and the + * terminal-flavoured labels. + */ + +:root { + --dg-font-display: "Geist Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + --dg-font-body: var(--dg-font-display); + --dg-font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; + --dg-frame-radius: 10px; + --sl-font: var(--dg-font-display); + --sl-font-mono: var(--dg-font-mono); + --catppuccin-yellow: #f9e2af; + --catppuccin-green: #a6e3a1; + --catppuccin-blue: #89b4fa; + --catppuccin-mauve: #cba6f7; + --catppuccin-red: #f38ba8; +} + +:root[data-theme="light"] { + --catppuccin-yellow: #976013; + --catppuccin-green: #317c21; + --catppuccin-blue: #1d62ed; + --catppuccin-mauve: #7c32e0; + --catppuccin-red: #d20f39; +} + +/* Latte's gray-2 and gray-3 fall under 4.5:1 for the landing page's prose and + labels (4.37:1 and 3.49:1 on the page); gray-1 passes on page and cards. */ +:root[data-theme="light"] body:has(.dg-hero) { + --sl-color-gray-2: var(--sl-color-gray-1); + --sl-color-gray-3: var(--sl-color-gray-1); +} + +.dg-link { + color: var(--sl-color-accent-high); + text-decoration: none; + text-underline-offset: 0.25em; +} +.dg-link:hover { color: var(--sl-color-accent); text-decoration: underline; } +.dg-link:focus-visible { outline: 2px solid var(--sl-color-accent); outline-offset: 3px; } + +.site-title img { + height: 2rem; + width: auto; +} + +@media (max-width: 49.999rem) { + header.header .right-group { display: flex; flex-shrink: 0; } + header.header .header { gap: 0.5rem; } + header.header :is(.right-group, .social-icons) { gap: 0.75rem; } + header.header .social-icons::after { display: none; } +} + +@media (max-width: 39.999rem) { + header.header starlight-theme-select select { width: 2rem; padding-inline: 0; color: transparent; } + header.header starlight-theme-select .caret { display: none; } +} + +/* The landing page. */ +body:has(.dg-hero) header.header .sl-flex { + justify-content: space-between; +} + +body:has(.dg-hero) { + --dg-section-gap: 8rem; + --sl-content-pad-x: 2rem; + --sl-content-width: 75rem; +} + +body:has(.dg-hero) .sl-container { + min-width: 0; + margin-inline: auto; +} + +body:has(.dg-hero) :is(.main-frame, .main-pane) { + min-width: 0; +} + +body:has(.dg-hero) .sl-container > .sl-markdown-content { + display: grid; + grid-template-columns: minmax(0, 1fr); + min-width: 0; + gap: var(--dg-section-gap); + margin: 6rem 0 4rem; +} + +body:has(.dg-hero) .sl-markdown-content > * { + min-width: 0; + margin: 0; +} + +@media (max-width: 39.999rem) { + body:has(.dg-hero) { + --dg-section-gap: 4.5rem; + --sl-content-pad-x: 1rem; + } +} + +/* Prose uses the proportional member of the family. */ +.sl-markdown-content p, +.sl-markdown-content li { + font-family: var(--dg-font-body); + line-height: 1.7; +} + +.card > .title { + font-family: var(--dg-font-display); + font-weight: 500; + letter-spacing: -0.015em; +} + +.sl-markdown-content td { + font-family: var(--dg-font-body); + line-height: 1.5; +} + +/* One heading scale for docs and landing: semibold, slightly tight. */ +.sl-markdown-content h1, +.sl-markdown-content h2, +.sl-markdown-content h3, +.content-panel h1, +h1#_top { + font-weight: 600; + letter-spacing: -0.02em; +} + +/* One focus ring everywhere, including Starlight's header controls. */ +:focus-visible { + outline: 2px solid var(--sl-color-accent); + outline-offset: 2px; +} + +.sl-markdown-content table { + font-size: 0.9rem; + margin: 0; +} + +.sl-markdown-content th { + font-size: 0.72rem; + line-height: 1.45; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--sl-color-gray-3); + font-weight: 600; +} + +/* A flag, key or variable is one token: never break it across lines. */ +.sl-markdown-content td:first-child code { + white-space: nowrap; +} + +/* Wide reference tables scroll inside their own box; the page never does. The + wrapper is focusable so the overflow is reachable by keyboard. */ +.sl-markdown-content .table-wrap { + overflow-x: auto; + max-width: 100%; + margin: 1rem 0; +} + +.sl-markdown-content .table-wrap:focus-visible { + outline: 2px solid var(--sl-color-accent); + outline-offset: 2px; +} + +/* Starlight makes tables scroll on their own; inside the wrapper that is two + nested scrollers. The wrapper scrolls and the table stops. Both axes are + named because a single-axis `visible` computes back to `auto`. */ +.sl-markdown-content .table-wrap > table { + min-width: 34rem; + overflow: visible; +} + +.sl-markdown-content :is(h1, h2, h3, h4, h5, h6) code { + font-size: 0.78em; +} + +.pagination-links a > span { + font-size: 0.75rem; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--sl-color-gray-3); +} + +.pagination-links a .link-title { + font-size: 1rem; + line-height: 1.5; + letter-spacing: 0; + text-transform: none; + color: var(--sl-color-white); +} + +.pagination-links a svg { + width: 1rem; + height: 1rem; +} diff --git a/site/tsconfig.json b/site/tsconfig.json new file mode 100644 index 00000000..8bf91d3b --- /dev/null +++ b/site/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +}

MQ0lL3J0AOPUrkemLEcXjx0bi04WV!6`Gt<;VVoO@DLyZki47%C<92Zk&uvFBfUD1l9FD(L2>iO72LUXi;RNm z4mCB^9V#jsdKLy6S|&Ows(T#wm{?ia+1Y6rfLuT}E*3U+wm+2+U0r(P`VGpPH!0a@ zsc6~$X}J6hpt^Z2kmS=fA|Qa6is%{@(PbNe^~&7D#Ml13iT@5nH%M+?BfU;ccEvWi z3m_sUxkhr0oa`3yHPRa-*RIa5k&sedzrjH*@}+U zMt_e}QVHqi@u9Ru&s|LaEe|iBGL~CH+Ui~TJQ)6EA7b5lRX5XBqgM_8Z!Q15?(0`P zF{&%Iu39D~z5yV<2Do;m8xb+pH4YML5nUSECwgyOGl8OFO3Iddq%oYO^K>nPmy-aB zYgZRhU84d#0uab{6CPE}%j7i~{T>cn`}0cv-v&f|3O~Lcr}2uP^srC9c>RBydRO}V z*BXNGlHE9mX?FdfQ(}g<#i96s2gzzH5pxlXd?eT)##s*ODLxY1fKGI3exFjphu5e3 zvsG5ijgTU$x0T5~EUu-S0zNL0c0UqTU7qt z_l0a27*17^hdcMgn0p6k?4o-8Wo=-P5!M~LFZbTl)IIRV>8_sV`~rSK33q)L*0lxA z^aO!!hShnK?E=pavwKYjX`g#un{MLkUcFyK>ji_`2(U^I0n~wkB~1>>G+|%xv0rw#U_0!W;YXOc9NDfc z1tf5vhfSraQYGbs!)UKjD5fGG;&GVk+Q)vJx`rAR>v?pzF3j+_UafD^U4PIrf(ElM z@m(dWPg~ikgqjJM<>w*f*Ul-K2CVaJSSU?QXSw*=gj>F@82j8L$=6L#997#r%AM+> zKEJY@%Wca}jJlQC5nL~fS}$MGiyJM@wk`kD(B#Jy-rs5b4d*aLU1_Xc0Dn>4R(Ea3 zT2&%>!YqwyHH_d?a;^Ex=>r<1E!cxRTuMH=(ybM28nEo*Jv=+Zki)BwI`Y}?nAZMM zuZnw$*X6IYSNjnAaJ!luXxtUh@sgn>DUntgLmi@;oZ-j~eg(tKeb2yp*hkr=zb8Li z?$~)3)bi0Z2WIDSuS`PSu)9wQ?l2G5($yZOcow09u{^5q6(1SlLL@4LhDBN^W@}dp zFjnM>yV$o|t}7_nSPmZn2Giif3r=F&hkn!VE-l{!$yV_w`AY1XhBK4a} z5swq&T1k*UxYxt#+7MFkcG#zj@aL!zW1O*<$$&4Arzy4%Yi|SLNr`Ke!RiLc4PBH2 zc;>wlkKlmw=`baJ?>y&-uQ|`;>q>SMdqhp4f-UVsd8@a0W%%9wwlP8;i#tl@E7KQ3%24&^5@n-)<33vs0P#ORENT!D!Q%Dk=)AZ;dj`S~Ep#{! z)Or78dhllXk6-@rlHzt6O=7w?18oQ(tlg7zSoR36%JCvw-B1p^dAH@~#Zp%^Pr+Xh zu)Z)ID2wUI@K#*ty65Qt%I=Ne;|JDdb{Q`ct1y27v_=q*-?XLT*yyY5o)m36DWR0G zj#~wl7RDez>RqibP%5Nz0JMy&&9>!jyT7VX%E$ut_D8aOxwbFTk>7^I><%>A2nJnN z+3x0@QK~%Mm5%vX-6TlMM@~qAc8@H|Kt<3<6Izgx!tuKP==x)_8Vw>v*S63YmK)5j z+&ZbC(t3f(9WXfaKF?2{s@ZIu6(7lu`&VAjKMsk!Z%Fn??gQ#Pi|4o{;M)8R-P!u9 zpy9pj>}Rs#c2O#oMcN=&btpI`{T=TuqZso@lsnv%CwJc3z(C#7#9y`&5)lrIyiKR8 zOULou_tlwn&8%>PgqXtftonCztC*3{s2GC!BFp=dr=Kc7BizQJ_00NrnfffbD?zFf zy>N#?UDHO|Uu+n179;Htx=25k1Q@K&lc{Bhm)~;egCq~OlKNVVg$Viagx1E=(T@Bj z;Peu3Cf#`Ef%yJ|ecwNZerRp%2*xE8@970{IUrGJSQXtna|LFU@NJ(3=)h-2xf^Dw z*>rUb2m_JmZw)7Rs=6hG0c!Ya&Ve=z38x>i&J7ap))k#+rweI+C&*S;ekQzCuqZx z+d2A6hZ0U&ipIaDE&;T{b)41L=^;4}$|C@4J zP@fc3l*`r?*Xh9}Apg~gWRKu?p5FY|=V6mtpGxRnd3O5BJ2mgwAGi#z?!h}67s{jX z<__6BJV6rl?5@}>^CF$WJW>J8p09Ki_PUOQCz#uoJ6fqm<2R2Y!i`GQVp86#3Xi?5 z-_e!nV!x${3~45>W#`LJC^LOS_^gt)fvj_9_GqP)ovh4W)#F`uJQULz9EE!wMUMTB z6%cpFHwTyID24M1k3C5UD?}BFn_`Vx*Bk=E+GD>=xy&mRi{~%1ut22lP(d6}LcZB9 zq=sLlC03f82Yt1&Sj#syhr$QQjC0PscHcu-lNehO?P%en{?BSJ2vZvQZOS>FoBo_b zrw_~tKL_m756qp?UhSz(n$Y? zr91(6(D&=eF*jg^8+z?=OyvCzxnfM&p#gT?A#Gf?R;{m)lods->1d-WvbUA0RlN<| ztDUQ}-pURV67twg)H&C74hcKVfyKb}s4JcFSc`Oc(Dvq(5?1!Tmw@d}mCC%ZbOEH5 z%P)!F&1xP343Jz1s@nFs&4U*Fw&J2|#+vjs0Y(Y6n9cO-G;pRitvrF6^V=o^hOI#< zH2XGV?e27PPpf~F%iF0dg=n<e7|y{lhQ8R7turx6C|ada zEKYbg#8z@0d%QsY$`rH=n^57D^wVgS+J{vMw!i-v7Z>t?2)`6ODnY$g&@t7Q928vE zEMf@`2X^W|xayamwu2y5KbfY|?=g-uP)n*88-7l5z&>uijvddSJ{QBCx&C57NMz|8 z*vd6XoP775RYGOBd2wvd0?W(W3j69ZUFwtV(dZ6=;L>bhH2_xc_ZH^7ysq#eIZ%OA$(=&^hnd_ z5LW7EM)S?CE}NH6v)eYRD879D#Rd75hZpYZiaAZOV4mX>J?I=C)?33chNTuZ-8mMZ zjISBw)G8-e|5_m}u%7^Qb`$z`w$0eM%Oa5_{jpkg5T%kXz8Z?@u-YZ)a<{2G~@ z2FK9*x;7$txnU4}hy87oDSz1t!oKX&3>|))0)}#_I$A-kXdVe9(H=!4qGW`o(53$9 z7Nh15dXZ&y3}`6}nX$Gp*~7t%C~f*dCd1JXn;7GCcJ^Ma!A-rr1(lH7NDCWDczqEv zXq_nduX)Fofo=t3Y}WjUv3wR@YyR{5E?GBdiPe{94lE zRgO&2lbk>p@1H)PpK%v3y+269RhS4jifL{stkHE!7F?L!ezl-)TSlfo2k~t_i>W+f z>I-C-m>~NZ}v2=}NnDNNs*q>RUT|m!I^N zT2o{6<2j?J#7|~ZIWJR_6_dK(w9lC(hraDUXPhyf2~dVwV7w3C_iTv;F5wQuuX_kE z_B*OM(AdMN$fW{`YU~^g&BcsbO0r~WFlq1JzHXkLh)zUgkU5Ok_)0#*P(aK~D)q$Z zNwQ+LgA1(Tkj36Sr<_=b)>kXl!jW}hzx8t6`?8##=Ai{vLMW|uiQq}5m^>VP(%Q^4 zXCy8@&EZinPVUYdodkzbPAMlR0eDk5)8J6b_gngWA0h94#T_Z!UTBMqC@2X%LaS;> z^t&AxW|-zE36vu(x1o~;eeu0 z+=7g0Do+LxGpCm|3RFxMRwxE1c(F!%0(h!(;;nLvo*F zZkB1sb$+OnEwGdn@4Zzk=>Nr}o>L{TKhr!_YiLSdl|NpWjaH2cK`vl6 zcIEZt*{HNurqt6NuJgsDgxkOrUZVBpdUT-uEy3g3k+&r$Q%*JVaDkN!&-i)fB?4o~ zLu0lbcA!yeq6MfVy=Kj~Yr_?%pOQxEiVrAblyL?~g}8OYuW0f5n1Y()1CK%%)erB< zaRQ@doQ?zo;Dk?xWTXXdFgHt6f00W%Ch<$X{|QU!bpzjd`=jpJc?~Or9Q3e_AE5)6zi$qTEvf+Y0wYNIVD zI+rWMMzxXR*}c*~HX{9{I6o}o;_u*Uy!q(5P3?w=q-5Je(1F{hm6UNUzZA@;@OB*`^}-Q; zcjwfYi0FkzxEVgNmOh=}mm<2TDWjB>;3QysEhWF$ov8{+*HP?IgvY&@tD8}(4gwY9 zz-su8oWg{;oJVL!i04vMpt10|&h-WLT2D>rFtCYvXxj~h3Knl-E>cbN&*r~b9ML}E z?o_K|6A>O^PBUI5>`OWsa|07k>{a==gvwW06iY1cw$uMv_94L<{k8>yy@F z?%JQxeD%kMK9gO~rq$(yCosO&hOKT0RJ&TdWYW3|vQf(xmhE0whJxNR;SZeT#YDPB`m z;uC?LfR%WVX=-3kM=o#sBp)h!Z8j10fL4fQqMa@UqNL3d(P}gv9pA5&`UA8vWBan4 zv2=A|yAfkO{D%I`o3^`YXB+CU&j2z2z+K0`^j99)-;*m>K0DdmV}SJW>l@PzYSBnZ zL5T@JvnZz;5c890#zxAQ6fBP{-j_e@$g+f3Om5Giez3chW3cC(39mb!v$V9q8~3rmiCIz8Py0}h#h1hH-dqAAizCauyqGTm+)gOB z^-S@D={VM`Psi@-Yx}Q`?eYq{b#AZ@H%C6AX45zpwLdsOuUBcSL(unnVMZ>_$8m)0 z$(rC4udpf6@&5SOl00OCg2HV$D-n)HM{LJjnyrYuK9~zsG=WyzGg&R6h0odL^0p_1 z(}1l_ewibE_VjJSsV8}U-+VqO#?GwEWy-7GreF4r8LMpD7rP^WZ@?uW-hFi2rRHEfmU^s| ztJT&aUV3<6zun&yp`hl_YQHb?C<^xf$*WVHugo%cT!uQoIy=pRP@?l5@1l|o^t%_Rq z=?Ljs{E@$l&^5Dc=q#uKuS-^aFGYIcJQEXvXOVM$+wrvPH)SGc%u8x}i(RRo=>e}E zmZtkYvBsYUJG+^mYUnuH z%`vw$*Lg*U!s03TkGg21a0aBNN<@%pfog^W9lU@_A7b7nEpQ27E)m~55@Kl<-n|6y zW-_E}$qq=Jgv^-uh|oU_XY&-zmcax;-14@z?N1nHR5{k*jt>ObZx58(4zbRz;6V`h zYH@-@$_{*P$4h_Ma{5)o!;5-uyQ8yOV^8lwo1&A!v+;Alz)Z zw3adMh=mT};antBT1vJzb;pUW%FRWuWZl#vZ?v?cg8yb@MA_YRVovYNTT2@a>{HKqm@q*YHYG`R~iycx~Si!2gJXwYHL36LHf zDr};8YZiYiAP4?E;G$E3FElar+oIpAGkUGjS#{DpJZF}5-M#HX(DBgv9G#9DDXedD zV|J~y`3oy0L;Gpsts~r%g0InzE~gkW{V!FUGn8ee`X38noG_HTPI5}bc77?VL!%F_ zJ@1Qo%0ZDBVXB~gSYN45gq880!Cw^(5Dxk9vQCktRnreLbXuRkj`*03^(2vLrvyj& zeGsE6hQQ2kHbe?Ge{@~j>yT+TvSn(;!dJNF8^`>NaL;|eehTbF(%;M9R2Ovo(ZqZee-`>@0;3X|U7!yV-Y~&4@uWU9nSlA{x zfNj^)@Dj3kjBb^~#b9fD;b6F`aENM9nQ)$Vukg8MJ0!144Ex<)xEhY=Xq?~JHh&{s z4)Zzv;7<1Q1>wO-Mjema3YR+U-I2YVB#owYp1oUqf%^$7=b zO;L~NM;+|rsIRqsdy@nRtXff}JZF$%qut40vkB5Kkr+pp@vfwg&?xdn* z<6%fN2BIl1)$L7Abd;Rvtjj9-yk1_-yLqqtUPo~k7^Q6NDcQXQ-NJtN(cp1j(Ygef z;@QswzVJA$h)ou~6v~&uC&2bRe!d4bu+y0XJ&Nplf0;L2{p?i8GmX0L?YnHzLzS>)v}&!{GGe2kXdp`d;$i@q-0{m?GS5u)F#z#T z=lA&N;nP*urff)+C~~>bWTBxQD#0rSV<|b&OYQe4>uSOtxm{)58jKPH4}C!(cXQRC z;3KOcK?#_<|4PTxq@iRPAdf)seOq8&Pj*AR0g~du1j?lA zgeu99y3}3q4J==uKO#PH3N7vA@Zo1XleZ&#^^>o9l=*pZ0=Ry-H$U&oVgsV$`>%TO zVr|7cHS2h>gGw?&dU{l8*7`XFp<*TTuvAQ$d;~91S)iYp?PDKY)g4~1T&@A@;}zg+ zNtsaVE}8^;Y#9zo4^ww_pU5*+c(#Jeq;y;(B`^gCdV|k2VOdSIa7bvM;BJlk;}ajT zr@`Ge22q{s*PUgzAHx@IOU_^-^W7`Jk)J`sIw*-LVUH;X_r|avdMNqqZp|LBzjWmE z(rk!-%`Tnn4fuEOwdReX zHjSx5R~;1?YtKN=jv@olbXW0N_lJ)%rhnlV>^rwt6s36 zE~c|jmaT@kQk3=(R8;gQ(|QE0IGpB|sSU8+cDlGq&LsC?o5Vc@%^5wpIpI?i#+IsU&H}L<0Be=-bxi5g);M}$vIH^R*AI>i6`)Pe z&eiEiFmzEd`R>yPZP*f(cc-x*~Q#HpyXojV?_G>$HQT*BiU%XI%uptu?WAFXq{-~{G zOK^e%vjgw6Td_=gF$6W18y}^m>lx7c5Qzw&kEiymCeJvjqDkOsO;6^k^c~E^Xiqg*){BNuZrKqPVeT3H1Q<7jkYALNHQfjpvwZj2;D^* z@CfYWPgu|k1#q17Jt)OnysF8!cR;0)_|8yszN(EkEP-$Q6wvz^DP}Xs?nGH_Z)$_& z84~`@rMaSixAMRwNVl-BQ#G$;GqZ|1XV8y)vQ#4@N7b5fJU~B<0D~-fiq?Fk)p+bk zhMMk`cG6->IAIMymFg9?hp^$Ks8O8MovTw9G-9!ojq(>{OrRP4FDvBP|IJJz5x*Oq z_$S3^%oO@);-KUw^8Acr$*qnx3CCbUd4R2_#1;VUu4|Qw5W8YK+_0a zLmRkof*y?OUUF}XV;hp2nJ*GtwZoy`mwALefJgwWxb zdx6?dm*6wl7usMfUO4of_7kU0?Vo6%NYm5&u!b%jQnf9B=eTg?+NNKbIsbrx?z~_SpwG7~!VJRQgQeyKs(tLqd zay`peIX(w>ue)_cV{o4JPLrR}U@-cvZ2@}z93>B45?u_*JinmWO>bBUOZ?3adOKKd}Kx2lW&N7oJzJR-#)MsVFhch*C zjVE}YZ^SR~y6^}1k~7Z1XBreYwdjvWr#it4b+}{V7iXsC^ZuM`LDwIi)or%+zY7|E zCHjPq>c-YMHONAPVw#Y??OH+V?v%_!B@%k43)s`p)Ds^JiC_?T zI^`C3HA;I$ztsMAwQ`}7IcGen>`EgYuU;K$L0f3G(g@@6P*=iLY#yzd7S|GajoxgXH zNbxO^V?ii@#FGC$fa^8!Lz=bwRDrLFA75Q?wTkC0(LGV>u*W=J>`-UbZU9(?Y(`$a z_6Hg8#h+C)e}IVZ@!!gS?r;~tt@gjJAmYmg@GLA51ujdGKfZaDj??M{Xtj4sA zx*g1Y+N3#@!l{AER&+aFVUYybG0d#CQ2VoEZ<`Olnq*zJaYE_wZ@Q8Gr1#*@pO`5r zvKv)umdev<+7rDb@vb^D^P6z{^M;MyfnG&%IAUimm~LO<`CdOOeWU{4g>GUUCh#F# zA)#;~IbTWcAk4N&Lqg)g1M`?cLap;p2eO=iYANJ*e;Hv9te6_DA_){$c*V zB>vrY|FXxw-j9FvhJW>je~p%D8UGp!|9?0Z`h)+n(I_yz#yHBdD%8MF0{*>>s;|Ze zL5qv4QaIRH8xJl4s^NKCKMNCWmI8lz=EKLS2K~*~Lpv>Iboen3`wZS5sn=+RwppA; zBSyu}W0n7^!IUCK-?ujt3slvJSoATnCJeY&9(m9 z9BEf8wg0P$nJ4@UFOoDAPgh?xK6{RM=h>f4kkQ z#a8ti%L@$yfn)IRPD{c+bC>5kV_$W#2L-ywB@FfC6Oly>=-=mASiC;-jjX1or5a7_ zEd0=E29O#a!R+<;UyT2+Oada+mb|hy`(QO%xS)8xR_G-By@&{v9MISCa3UboARKPw ze%sNWF`-cUlf}YJm$etlZ1F2CS0=nja1|UK6?SG6{?l>hmGP?gZdFc9M0}-SMQeF} z%JA|B<7vWGa#Y(CJi7m@&R)b<({vDF;pRSa3so?%b3;?6`UpVs8bJB?nD5_Ki(kcJ zQr}*KF>`lcc2N%AEvn-sOj%y{NW#Zct`|;ojh#ksyT_YP_m(_%o8iz_h}2f|NaE>< zuxB?5y6OsI1!iMyA1!?1UKT&fJ$-+j_ow%7sRJXRQ3erZ)Ss;mfX{&IfUC^`M6Ur9 z0Kl_9YuoSrpCVrA^Is~E1^}qE`0?amG#u3?7)|{MEYbL~ZDjGGR{Xc(F<0cb*h|2j zq;Q1ak-#Zzb#&AC_tZLA(^Mh;gkMc30sk0L1Hr$$SR8e>qU*n5);=1# zzI|o7{%>Z>TQ#K)2v{}z50d-eNh`YN-)~<6-YS-`0i>Q?+3yb!{a3jP&6empY8;FJ zqWf18{~7-5MEQ59sbzc(p#Jx>f4clz$bS7XfOOhuM9A&N-AjN>!Uf1spr$nc(L?F* zv)<}?{Z!NAUkD~vp+m#he6p6kf7)2dIJ5exP4o9O!(#w|`U&6Tj}wZ99m<<;e(W;d ztOlRgN6?&qS36&N&=KO0ZXtUbySXb{_zxtJ_oJsS7gR^ydqm$p-vlTqkLkKC(vRA| z*l?pA11E&e49sybM-dc zFapD;^PJ&4RP3j#HLHr^cKFbaO1c35$l&#m*Y#0ZcNjXM%GT1G_La6LV7J{Pj>K=f z#78lLl8wA`0WApmgg*ZQDWaV^g^q0Y$PXr#7m+HXA?@WF% zOv|vwLKF19HF#Nl(M(GBi^u7RN%_65Bm?-k=a7J*+w^)h)|md{>CsuGj5*$FBA;-2 zJ4A8G0dYGK1|IE9lxyJrP_s+brJNQYYh9)woIZqaug;-Z)sc)pD5NNrJtDDlI zCkqSKe(|a&B&UCkOz>z>*#?$UPvY@AphCa5Tn>zx%y*ut_H?|>KdI!9p{sJLHm$%6 zr^nF4{e`R#P^>w{sb_4zi{kDLrNiE61xO4cRh)+nXyBa~KZo29XxIzI`>lj^U-`p= z1UDp;EUmO!u^aX*G{r=gH+dySxK1b@UACrF90iA(zH!hkyTK0Uni8Eb_Ey9BsrpuS zrYFc($@cW>yjwIW;-#_uzMn)e;LUCOVR}QZ=kXgRTd`+7tr&XFYKcfV{E(wZhT{=W zBzh^Xw`weWOv#;UwnA7qV#3d;V4>TSTkT;&B3b{Gp->4n??h-PcEStRt`|r6OXCSF zA$X_S-qEB^tVc55C&e)VR=0*-D|imdvz!29N0QAjs*VNNer3-utw_-3iXccuX|X#l z#IrT-9jT;eT}{71J;6$*aPeWYXkq10Uv(jHf_@U~fSX;IW=DJ(Jg;k)6(oU|fyZH} z68k}rd3R%iHrG@|F85|xGx3PXGD=7`b7I&DXx8MVgmqlzME`?r#6m@Y{*=maL6%y)CN!o_DkjvNxMwFSO@fa?RqF#B<3R zoFPQZpRKj7McOtiykO6+BF-Tfi0G=?PN(tN*bmmSG85ri$JGk21!KHC7y=sAJbdJ2 z5P6GT#$hD%kbIG12g^n{6E0`hN>Ni&s4uO)aHQ+v$?Nq`_}E7MB|_)dS|AWFV+bx| zO}N|H@FaAv+@Y-0lIvc?CQ~>ajq)%$zQmSQ`F2nD0?IlfB0S@(KYYhyI;^U(ryMx; zdu3^8V`N8sW;}P;C>19;$>b5dr=?OEX%WmlbEm}Gyr{bb44s|oKal*9QJVO{tsH*u z(`;8#>g|cpsL`=GU&rj~RU+|(=C6j;9fHnj7)LQ>a8<1H1*y*?if*_3z3ZwA{)oWu z7I8*`L0(++O(2N@gWWpeB>|?mG*p0+ctj7p^jV|PlDS=#B$U&Y%~q)gY(xECGvk9= zjBZR;o38>xn0;;#4X0X>m7oh#;vHKd4O_7bn?X7{xc;Xcob+4nmCB~7Pj$eeYJMwN znFX^tfg3jvJryn*R%B#{AE}n83Xv4(qHqma>(Nh%4Pj#z^85_i5C-9%x>OSIrJ%%MQ8|_|8;;)3vDWko)hfN9@(W7i^e8(6 z0d(Vu$@;T8?&`C?PdyaxvIg_rX->~$5$Q%V$6 zs0QUr@jMW9s$Cd2Stzd751&v$h4~6H$DWSSK)HNmU+LcN@+|x!Ky@`A!Scafso?;~ z^X`N1fJ>xXHG`#!EVs%>s=di3nz>4|5$!29PB+j-72$49fkz*coF= zT0QB81(u+2#p%cycxuH;Y3%7nB2TQCc%{3L-xIiBqgqHvdVKPSur)Ea!JLIk$4?8T zCb%_ymlw_IW(rU7l6qO7wYwSk$d_LxXZ>(S=%512Y1c>_+_<(jt?{Zon+?rxU{Mj? zrBpJ96N}t1F-g`<4jKKN*WVG0@$l!P^wS>-MK%^&#m6wM)QZDkWtol10&h6y8){9Q zG|Xvov7ce4LPuq}P2~m$slo;0$O0L|jJF+XUz2`Ox0>!wtA>OErwXhIGHxr`s5)ms zBN>H=todLhpIa|RaE;a76Atg5Z7ojf5i}ME#x5`>GbqJftv!BJ2!W^^OzVlSG(wFx zaRKc6j>mU)7paK_GLIrc#(0Wg5N$TM%#^oh_Mv6_;{Ln^tj=~-`luH>e0@nW$We_U zE_P6tpQz;^`zWVlLYedQ(|b_T1wnVyeC3>0t6a-A_eFt(QMlXpUGb)jJxGQ+6pm;BQFU}Rc0;Yak51zfx`1uL81L|aNd5E(d8fG3X0o2bc8w<`Z^H}zn(5Ofh*k3P zhbw>a=3lKP&rcB=$aloh14VDq4YDjDMQGsgC1a!KT&0AU#+*G}l8CTG?e%)P06U1i zs8)Q+S_0H_I@MTs`3U9P`#dq}BU$atQEnrLl)r%lys5kkIPuB@%~F%rMHAy#Dj*k=leX* z??~f{@lBCm#S0tSMy%fn5ewSkt5lScwT9n9@;=MF3Kc0q3sF+bM8jqKD$9U48*7dE zt!qj86@|~Qlfx`!bYl<;Wt}Nzp~L-aE8cb5T8rm#v9^EdC5<~f4|$Xr$j+i+vp#9i zAc0d~U|Es&d!pvejhXV7Q$~}5RzuqH8g1HnL)jBDLXUz z3e)O+z<=dO{!b1eu^)>H9#1Hf9Xq(iuD9)gbyRQ+{~BYe&B<*g*1h{8;cm%7Xuk~* zvakEdX|2fSr;`<7c@(0Yaj7S#(&=;lQYyw$bvJby{oT3JAaTqjY)70#ngDBpFhGpk%8I9Z4TCJ1lIA z>sfw&zwI4exQ#gTDp&TG zr2DHMounK511ah2roYtho97MQfVF1;Vg+S?H<0CzM)r00r$Yll+Wz3CO{~n*t2JVx zR@zZ+w;JhV=`R68i%w);Qeu*==hin=9BiuHMm#w?R5*EbB~-vL#M90q7*56}&>kJi zCax-Jz##SD27i$PoBQn~DVARKk*sVGxVw0^YVQziv17ebtawq{53+8^ey*6#FFyX_ z*s#S7yS8XFGNXpSSSLAA>B5ai!QIpOmfgG71#p&yR~vgXFBTZ z@5o#+&L55bp$kd&bsEBb$Yk?0x@7oI9WlZuQuf8uRSt1=Vh8j{LFSO9W*+_-Um3xZ zEySlmA!N{3JqeBX>S}suyRPfLz;e9rY?n3MqGp1{G&J|&Hq%E=!&Vyaw_GYF0y#zm zE4WNnXr3wce0TSZ4&!obuB&|Pv-WV(&g0rD2oz+76=l-UOCNff#m!+8|Bl%5({^{? zw4eX0ROz>r_ulh{JcKBvtcsYFyuV$48-@K2HiwuFipm?OZ9De1W}FVhMwP%3n{)BW zv)8*#fON5>zgpX9E_) z&c6br`up?~^5WMb1NjMCx>7RwLD!MAHw{C`wj0yJ8^TR|N^hw`-dOaTwWbz`3e&cf z>)NOC<(K{iYBY@6VGdUn<=<+X(3hNyC^2Lcj5S;GHMVTjrE^-BH+Qpzs}hgdtlfKc z=P2yd$sNeWWl(GIo7`upJyPF)8!C)di6reye$N-Rv0X&SuM)p7!%I|WU4J&pRqCGr z2q8w;?{l_8eDeYm>aHTzv334rkHY4Jyc`foh4z-!5Ksj=6&&1*e)Wb;CtE_6Vw(3! zSS(e%$qtijd*v`sIJ^L=$F3a{E*_n9 zY1#AV+11ft%M&fXC2C*O_v4-)S)Z2vGFE_{0SBLg?xKE_643k~4d>6>CFOjRqB%>M z!m&ju&u#k^`y3@OEBE!*qHXP?LU96g+=I@uHwyw_DNbt1qDQr<;CB%}!o;@?(mt&w z^OR2A?ki9F=`1cQ&KGS}$X8@gTRZ_@a#G~|Dl>S8xC0O4`w_j2#FlZ1$CszHYnj#U zNI3gi9_W|avd`6V61u}{;Xd~qW_hU_z04ITiq5>Ag6n?2WxWL8po!Tk_BzXx>SeJ4 z#Ns1E6Pt9^P#}WbCG%~`GC|qv;^r%ij?*yBtufFbE*4$qZ{Mluc9d>{FwKcvRAjR> zjvUq2T&!VC478GUV-enPpew&SnL%#87IY^tzwD4QE*91$>G^k8^ zF>6{zp#~&AT+T*K2MPl6&*fNEJ2SV)%p7*rmkcHp6IMQK!q$(pDCSx3;=9)R(rwDxH4)c0jkl z?-%+8i*k*xLQ8#Jd4DBizr%OFB4`p?=6*~np%RDKxMTxwe%NGlab|j?m2K#v)VZFg znXfYsGBcJjikTv|?+-iXiF6*I{#a&^=r<@L6w_NhWc#W`2_2ww0eM_K%=73svs0YO)+2-RhQzd0Jh-0E&b{~CU9YwYc7`sOmQUoQ8ev`( z`hc$A$=Bm3l(1S*wQ?MtI(Dq%$Gf`%Rg*AG!1^M;_<_ll`fgN-YH7FGD}&GR)tWw7%EfJrrSf^ ziNX!PdQX-k0)rI8`AKcF#85PB--!w#WpN>ppwz!sukpw8d&K*ziFkehp~9^dPBa}E z%}V+QH%2h`4qhxjlcfL$Cz{rtaO(I@P=6|W#Ry&LznSV`VnE#(wZWeXoK4oZnr`%yeyV3%=q)dA-;1*87M4jfzGhO z?{~zdz$SewsW+W9aPF#W=&tTQ6N6+<(!rG#^XU0jB&wjZrj+f;qS+(0c>EA6wX>5h z%bH$iz2mSeLcmUgkC%Qb%kCa$sw`3aCvEuhR6$%l#zEQU0 zS*`WJ?ep3%jXrzLfcxjYOy&HMh8{EDmJN8qo#h9h!v?k*ti&IM=!$k~5{(2_AR}XX zoQ#G7`T`=b-`qVi@(>wv8qW53qp(q)M6iV`-e)x>e%eq*B6#&LjWUC)Z6@Kj=~#0Y zt$Y<^*gw#oz8G`b1TLxM9-7K2KP^|n80IdLonbco?d~pUf=c_L2r@#N6^WD;U_fK| zs!u+WpXzy>E6D|08PU?XCE-m8ll(YE+xY7K@ zF5IP}u4;OuxNyNzy65oP4gbC`&15_ikJjzA52dP?n*^)Rn=b*_M0(2R&us#DP+^Mc zxru)I?V>ZMa8?hfT-5Gqn7!QqsKofA&sT-lr6f!q)EbCEv*vsLp1V+ctLZt=MS_h@ zHM;+C@QLbM91~M+q#G7%lqGBYY)e_c*Az9T^pKhPi}2kS+9;(#d4;Yo=t@B&$4F3eP~H? z7E)o(+*SlC8A=ocOtPtRyRtNVRiiNFzGY)9CwjW&m0Sq^b~LdZAx3ixW|JOdx1Ao1 z7HEH^7d7E=T69KpubcH3kfP(+^3?J^gyTo7uB9Mf^g>xTp$b2&yl)*L>kQ2A6k&-- zO!k+={(zKLpr-@U%ac4&6&3bscXK9744MoLfo>y&LiI;t`o(?y{iUB4Rl-)mDDJ|m zbbo;TVQ|bHpTTl!aO+v7cJL{V(!d$0992Ek8HRhMjy~*ab;enCFs7a>SwqIIjUuO|s+%Y? zQ(Cq37{$kKla6O6;1TJFg!mA@#XM?NS<2*-&aT5duS)* zZzMuTCs}{%nq00x(ktP`o_Te?fd27Yw>w8K0bgvY^EeGb<22%*8c`CG9|a7IURV%X zFht!EzV2FDjV&)wciqagDfu8qIIi@O7=PV0EoBXVAg3LtBRqPt+kTbD1ooI zrgup1yy_vxYk<5Sc|0nZm~mJ`uZkZz0RVx2T=M_-Km@2tq>&cci07d1ES^oH2_*~I z9*IDT@%ZFDltH7gQ|8>YgI|gJ4NJkGis|Oxeeru~%UbN?&#XHPVXoN+ygZhLAUW1^ zHGIaEe`T1$Z)^L~TKAI{%@3U$f?QFfTZ)2m#&r(vy$c?z`j-Iu2p0wO#M_x&ijo!E zcZ7zTX}jPKKVUvL@KtGJqQKncro~ybZ9+m^k8iw6DrqT5!F*`lV{+Uhb_mtG)a%m~ z8Y`yDN-eI6Fk5aMaE-5h7y3fZs#mQNs3x-(6SG}sK6*9J>QN)VmqD4f@akvW+P*7` zVI+?6{cp?7sWh24N=4Zkz1Y^^wU60BR0VT+v|xEjr$s*L{)YH_ZZDQ&iYE35 zCOWhBP2URJ5IyYfU`A^7)-sMkteh$etUjaTKgV5&n7&g`2U}5{wA*T zpZx{@K`U9=N&yDx(?|BL4>;*b1JYqxA#x9?)s30YGAkYbq zs@%rt6ke|7wxl!~O8fjCddpoMQnT#>*V_1y4c6_FZWyu>nSB#S)dwLsdaPT+$DnK4 zm`14$RmqKB$vYzM=aFGASRAEf8CT9-> z)vj7JRsx65O*y80n@4K?xq4y`eZUaj{jh$|Y*}B#eeyc6_2JJMYNkr~@a;`%CSwnn zw#`Y>L<_hD&Z7r9>>Q5Ctdv|3F$pbjW{_a!FKy^2X@7zG#vy3LhZ|FZ5Z0Y-JD&__ zRu?Np>YGotf#GK zPtr%WbObcQ>1ns(Jl;Pb>T?M$25ZG3sKlqe+-r9e$6spg{-r;ssR}FOqL&DNImI-V zd^(vGRVrvw@oSI@{)yvN4{DELH;XyPR0hfEB;v9-OsC@a(x&Z$rgH$97b&*M)0 z{DBDdKp9i-lh8J6JFUv;#L=qCXNZzVVKuDR2C#O2ScPvq~sEp#8^5(mSf z7W#&ciDT_60f=cj`U_q1gWkN@2lhc?zY(GrItAJeAYNj z{WARF7-xy83~j6TTu_FYx9X+WL+b9PUIuyJt zfmBr*;RRj#uFAVQqVC*+VWCTt;At6b&bR*2uCAbDFjky;=+E2|f#i=6jqkMoGJY~qrD9j26F0^s!qKSL2TUl2Zt#f5E_EJe8;={&f7 zzWt>aM@+U9Z7Pms0<&Kwsg&H_^U-Cm=xC(cC_ca~dgbieaKITl zX!6~Prw{v6Y?1Swuv!iA>D2M#dK8xm-mai?v5R8YlPJ4A7iMh>y34kSRd(0waxm3P za4V{I(KA@P3dT*^ykmLjtE_DsnmBsv%!M=cIfs9~DS`)4^}*e+v*&hxThJlx_ogie zX!}AD>9gceRtvLI#8TGk*7+@4NSm?~XJ7 z$XJ=HWX?BhtvToWKF{-J{YAq|NoROEDE6)7apjGlDzeerWkqCFXB;c137AAB2MqNS z>n7QC*Q|!4dS-}& zszrzD*g_J2ceR@g%dnIFJu*j=ql>>wPf&KD-L^dU+v%(cv~N&sbE}H(RtxFJh|$1s z&`rtXhv<>)P>MpW*}0ovwGV2(;G2_`9co7S^Fb1B%`atP(+GUvRvs8BZrU(p^|q@e zkx8|LD8j)-m#0TB%f4TB1gSZ#cnxz_!m(TAT)Oihv_UZm<-XuIt(R5&5_|cDFksF< zk5&v>kfAMx0fxzgsTc+O-*S|3LgSy|IXej$H@7VQFR+ii&~Z^HcQ7-#Ne1Nnh5U6j zYsuA}c2}G>HTv-+W=bbFeNDlEi*6Wg8FgY6Xqo(#M?3`VAGFjf9(2r2%#`Hda^;6e7Rx znpv#0AY&I8O$HnVbs%u(be4Qso#Z>`F_rs;TP=XNd~v*F{wy1|)=_|qTXvaMbY^c8 zi3rMf!CU`k-Dlnw#ta`|qckOg9rKJ|+~a4n)q1)S!kM>lAjvvM}M=@1S zcH}A*B00Q_P&fVSDnKmZVgK<0+(yx@8Y7Xf+2~y@vN6DUko=U-4z>q1F5l$F)%2sM zOp5p`!@%Kv(&h8t;Jki{9E8&=f+Hkw`Eb*d&ogg*<<LD%)A>$d_))*VPLxDkU%P}S`9 zb^21)7WyVZX+XVLu+pfeWmOa0+HvTSvf;QRpY7nR=g(oYim?ezt=e0gCp>s`lZFW~ zJ&w6|AJ0-%#;;0D8D>m-gl5r+vt}=%r1(MzoI9=8F*#cr;8C>7RvAcNleDBIT3}DY zdtv-em?A8eCa^DlW|!$WwN+i{rcl-01)R9mc%1tU8b*-(X=QpB>~pn zaK|>Wf#f^iL_&un=uBFGsn+pLVT(z{LO$w^+4WVvb!VTAt>U?vip0-d!WMu>SqpHu zHTz2o$%E?3oVMYOO}C9soh4q`3*!P(r%Q^JOLM7a_@j~Qbh!nfty+F|e#z@FyGdIJ zs!q0;U|og&SXcJJ#;+sZ7a2l}WZj9w6NVf19i^%zK9;wPA%a^Fqn7w;rYnur3p#oK zlN#~=dFuLL1XS~*G?A*!*BNniCHf|a*)O%pkl)QZunXhC=)FWXQ5&SZoj6rM3F`=X zWZ9ug{uEQ-t<1J8@@QEX@cgP36f>558_*l`ReWi)Ao%?en5bZb9?Yjh_>r3M+`gWi zSvj%6u)Y&0@6~MCogf9lh!4Z7d#zi0i6Kx9mC~_^?>iO#Eowz>R|V_lVm_oM4fQWAt0gjPnbuTxTDemCR(z? zV74aN1y#HINAl)z8OSLlcS~Eho`Av^m1t@nrw^OxekB0#U)y6_j`xXetIE4MPj}8)z3HUlG`%xBXu|b?S#_@ z6aJo1{;;$o?)d&A-)=0`Rp}BB}dX4|R!qz4D?&7CAM4yZWf3ZtH zE)BVBQ0~(Tb=qTs4l{^Kb?Ny+m+G4DRryv6^Q%uD<9veBap zo;300GH?)$m_(#^3JqDjIh}?EsgOqF+58VH(4tvrKHr*g@uNO_l~g_C06^-OUN0}_f*>Z1|}5HK5Cxn0zHZL!A-t@ zIqtvuNqZ!QzCO$d`t2ir4zDuxvU?Q%*z4v=jz?FyeAD4~vfTfT7!wV^0m+^PUoXj$ zxJ6j~&dM3dEmj=>2Z8)*mMZooQR#p*C;CkU&=eV1bZJ%tZt0=1VpU_xXy+=c#(D`{ z2a}1x$4o&8)701OGwanoN+f-_C?0;Arv%&7v7nolK2^D1PY_?;&w%*ROj zm@V#*wgUI9ck)stz5k*qTSx1MGRVTCbuj#|MN{9&TM|3gJ1E%R7tmsT9o=^m)?yG5 z84wufaLSyRX}d~3yj%cEJ5z=^+KD!VVB;wteROrxGU(VN@9L!e@)p^dQm>CJG4VJ~ zsjugLpVAP8cc+q_yje4Cw#a)BviyvV($@>OYO$#v(}x1n*>JtA2vxloLM*#FLApL7 zj3EH)vw80(Q$NPuAKU5sT}^@Nko%s zmX7DPY<~2lPuaoWpO;5EOt(!29i4OQ>( zR=E`tr{#{*&8xV5I;zGQ5j z&j8zd7f6?7eaqa;x34)<3t`tUtpx=WtzqPHfoXqs61*`LrYV^1E0WEB1~o zJoA8|)`tCfWrY^JwMV+#r@$H-3ui!0b@Pez@zQA^FbQ6lD*c?3<_2DU_s=PLrH>G* za)fxQQbEB(#u?ma*ZhKVt!ENc_Y!Zq<{x<4)e8r8lhb|=`6)loxg`RsI(*ci&OdVfs>6m(lkV3A6sHC#G#6(B zzFQ)M@PC!eKNHTJ#-4TT`38EvF0l`rCg4F!y`#7nn;-YIwtoiZ6My~lwt(-(i z5&vvqq-Q>^v3=r;kEsEzJCfzF=1hk3w{T{urgvkiou9|7wMx7Svq{Zwrd&6!26?TR zUT|=qG$Eus|M6g6-8=%kW!3`IDxVSpS4?^z#?|EcD?z_}g1_zcvl2Bcm2p%zk6JN9`BA#Zsg^=@lVM& zCRtZ;nl|FeyPY}fJ`$0P&thIm{;6$T^+k}c8Ov=hhtQI=6&x%(l85c!KmAw7hJQK# zKN(^Fp1}Oy8DZ(7rb8i(_gq{pp;JHAB0MunExaF`oTM(qZ8a{SN$uI{C7N(Jd?oVP z!@f^E@7AEAEJp_~7)Y3^7&0^c{9#RGIJ6#u58x7QUPxJ9Gbf+lMJ2!N^oMLWv?;J& zE3+T!*C(+=^52=9VQ>889#>_3)u$H~m)~enQV*R78=PKQT*@=lZ9n2BZ)|)I|8cne zjxb%Nw@k3ttBS6Eiyaq&&rQwaBo4A-@c5y{pb?v%2Hi*r6x90J(lJVAIGz+=SF9qy z^WhE{38d;Rvx%9{$HX06*CCyv-y11y)f5VpOz<&X+q_9$FV6J;au96ZHd<;hRA+6+ zNLYJ#Y&ml$0c2|lb1-o%y=?x~u#VTFJr3u+Kr!l81g6y?w_{b9#MBzYCqzI+i*dkF z5K(swVQUC02}$H>;Y?iU*lgLi!TK&_ToJY?4$yEGuhUr2Xpv4RW;&hBR7AM8v^pLSH#4fvj|BXX&@zn$#r!X<0c_(g+W; zsL4^n*P8seOGT*FC?ZA09O%Dw7=U5bm84_gG z0Id><0BhWWZ3GSL4D1ML%=q|VFyO>=RmcqgxLAiJGPmi? zb!7xfGldVwMfuX|V$&E>&Z~0eLqjQ)OXp?UQHv>l*H_OFM5GZYZ!<@Zk3d@v3OTfbu!Ij+9cncV7qVV&fulC z`R!FwN8sLN(?=zvKuS9#Ku<&G+pQm>(;ck&fjl{pJU!7_%!8-%m`waMd?gFUY9zx~ z=Hgi@3NOj^<*U29lP$d$luYj!&z?=2In@>LQ$G{F7Z?|!Zt6qn<_v$xy5}}x>l|X0xb_?nAK~m z4aLqZREKh=)s8-4TgQz&RIoBKQ*#p;BFefNF)xo1#xq-{wbnbST!0nXOaxqiQ~G+! z738Lg_h9dlOO_@YX|aJcvWt^G2p*xmB>ouWXXOt|UH5BW#$W7wMO!uzXd!-ni8KMa zb3Yros^e(y-2$3I5S;h~Ex*Gn$6!yTEv4Eh&dKTKSv`89#xs&kv8WLQK}s|gbU!!G zyTs;FyIrQj=a!>-nd|~h1uH!Yg`Jh#Yd zu&z|5bhuZ#cAk>TtUl?S=_TnU$$P&`QCGJXY!G@HR95~xX&e|j7;x)ur?6!iJS2&# z+I++0sLniefmxPpn93!cc&({C~Q!nd_$Pt#FN zU)75H(4BuF1xqgB|L-8DbfT0LEOMv=}y(cTE_)?K=uk?xFzh}=Oj_X9oN)S3B- z9)SRosJ$8~Of;KGcQ3A87r)yIdjl(jLQ83VY^_q(dA|hBy9Z!@ zFbfFa)bm{NZ}!#>%#q)8b?z&=HyUXEx3Q7`s{#7LzjYD(M--X= z|6@`#G*}iI4Ztm$i%3^jg|Mhc`J&6y#J)_u+I&{)!4*uJv`_{~_PE$y8ssnDe7)C<*VV-|SEiHYG2+eQr5l@q=)PFkrw@jZ@$KLHY!T)pBtzRBdf6=_XZJJEO zMWx`~D0xjE@$^6JjTs-!#s6^UzwSt(x$%!}!wCH~W}!dsgJ8@lH2(+wM;e;{78BHe z?bknTTrP%67FFMABAd%u^XcohWITHef-%w1{m;H$?7yN(M$)|xL0?(A;A`o@zVtsX za*^taU%&XYmHL$ZT>vQ;Ou7R~^!3vffi$!rW2#55gm#v-?zslvH#h<+)|wI1wq2z3 z`b!DG{eGd#%ZF0`3yWU**)O@JE|bttTa|mqV54_ym71mDKP~?~ZaQicX`fyQU}G$w zx;5t>n$aZ>I=?zy9XUTtBm(y!2cAy);{>L6Dn+PlC3?nRO>eygt9n_7GJW;FHK()2 z=HGwnNXmqo))u^#sfx+AgEB2I$LODda6EJ%!^yJJ1pEH@;UNnE|Pc9 zL*GZ0T+DOIMI9X0`+P#}qk6o{D>4)x)O{ZkSjsSr#AB9Pj4A|#|$-CXb+YrqpAd3Zub_|OL z1?@Mk3EyOdL`tPC56w`XekpQsBUCe61Ay|WBn=}rCG76PiAvdd)xheFfzve)(==x~$IzAAk9c~L0X46>Le^D$ zEV5zBK-Ovi$Q8P6Rr53CzW2eG9f5J?Sl;lYHntjJpiWfF#MExZh(|(Y#OC~AZ8V@N zYFmcaY8LETfx};E&|jxp#9w&HuTeSrV87JGr#2@Hn8La7Bc(S#GbcTM+TecdWkJ?< zd|Y89=h>)?K1ycof_A5jcU3^weGTMdMt^o%UXI;+Nl|WDvsMWo9(<7`npqaWmeG6Q zMH$X1Met+$h9}Ej%Y)|Q&J7K!-YV(h2D)6$Tj(loyl*+?5j74I(NYZ%5WFTwZZsz2 zF@7?eE{$yc7*;5R%6tr8Qe^b;=z~9uGcoqMmX&MPuKC?aO&xTOkmxkr!!sqvk z)pqi$@Fc}MUGdy94;nj0;`}OKRn5^>~9h&m}N^ zmL9dcK34^glP(pNqFNbss7s%eNj!GZZ`MBx_kr4YFvQM?-rSW^6q>J z=vn!znKzFV9qqR^i%aNYo!=GVk+-%)M85C@HE7{M0(MfXmo=s$PD=zRdFja)s%gT|$0FZ1`tP$dH82lJ!a0`e}6hg_J%ND+*s?{Xex zMD_6jb0RkC4v^xlvCt2yVB^dl1Y3}@>f{|6Ue3N+*R2+@3I}Z{9(K5pT0Wv*O|!~trqk@cfTj4aMimnas@Y9{K`Z( z!k(8V7LCg$5S+31mF9VsnCSbWg}FYZhfo~=VUBu2nE^vz^@M$@o?#A4{uBv5&{7M* zW+RJs?P^|VRQ5#8r3jrIq4tvPTc-)TwNJk&v5snL8tk-PJ&{yapV>`g8I~Ws7-1gh zJSX&3!*5!_st;yy+{ojmrr2;)>?C~hSvy{dS5~}%Eaq(J@IxX>xS>F{m~Vxt8#Wp- z=f&H?T`{%nZ{17WA$xJkH|*{D4B*U4YiVTo?41NrXHf6);?4|t(M&b1rC$=Icb0Jr zp;N7<-aQe--&-C0!Ms^sS$FQPK1k%2L|o=r*FcV-kvhq=s#oIaQ5Ur(4Gu#PgsCD(cnG0^d z?A9|j#%wY)O{)=-m(b2K4tGT6jl~Gz+BctI_19z-FG%I?RL|QXMpt8Uaq}wIP1CMh zWdt1&{j|jXwEO`WxixB}Pks}oX|HW$=5=eUUDY1m7$I<%H#HI6vPZ%gOL~pm8rYBS zhpXH=Ri<3gVHKC~=Tt#j??`AE86>sLqR(|+Z4J9N^eWexsE5_HPwfh4y`hTr))dt5 zHzwGVy1XopwqD^}U{XtXD}1wmMLxt6E%DVxF~o`OrdK z_UdT<2Z=T&oI~vhKfjXluUIALddBrRS5wI)-vv}{j?;cLjjSNfPnh-4uwQ>j;rTyo zEO$k^xM%N`dZ^ZCwDpG1EZd-?z-^i_H}*g3QEi z#%9iX@8eCoO12n)Ep-g3Mi-U8T3@fA$|wX1y1$~yp=vPvbNTNP-=enbGM%n>d&aUA zM*794LgTfCL-kluX<5drHe!7;JLd(K9#70m>9bEbkP{|`C_7M1M4(gwAjK@6*+CV) zXNfO-!tAo8?K25z~asZ|cNA;LU8 zl$y)Z4I>PIoE4-W!$}F=vgtv6n!XJR#XOpbka0P*D{k*QY~(?Fft17R#mZ;wj0-0n z0~xS%YYa2CH{4>RY-+d-lrQ&lH@2cv;}iCFt{(#8keb}*3e`-Z^lqTQv`%z^HnhcCNI zoGqdE}CAM&9<3@+SXebAINaoHFn_t?&RrxniW%fFdIqzEgg*@x@Vkj?kDt^o?LSqCY zA7hSn^tiS?YBR;Zg=2!ARp@(54|_z?`D*xh?5f^=xFDCjStXHCm=P(H=J|!amg$QL z1>U*jczUyJyOLz$M$(7Jh2eD+Il)v&RgMsvRH|#VoOZH$83yygzdJ?heu73kq-OAPrtmh^l&7EAI?UA~tzPWF6`(}zlBf05qhBm0yJr>tb- zijAG;pz2%#oPN>V0$n9qNmRq0qzB6TpJhNTEsaYr zn>a{#c6Y-q!a2h^%SXVxysUB>$i{_$+vZQU#jZ8KBBjQ8AtWw3d#;M8XV}XHm{l#| z3mxQgpEp%aPR8kXpPp;G8X3&0{O<48k{I(M?{)_>geeEwug3zNTS>6kI_!C`beyD#CN-z(}csN_!$jN#1g!^1GoL|o2DgRknvCZ zPv4ETtBcvD@=x840(;6$K8qNV7wp>_oDcVbJWYNJXnOv1Lsj@9=iAP$J{?P?d+N)k z=L|-5?QWRGV4mckei)?E_aSSlD$i0bP$o7rM^oIobZy5ku4MRbt(~8x9v!8EN*mRLln9}>1z#KHU3Bb~eq-itogQ1^o~RSQrXETGo2n5U>TDt_ z%@jFqIz%~6=S1hdupKfS0hRmui5p}#e)NfR0sgc|W&YJjY#~HyW{AIGxn)GoK$!~KMy>m+=%fD!Js@fopQxEvcT+dhnw4w+}g5JLsPKtT4fTYv3wL!RStguHmkxEBWqyopD64&G7Qir~Hz{Svmf;(3QD9djZLxpc zm^7;>6bQS$(H8o)bnX9HFb$4!~0N_GxP-ueplryV#BIukz;w}oBeG{uqiQVpjCxsQRNv!J1{ zofpC1S_%&g=VCn#%Bz^eMTx&ZIFkkSCe|Dr#c)%?pHJe2*=l)8Oy0vI@Gs}4d&}}O z6**MKleZK&mW>hCFMnlo=G!|GeXD<|&0Oxe^+d|Mw>%b&ML)37MEDAY&=XrN8>02N z8}&!7y`TVd;xsB7bTJ^mE4@2CkR4pO;KOk$Ju+`g(Pkz5GQ?dQjs{)IMV&{wGV4j1O@B%5d17p#eD#A>Nurso;+649`efJ&?yq zA#>S9i=R<47Op-1{^&gAZG9ON-lKjKOAv_rD36)HhAY^Psej5O+{Jisjv)lWP8d+T z^hbX4p1fKwV4u6VyrX2ojL6EM&!@A}vvrqSm2y+<1ZMKY;I*|E%PgEc%nXw& zvv)b`dVNe?0&N-^>a!$FS1S$ZJ7aclI61E0cNLN$MkGN*kj7tDqRJhBznP^@Om{yW zbfmr8C2dP!9z-{;ekB3ZbC-3dN}b|js>Y=S3d*~NipDqxU)#mGDeGox+sE@2lR*S? z2NQy8Oh}v~W>xI^3w!ejXDLUKS`O!N0iFXqc_0Mu**+3jtaJA@JS)vEwL0$9ZPts_ zjJJ{S4!J!3V>8Njx=auomkR2_WMdpS$)BetW6BCJEI)+Hm9k7&aBIUK-y$FgXHR~- zj8x`6pynr{4)2Qp!v6Nz@$HSfihjoSuSQEQ#nSOWjuAKYcH9az>~!x+l&*81+I|a$ zJswitr)O6{A0ofVwE{{B^@V|>?-yVZ6a$=eogYy;HfnE!(W!}TaN24?wK7e&i1->b zKjUyFs%ktz%cTM^?5_frYnmA&S`9IchrF+Y%R_3JJzA>X_nkUi$C~~m5vZ90mL;sa z$f0*L&tta|#BsR0EVe7Qy0Cg?x%umO*EaTuttm%!1D@I;V*FQW>K!Jyu4h}x6S=V^ z$fJ(=&=U%Vv;Y;B6_@FgixPfTCOHq0oSe{hjvVrxQ+TVO_c`!N!Gv`fK2TTJn`)&+ zb}<$N+;Y*Fg7Pai6s;|8mz5CIUOU(u%GvET=HET1f;wAWQVx3nU>hA=dJU_EziNG( zvoUASsd(b6?wo-~7OERZ9B+uxqSJUtq9pAI>Cm)cMkL=!A6{0*xty(;@D=Zk@FpfD zF$#!Fjago^N2nuQvnTey0=xn8?gY00uIZdUtCp7ITQ*_LQb5rgMn>x*2MugF^xgzS zD)fsVDb+|PQFbd{GN#yeW(^%W!pNc-4Y2A#z)u7Yd$lx#Jn{xBZ4IC98|W(yTraH2 zl)xav)zJmWoN|NW0@=%;+PyZbpvDpm2CcbWPR%*w=3ipSVLA~d7cm2QCxClrNpB+h zWld&g4qdMy+7Uk=qFebezXzLpRX`Z3&>&t1G?et z(W%15mD=iw3<=svrZRhHdU(+H$_^jB|In)kbT++uy1Zv#JA0a zO1%6Mr74MlxXnJB?nWCll#5BqvSVXh1N44`-nLaU_3<2>o=vLBVNUB)u z*F4#YA6A`R*1pv2iLSE=9I}i?%-X$4F_o_H_Vd&?M!&_sA9YlopnJkN^te3TA*;Gp zlxYylFH|`9qMb6=62ab5q+B%pY3&iysPcpcXyl0M}*ShByuVaoE~%|_;-trrRlfHN^Maec2b7d-tx_Z7d)6OQQ9 zjGJ@SG*xoVdhavyb|}G(o!NSj;ei>>7xDbCFEb;qZc?g@&8@;is~jypG-yz;v zDKXEECUF38{?&hQna@^l#84lP1`1wGD{4Oj7?p|k9e!z+je?KQ$^sMiQlYycdqH9shO4gslsASz`KU)oDMIx z$}n^299FbB(Qwzlt5Oavd0WR#dz^?qKETZ!XJa>SCubT0Sfz?>!8=B6ongw>3NMU zaCL<6#j@z@ItT4kM#<;Ex@Y1`kIDdCOpJpd{;%dY&YG2yh`wez^eDICL3MQR-1{OW z(<4C`bj4a>kt&Yx>zB-qOTnETF#3HkM$uZU&Fl7bBO<;brVXLMa^zc2-^9@ue#0kC zXQ#@9V0^33#>ef=@kHA3R+*(REfXaX&`&`LR3SDTQS1!X&t&G6DG@=6Rql)CY$Sw- zEIwD+0+y)cppX+ghZ7d=r7CxJg)4}0J2h5| zBFZBxN{)@~cFu2|6HJ~ow(}%N{isKI(7x@i6U&I{A{nws-Go(H!c^-(D66v8cO^EN&aq>Y6J-^{+_cIET6VS z1hAxO@9J;0%zqX9 zv8wtvJOV>EkHs@zXWyoAYax0@tk2)4{tqqIf6>gOhE^}WzW9pyZ(eHj>>ryeGQj^c zvCO}(Y)qjQ#6^5saX)%&r=!Z1iB$)y=PJf=ER z_F>Nfq^q7IEA;J(n&pgaZqsaJ5`o8u@nyDIp}1i<1m(@C4d6L=;LV$A6_c;KK&h&T z_!j)xz?hx1M-2^Cm_^@p5cU34bU#wX)ZW>1U3_WER3Ofk6z0f!t9x$i(oNvn)|A70 zkyH-0M2ESib;6s;C0@A0b!Hg;W5mu#2G-sIB~dkRIe*=za6Vc*=NA4F+N6N}LCPyW z{%GLNCZZGD4b#elsysAMbE!tWPLln~IJ8EWp!RGhRd`6M2U83p4TKBV_dR^GA>iD< zd1%sj&m<+M&<{c{&3ZLe?64Gp=yX9yM&gqM8rNK6W0NWmaV}Wwsb!8rZbRF3Q;KYQ z#%^pG!vA|i#D=EBw5jEnmr4q`@ZswUR>}AD@^U_Ay*Ei&nleEG!JRJ9s*)l+vpcil z{O`$i!(sB&2Q<(nr&oH|)hup9%R{QmnPK1BtXupzLOgY#_q*8wccih6#W^)MLBQJufN?psb3!I{;Ab?0Oj-&UyW znV#RtOkkfb%t+WU1=oz%A~_8XW$h#I8$!r=CZ zENXOS7gKtwb_CkJnGHUD_TCDhCR4*vf8Fif%)l-fsoKx%7jMLHGk+d9jZIMd?YllK z9=BJ=tY{s{no581ri|$A`ZYXxr{g;Iw8a!V9~LcjQi3^$ph^`Q;%6051LXzu?h9t@ zhS_VIqk|`--U|bTX>1{~S`GqtuU04<$2zK;cF!9ws&oYE34GbN@y^_nXaa6KNpJ&{% zQI(m!_Avf7!FAQC+wZUqusn32dBIm$e%Q4VJ@08M zi^_R4GV=if69~ykM(oL_dmuF5w>~?GJqZ(()wQ_=wJ#o$XFvBWQUY2nt}FnVoHf%& zO%#K*%m$rICKfDu10166L=0wn(D%fu(E$)Z+e0;2)L}39UP%`BkrLiOkFF;SBr4DI z=6M3z;%A^l7C4o4;Bo7b11D?Y{0eJ9i0#5U?i+h#Fxop$XxAmMs+C81h2Cb^PtSow zE<3$XE{!2&DQ|&l>)F~ig$^Yussga2&o9BkSOrP1%k24O!^6V}u0StaB|zmTAo+a* zj#*EV1=No>h1LefWD-Kumj{QZ${zo$ucl&teW!+li&_cs4E>1?i*D`^>#YI>1_$7i z%Ub37eYrRiuWhegx^140o3WpW+RT+K%ZyLLDz9mFY5{Z}c$UB$}OG zhDF}>TqHi^Tyt4_mm|9&M<~trC*aXDS`iE0TRSd3aAN1EE`H@_%=DTI?pwNnc{SpF z&iw0avvhhRZQ~kON~Ah!8Qx891$+1{WvhL8pf4-=*~I6T>FbAurK2qs1A%V!O?Wh+ zD7Pew6kiScJZN>A)vfrT8Fu5{kA1`F5&`h7JmqDN#?GK12&afkw0`CC&{4e^X)1~P78$)7!0Tj1ab+Qm6cXObt?J2QgiDG8x@<1> zBytUf6H(o8%>%fqfd4k<=-td`I;rLIc{(rfdIZamqFo1remmXwg>41A1WRE)i3JqEM3C;m8z+^sIvm1mJJxzsp55K{f3taMg?EP*XX zYPeLC?a^&nZWDItTK6I6m|UBrs2YsD#;U>4p67I%hW^j*MdV2aY?*INw;X$dB8!;N zH#Dj^Plf{FUH@G7+SrLztQ%X^Jeb5?OevGKu1%E><+oPm2KZ?hKJZf)?wT}oMCZ)p z`I(t>VaJA+G@0C0D|K)}HA{0fSX_VzRksvv;N%Y*?h6e(r**MYbKh3MPlrJo(&BIf zA)3wTg`iXe^G!lKX8s8qLb-~lYN09dv6gWDIEnxHqWFEW=FBNZ3%;_mhlq-=N-$H|qO$lY>T=lo#VQJ#<97-^@^ zUjh7@iJ|6BWy8)kbsNajBfvB7C|p+W55iz^yH<1_n0h)*iH**U9y( zNIAGv=hgBMA0u-&_LoH-TTqlUu1E%$#f%)7@nd$o@)I-8(G zx!8Iu&$6aXgCU#Kjusai^)4C>t3QuPz!Wg}`;xNNV@4|VqH6_sb$-ff$LnW7nobSp z$sz)T*XxI+$poCiU2d{hog@L{=gMley)0nL*xh};693-$M!F-59@rl?TBU*?4S&4H zC4homw)IUfh?_?1D^D%FY>hG*m^UL{6emId8q51-&oMKDAc?y^Of z?!dgwoGy11fVtUgd9As#^*lA8;D)W~IMdhV&hb8aeZG~wqOm^gawRua2<6u1)HelQ z;`6ItnMUSg_rTo2?qW+rqz@49mZNpNU0JNVE~b03s|3o@wsm4(gp{Bor(gzdl=0Hg zleLp(`E(0C3FW-SYh`S_Jcw-qaN66_lx0K-WboowX^Z?LZGq zb$;FBtt~@J?0bdB+jX|Azf5<&eleS2WL?s06Sa9ZhU;=!aU5?LbEHy+ss#P23tL*4 zrCv&k3JNkA=7?q40~-&!zPwxOA70EGYCe(i+WbLISEzJm)%4#7@t-zk>bAyJOXVs! zTn!2y&375o=q0w)EeLFzz_m3$R%X##?|UEesXT1GS-74sQt73Ve5|ia8RDR4hN1p2 z79%^&GG8i<9>a=>PQA-&W(AhN_4}?l`Ot?Uz8~N1KtVhbbE4X+h0DtFDG6)*5095 zr;bm^z+SOR(_0j}bd^K$WF`ChwTIo!>rst?QmGtthmb?C>fZX(58-?ui{IYq-B1@` zpN7w<_k2s+*Egs1zQZIy7lzhf6iCd0N8udwBsN;04oQ!@yK~YGY|OIb6?YQ7HC@3P z2=7IBr|l|D5^E~+zKmhXmQ<6yk9D?qzR#`Y)0QSZ&ES?hyo*#&e|)Ex%(rTNM~`re zQh5gl`SE3SCHb%K!`EMF)R~DO-322iu{$qW_r0AIW>`Jy*(XXqJb2nFbWWW=jARP!Mu)&07m8#9ME`(%PV%BIAf6I(K3 zysu~?W)TV@Jbn<7fL6$SH|zR9K~&8Yo0Imm=8i@%fv4(A`Kvcbx2>DvrQNf-_pS+J zHtt{O94}O$VkrM!?YWZY@R$Ab6WANZ#u^aOLX z7YrsY9|HWFm*Q96*ZM-z^Du)T<}xzzytIiKo6-CD(bH%9 zseI;vOo~OH`9e!G-SggMB91fV=<}wc-64zW{LJ;cuJL8@!xDrLk9Ez%5dVuCINYtc zk2i91um%IQpCdkrv*zsG|CfJ;HYFD%Ny7*5)i{x4a*b_{!Dg({%dL>hK@XXqyo4%c z4((kN>_I?kN5fC41k6q2LoH{bNmT_^$g)ZuTABm>46CtZw-!ZI+cg*AZ#rpnClDBF z33CFhlT1gkLh%?uImC*Q9DhY@d8FHpPCBgI5atBZ9eopfnGZbgV?C`YO$=kUJl>E2 zeLo^!Z1pvD>Gw3CV`jVjUK0rjNNvOuz!zf@u2}LDcll`lZuCVF;z6w6)ezUJ({+}N zaromwj(OC5DrTNq;x3pio3Grz*<;|>xum=36Y9V@K5?^2gXSveAN&7bKmNP;250~s z_sxQv%oMkpJ zuy9#-Q-fDJ@@ra-_^k$u)ptKS4p%CrCPR|Ua@}wzj3!^eTAr5c-wzoR1yl}ky-*Uv!Ku~Tv9UQ zb{=K+Cs|KH$)TF4RQZC9MnMsK?s`d2upZYsy!cV0Mr#4P$U!6f^7oV4fQLKpqoEVV zwGjf-2(h}uxDl?Q9L%v?IaIDJ7@Wa91g<-3%${yc!GWoBDd0Pl^sJ_l@`;r9{-qh| zcE60chwMAwMW=@x8wpfwD6a{rTrD6{Nt|^vJMZ$a?x|0=cFm^1aRw`VroV20ogLqr zCh*(QFa%mx{l^-%IjGsZl1Op$(P7+%j;h%`o z*r=vI+WQm@>tF1TS4?At8Euo`nr_p{8Y@I=p%DGTfx!;77wjcFpEhvbNAvM)ALo&? zWSeIg%tYhX=-^CN!w33ii4XQpWRr=zOP*ATm5VffqT=ltxI zDQONBNe0nKeEk2z-g`i`)gTTTzcuph6(|A>Yx-m3dP+9`(x7CRTAs5}wgeS9X<{Hoify<#q@&;SUaNAq%&I zEGSJykeLdxww+3!$5S*ZzfvZvfX0t6m-JAH0OL`Roms302_igTu9AYgmaeiURYh<0 z9gXT*j!4<=+2i25&!*7!LZVs5=)2#_2w20O&9#=sd zj#e#L^3rgoe=21<9F9}e%To@!a%o`csNPerG%5X5*HwCr{oX?>?Pja@y1gnM6%znB zcUPzxZY9^Kr6&|NakpV%MQ_cmV*>yHtfPBMcD10%4y83o2XUP3y0P88s->JtIZRm$ zuBCv=q6r!O@rM=Y1J#M?h4=Q+OlpF>;>s-vO7?PIpJQBY;$;)rW%zx ztQ&1Qld)Rhni3o?QuY+f?w&6@CnVI^UYp3lyn|}WHmC-}wHS5sLvnBq-b5gdy4>wM*fFeEY$b<4{6O9! z$P}|AKtC*hFA(Qnzg08JG$C`q3aF!wd5cw5(c8C;yO9?&E&}dwDg{R6(l9IeRs~UQ zkAn|#4oi0|;9_%U`3@fg9J32HFAF-kBkpTE^;gz33Rm$44wmbG-CX89M>8f4)^L3; z2oRxX)L7l(s4mMqzY}eg#nd3`!;E?qOnW07qifD2yVW>SmlIS?mSgbs`s-p4vA>G!|ZV4b592`5q)& z=`|Ya(A@Gp7vp87zbEx*{x-QwqO~X)DZ9FD!@y*vXu)8o!lsD)&hq1QGp)q-877qq zi1c#c3?&<_VM-rB?dDi_)Z?=JI@UW6n(StrOIyJ~h$VZ~2$sOr19c4=((`H65Iuls zd3cT9DJut(WM3;M0mHAF@&QowJ@$sRmbe?PtW9RO2 ziqfgiNawM-SChm@s^t}^;(vU5oK(yBs^!qESOdk26V(7RW>x`3Cbr8MJmxD3ZOx2` zjKc->&~6c=|4eAvb#=v$PKJjW(b)=_4Dd zo5nRJ^gZj%c9;!WH0MaCfATPI>8S&GN7h18QnxpcC7g3$ROuH%^bC_sX8uw_#I1(zw3LbQ%I8) zM{Is)>1j>7p%d~R+T#vg@=&=({JfPu%*=AAqW#TCKm4wg&j$Hj^%+$^?~@aAL8_>O5u{$ zx9uM5Em{3qN^&lAQrEN!DR{}rsHByPv5Z2DqHA&zROQqVBG-fhELAa&oU$h>d5H|! zj|ZSVUuAcOTN(^ga{z&M=60xZxxrWrkz-DBH94LU@6P$;egPCEI<%VOEbuO<8;W|t;B zHuiZM8q|VBj9C)fWddkSE#T0jB{IYHe#Zlv=QbP^VfWjYup<{*sTO1$Yk4-Zy*9TR zdO1o9Un|Bo5RQHcxoS1?;nZQG&Tv$t^YfvbEsiolFMsrNw?dy(gWNNAb-g2f0pvT_ zlxnJp$hhTDTA0_(_HT!lE@4j8D%wlm2Vj=t3GLP*P;U}pYwfdzIQ6n)IP|s3iGi;h zpo|vB5PZdUSP5uFZ!~SmJq@!La8Sv2$O`DcCE;ir6^@p&bvr2 zB@_{mll~E@`FCGR{z-x_udp|K;8osqOLiP2tyIr8Rek8gz_a#l^HbzJn$9lwNJXDI zD(6VZ8B}80B-phHQqVo+b-q;c3Id=e7)Qul${hL+JnA*73dRSrbQ8ym8!7jgHBu3W zU5}jAHT2v7RWSOI2qoYz0_T!7BNbiSnIHkC^qeFe>yf-$0OqEBOczHe^7SV44h2lN z^PZm?#EZsEX%&enkhgWptagQ8eRlQSGmyc#@G4<2qjh~Q36aoQJdy)$e! zP4R?DI5K{_n#KyVg{y?&8dq$k(&7RO5gRgC19e4w@)RdM&&yW9Hj@~;w|Dl`)W=+0 zoKsWB9CvV+3ypwBg#ILYN-b6AAYK|KRS zNat5ERf-a2z6c;*ySHZgv;Dool(s?EO4cm;EatQ*54O#I-40fCwDJ2p1+Lk1YR6C$fMCk;*z$4rvO z&V^5w970PPAy-)(jB6al=Ebf`sYk}PJZ)@ybI-DX-$FAvM={cM=SrF+ zubdH1=4Q+`!;oZWUrS%P1Z4H|96wFSd1XTeArH9M#XnYBHG&7UBJ0iA zC}B|=aC~<&KHoT0dIWae#)z641Cf6_*j1~VW(d8D-I|V7K5((%%lavhH$1J~;t{T9 z7g7ZDNbZ?7fDamXn}3tO25;s9OEPIPNcFDdpWM16lLqRJ9kHbZq-k z6Q}(njK?t0LooYHVjLV|#77-FR0RMRZV!> zV9Ai~9k2sjNAs4xNg(C$dpzV9!Hv?v1Jajzsn2hAPnRIy=tO93JE0$7SL0+8vIjSG z&I|8_#l-npS%$0VlhB!s4r)AFuLc>l@!>?O3*@61MW|8L_3B!)j*aj4_h=4_e-Tsy zL|p3X?`Gz$LwhRs%lB|h`I4J0N?aX4144Ui2%zWQo0ZEXSzDfvE zPxM`p`bfOGXjV|&obs7@yOG(LGyd|2+P0?ZQB_gS#?UWR4aaLMz});z$+ z_qo~*-_;~!n72-087C=^isG!Bv^Ml6d2{g;g!1U~P9{|KUBX+w1|WL*b+HhIHT7a_ zTR@&muf%Fda|^uqOi+y{4O_Lk!{Dz^!T<)UOiseayOZ^e##N_noCYf*3=8--did;n z-(jsU43xrvaWx~8iJ@q-151Nc!qn0b)|sGUbrP?KX7@bZhH!lloVI7lB_VZs+)(FH zxz=@+oL>Yvx98{i4?VqktgQ810q-jfFhYXF_p&2pD1R+G6P{vlu0v{U%_8_K$b zJtRsqq>-vG*Ry!(lPAqwYia8c2)#5~t0O!9M$hu~VM{*8rJ+OhOd%{zNJya6PU-F< zrywUU-}gRj52$3J()QG*1Xss>&7iFHDTw%aE+#!k*5@XTK>;KXr;l=@Q9#sM=wWJY z6j}$JAL!yCqp45uQBQBLtL++v;s*EFNG-KaQ!1KDLmW9Fr8Me=s=bUC=1l+;8}3C? zl8>to6&5lRnAg;MH?w%@FuMY$CH}N96ctp0Q_`fuPoJldD!I0A~_R`JhI&$cey z8FRx2iVP)ZOC=|0*w-`9H*rgMc|;kUpsMI_?mq{RR&~9Q>O1>FD1DBNS7j{3cU>?P zsU~{Ci!xOSCy4r_GqJ#udkk@++1Lho68bO|f0V9v#lrW>!}*cWs?nk0P}PTq((|@r zM%_Uvi~`yLatQExlpFqDr36i_5SCci5G&Goqxo2JVVeL=W5Qeli2< z=#xq*9(RlKQ36mPJCv?)S~GiDG2d!Uiy|Buv@ABsM)#PW6!Q)%%W_y6UbvRyxl|!H zLfs*d2{2YS9@9y?FApTA)u*-=P>)fzZZd{I^a3|HNB#FFdf{=BkL9t?xyBQNi19Hh zLN>Cf*5UPX#d5_0m)zFN%@AT^hG%!^s6t#O@UH*pG1KLhUj(GFHrDx_LPkH6gevq* z945lmF3Zb>f%V>A>HvVN%=3g^WiP{$cIaPw})R3Xg$w-_QHjC1hj8z zrxU$ojw`l(SW80!nGjQzcV1E@$$wQM<8T{NdYx)wTK3LNyB!csWja>CR9pG8-$TDY&+TD006iOYFNeG}zCvR5UScpflXY0Fip3S}>`~zfe$Hu@<77 zzqyVXC^a`8MwQ0dN9ejJt(D({s#sEH!Q;^mQ>sJ2*hh0-@M`= z+YskCcNB87%;)~xgN8a-#`x40^o>=S5~% zk4W(lZT{rQWbW>QeTb$#P_-7M}$+(3+5;xNlyAq5^_(;MTKL*%aT-Ar6>wPpMrM#vhe% zSW}oQV0B9LlLn^ObdJ+Vk1**~=#%!Ni0QL2=+ITqKay5cfA7*N`|bM_=c}-HjV1Oe zMfnMuy7hT=j#shcWJQRLhl4-x;RRpcZ*SbqJz6LG!JuM2k&xGN?iQ4dZPe0vweZtU zgFBU^n^5gbmUFNjc{ab!c(WTODuh`!>77CKPwc9K_qa7)>8(gaoW|%Vd zgC#`lJ36i59?FB6Ng8F+%T|LE^mA&UuA*=uxy>(neQi>tt{Sg00hqudxE)Anvfoi= zxvJ65GHj*5e#Sz)CctD6S&_7<9)OB=E*n_ZS#E_(x#H{>7_-eJowR&>lDO#^1u4lU z63PIRp4#S1Kpz=wx3|#!5fLm|}jzd&xl;PtS@>v2p6s#H#5udwtGwcbYj7R`A9f zvuxw?FQ$v`0&X5w_A=#BiK3N$JntCtaA>E>r^NB^!JVMEHDav(@nfpCfKo2e7IMOZ z`%oPohL_U8(K}9z7vxG-ooAg`M$Hyph_x0Yh9}n=BG0AZ!Q~a#y9;?JvnApxaE7dC zpGlm~v7!oWRkGflBtr7t%g+xYnVo8rnlS%)7x}tD`AjcX-r=pQ^H`ybbY)*p*721n zEQe`D&{@I@-$*(Nb+m=0*ASXSzR~bK7q_2Fl}znc8QDq%Q6^W2Mu6+0TPnl;xfIu) zDG}tE@!t22k0Y72_Q=BU@+Sk&sCY7sei7{RbWdugOWM)pSpO{GAVyFilFOl1&`B!O zjIOUi#8>OT$N@P=X1wSZGFhG^V}!Mu{ZSFRLAnZNUL+eXI52jNCI(0A9x<(xIh>=< z(`9KJ!nFv&L$*jmMW(iR=pV*(ZdM_O*~{P1sUv)s#}RfLnapPf`)hFhfZVwEf_*iG z%g39;L=6_*qj`hma%Dp#B!cgQRH{~g5$GmGb)KF3WY+Fwe1#?ex1kBTDmGtrfXGCT zOnbfP@%GC5UnZHkw|n7%VG4t14F4B*qZ&9SqOF41Cc z;4EBE4XDg9O|u;WVn4D4FG$6kN<;G<>BGjGwl0E38m!h`1Jk$ovz2AX&)E%zv&`=i zm#XD0P@M&hybK)q61aj+vdLZ2nEj^Exy!3`r!^sP83eu2V>YuGl$p}V4jdjM*JHlQ zfn}>J5CQ>2Pn;=e6Pm63(yi04J%UteRgzNve4fo$n59*ba-zph!n^XVJ9dAO>rr?) zNVJ2A6*cQsm0&njyhgl&J@jrNi=n4&9lv7@*a4TN)SjoGdbi}G(s$?HF$*7@J>OmX zH00#^s?xBH8WJo`Sp+k5zy3O9sy&g2HU-%1h=(>Q8?WiJAL2mRPw7k0^8R@69p3x0 z9JfX|?$NJ~zIxr&sno$$U#BxY4+k2NeU(!pU{w~w8;Ka(AY8|L zavILG&5yBMtt4M(W}cUJ8=428iZ0Ko)@`IQ80GgPYlR^HiWP7Ll|ehQ^#jI4w9Tn% z3Zk_VG*!K9;Qh1&Dn~qjqLl|I?FZhk;EdJJiCz+29EIz;Gi<&&+u!5Ebre@tJ-B{z z@5~qvauNA=4ROB_|4DH2eiNm|!A!6^J9ZJ1rtm!}NH;K&QLwv13Xk$(m{T`>Po3A? zVrBVt*3(oij+NNRT+XY%6Ft!h-OLkE1JTPMJ=EQ-uuqr=w1RYRclYBg7T)B4*>A#=3Krmgh(2 zdFfg5MeoX?>)J6PWeG;}5=}4;<$D9$?!@!!n?!MjyxbaTq@v7I!9jCIU@1t(g6*qL zI!VZin@EAX(T`N=EyWD+E#&xGQr!0_SnbFWvX_=VdjT;}v65vqQm|sGsEX}U;lTQ0 ztSm<%a-embYMWGDV*6LGLDe1Nn2|@$`t{M`9_1uPlw$KT z!AJFJC(!N&oHD}BFi#b-ki2+v=$AU}KNnGrr?A|M^i^?wqy)_Eepx}kk zwgJ_{Owr@@ZPFU(8=P6a?>v?DNj^eNOG_GwaL<7jgQKSvMlJr0wENC6(e~PkDjf+< zIdR6)TEKJvri36>@S35OZR1bl1zH(7Ec}9vsA5rANpQI`EOgPDC56jFuTd*YGjU^` zZ-~s1EL10W!?O|u!@SiA52D!inyS_ou}3xLbq);_vOg#+wo%@}jSbnj*5R||sG<70 zrQA?spec;fUKv}=nQpKiDm_-fVSc;%M_(+pla?dj?WA-$V~v6lpsfv%LSekZAvh|l zb~UZ?nJIf5%9-+Rn3fv^-56<7n{dSTNq8zKTiKWrd+2TxQYvLv9%wykct`LTfoFh5 z(TFwAIl@oF&7N*MazV~{;9+W@dpv4gCNY7ft3MZ0e$UfZW%)PEzozhWL zWv@zGp?7$oGyMZJ6WoY)#(uJ+9ZJF{Kle=O5)d43+A#IlOtjt-^84}RT z#td07f?4L31t&qN6y1x5Gs}-Cb1Vk5OxyI3Ai5aPI+?mjbz9(Skv41gS$h63>wFc* z<{}m=>roU!V$kdve2asH^}dX9`&ecw*P4~}@S!k%6TH~nXIaIC=lRo(ZNzpCdRU)+ zWJANabHk~zuY^2IT$U^euFUZK=6gDgT#)#WS;pzRwiv4bbd|0*-gjGvjuo^dM2cg2 zdJ4Cv?WLBzCR!6YvQ`n8-~2uIOH-`gfPGg;AIpQVy4*SzRNkOO|J0~JpN#da724*( zonH1pKlTaYHMW$?bba-#y=RO3Ff7h83rg$Z2|{Amgioe{e3 z;TqIOxtwCmGcOV@$GcjnpB0m|YU)@8jEQ@DTcGQ>)!9uQO*i3YldOom@q52)j1n*g;mW5LE(y$Pk>J~RS@^)ns$ z@~q<&R`2?VXduGJ;2``>r*rtgpyh@q3?7<9xVA>+n;3%#;ill1d+Ai#nVRqJEWAP~ z8*hrm=nS@i(3G}4i>8`fl{%Tox(1!?W#%*BCq0V3sZEA_OQ$LSeFbR*+W&02z+e=gkJ zBl7+dLW#$l`AD*x39=t8?GDBr07>kG5h}(Y;U?`4CF&zsSQ-eR3Do3WjppI%R5utl zqVbN+-53k6)pO#MMGMg(YfAyOy=s!kQI%fh-u8{$Tt;OXaMhGHI@MlV)3--Wk}Xf~ zyaP4bEamwbf)9{gBaW{E1Jn=Q-%3n`76|Qp!gX zU?&t*NPZn-=|g=_QH2gLE?*T0P}3=Li3LTbZZ@~tsg9pTYtJYbsRv|%+QiE~!8V5yY&enp zyDC^)ZALHK;J09qz&p4(EfxoZbLco|w?e{qu4o6_WDI{|iA!v!48oLKLxOXZOqv9! zYAY;)qZUL~XY~@FBE~hQiZPMwhG5l$s24Xr{HCb=C!c>JRr23U$PFVQ5vT=xk%{sk z%iQiKU=UOI_h0xQZ2i-K$^8$G@qf?ypJdDbe=q3&&ff`iT|$RCzX;5;(!`R&H{ZWFr1~?Z zmgVPfLOFLhgQg=^>3tY~C%7}s4wzgb@WPslm0n)!H~oXKn0(IhzFhqq9k#>m`Dggu z@ZSl)%Pg``o4Eb2LHyHPiCfSAv^J3YYgSbb31Mrn&wK0}Pm?jO38a~M1oYu}Jl}>` z+p}#w7P|qEW!fieLWs^W ztF{fXx}HxT5SHz$n=O8R!P3(ulMwxpAeo!_pZ&0#cC@ceEqDIy>*Jnm`@!{9kk9fA z5~d%1yJ!6~L?00|21=#8n^_ne)YYXQ62V)bMU0EB4b` zZ4K`(qUfz$772++Vc0~MI2pUoZb9=ZSrge^IXS0XRP!$ax#tuZ56ANK;L+U$3#AYH z+;{qy<}mr?^~(d?BO-#Xn;b#ZbXU4!;@K# zci*E_G-UNRlebxGvYY%kk5x`+zvl_mBfq`dCZ3NzC$AnCniBI@TGf~}optO}8R`=$ zoE9J1?%1Z{&QS7>@oud#{nKew57mV0JlpN2maE;Kzv=QO`i&`FEAt_nLzzQOXPsx; zP#>Q?es`+$$M5Xk{K2DLW~h%V%`w>>&pTp@*GMw{2g{FuKX~xs54jwKPS*C?Z@!!R zTalt%4np!$%%}To+)YmICiLetbv4cX!6OuZ2r9lHxQ(}QJpMya;y-wpLdECTR;a3- z5z}Lre+cUSJC6mx+6sO|z4a;o8tnfMu53G}q@R2mtjt^zs)IC>_78F{tMlxf0USqw z+jFvTY75w)R)HjsQY6n0e=Bteg*ZDBJ@)O+@NN!_Sv2cP{|s(dYeGbr^IJci;(|np zcrHha<9yjw_jV|1RZV*I+X-C?H;r{4$HrVuxGtt5)m1;*yTgz4u0>BHDu}QfC$k*< zmcGq>dL6U!hV?NI10Gq#_~>4dS5)DQ^X69{^o7tq5%MaL;0#S=b7F@+YFg{NDaT|C z1|~RJxuNX-`j`oM=M1oLQp;l$#F9IdoG!tb}Ztlz7A$84P1VHXNp_ghj5$PQPaqZvc zTR6XGI)E>Wn8w&x@Ay$tGLd|wWcfl$Nl9?S@52@2*91B`1iv?6ff0#)R!P`Y~g}iO~y5ppJ;m_D{Velg2Oj&JSGxRs5;s43! zb~PUm>h@XM;%4qZsA(tjJ6*LO?($N%(^GNE-?9u;kJ-D4e{an<<`B$LO5yR)Z^>wDj?Wqio4@MF$~x0n=gY==y&P>5aT zH~UWC;BU^{`Sx!OKb3yX_Jv;rVjT& zKISskU3=}`ToeEN1Y5YYKW)30GrSai4Z!ym8mo54e?f0e1&y7k z(@N|xfI_y6&m0Y za+q+O|D$Qhhi6^!w3^Z`R@ajGrcT@o@py+TZ9)AcfjrsEJ!Gi}enFGeb@HrQ<7EJR6% zxjJX$yUJl5gE$u=U7VsPr{?;KnbPjH)xVyIKh*=?Fa^9JRV2H(u2k6a{==a0J?1sK z+&5ayVa;Pj{iULE7rP^Ws-M%{@4BBcco9ikW&{klkazsOw5?-lf{>lYE{L%F{I~Ky zc0xb^koGJ@irXSk4yw{`WM<78zp2DkP}!;_^6TB*o>hO&8=1-e&`h0z!u_1EXtk%; z#%9dT#@RmaT*9nZ;u5?i3%izZ>C82{%>#teyum5H9C*`aOheMdIFIp~e6OAdXy^s6 zEYsS;3p&2UVejZ|6IIk#8NJKp6~qPyHEOKHs;H||&;~WW%EsHn6a@7R&YH==U{-0R zOrU3M(Hf`Sxmz^SWQjBPNNFAYMQ}Y{8ZxRTJfBg9MM`VbnYpQY)P8DP02t(9{^ z8k*4bJ!A4n3E;TQX$R?5+Q?Vc#BhDItx{S?e&HPH>Ur_^=HRBvbC>tW!|l9QKRNK_ zT|*%zmhS`v(*K3=;MqSa={6fDgMt-(N#e#GvA_N?DV=j&>}fVngq(t>Z;0DJKWKO- zbP%jSq|mbPA4e$1|IA_T7FX4>)Kui0#E!lIKFsNpO;g8mq6Qt1J@|~so+JUDt>^3E z0F4`!v&Dmmx0;)i8{E8LGf40+G42M1CON$uIxcnvGzM7-H2e&quIGb&~HX{p@B~5jD-pcM0)kp7rgJ z6>;5N$+1)M2=tqkRQi7I`itPQ>ESN|J0hAaqdsCl)z8}ZqzP@e3?8fgG`fRF0rk5# zkn?=!7KzO-f|TYU#Wk#q0OKeuX{m{^>;iK%@s2J_76o1qB!8sP=3acA&0~BZ&_>lo zS-?LxovXw8NDBp|l>n|gK7RFiAfs{G00WlK4>2_&ypwRd-)cDcdO>VO3S}8NztU#T zaJb%(A}1&*&eKX!%Z{q2b!o(*b6&JO-&N#k#e^?KSrvOs3wTpZe5#}LjiRCo2YOzy zBQSF65Inf#IS7kmS11_RqfOyY2qWUt0JQG96>V&o46M+8f~6$IrHw&zB^6SOUs?@i z!-i-SXXsP(I3<{^2P~qq6k^h0dbAi8jB1-CN_ipPpzouf2DFEW!_;?mR7t?K`IvXV zhf?Uf@lk?wv)5-d1%-#egVEDNU0mxHRzwCa))a;7ZlDfv`MJ2Zsx7!29^<>VIx4t) zxH{DxyU9lFqB|Cxs?V?mIKNL4Gj?o4gF%Th#e9Dm7gW|EIzx#<=&YA>la_y187kX* zu0pRx^C-W$^7~ZJ>Vlk}8&nZ1YmddWrmU=?PL)i!iP)7?>gQsuFdF8wG6({ZvA~z`$En!(^5Hd#a0xHGTKq_;0Z31_X+_bV-AxYX&aA*{u77JeZ zjvA}3v-(+sk9oZI{7P|<*Qyl~33@A;XwT)Q)U_}b_A%(mOF30gfsVs``nrGx{uRB7 z2g74|SOYvA!24CJP!G?b$LzFjf_(;@)Q8wi*J(p4J3I#ug|g}>A7Wf7TP$2Kp&^_k z>Rf5p8ui8+hIj)L{mB#LE*NA!M32QcUgcOgw8^N&Djn0`65JQf@}msx!Di?)l8nV0$s+jA<)!E|YV;=ce-X#B2nDMn9aVb1o zvVIQi&h~d0HG8zE^M<-)(sc2l$0fI5ICHsRm?~0{5i3f7j5tA z85?H+Kx@}`(nRvZbmb>hvGWh|z1oNIE}NcLOSd>QijY4us zO3w@d)f(-cZwve)%&Z|IUA{i7fUP)4^SN7b#!5y;A~ zxz0FE325AbcvU(TQvg;QgdUAsMiMYQ`H${EzdvpM{M0d>x@wPyBYE*(*zGs|L5aMt zMh}w5M{N*>mz3B2)pO=g`kWA6x%;y|*ZGG&_vAnP)NZv_&vYdA0yk;Jd{|fJQPyp~ zh&?AD!`f7p48$ojcY|TkneW<*4j1zw^L0(qS8-cj@nj^EiXqlI z7K&{Zx)aOH@j5$U6h)uV-g?L#j_SpC*PUsDRHPwFfGw_c&#e--$8oKXoK!>DNCuvC zOUYZF007N>RbmhohzIq$BUvh9)^L2hfJ*D+HOFf5=QbJBl*x0X+b(W`ZT7HRM(-X~ zXBts2(CBB(>;gw&9!%VXF=!Aez{vNsP^*kw5CzPfInk`{IHgVsxVW^jo(9o_@0be zlJadIN45z7V)8tKXW%R>)!AA4iqZTxSAlnghVVb#St???ez7j3v1!R9L` zL3+vTY{QfNo|`q@Z=d@xW*qxa4MV~CHcO6KgxJqeq&|R43L3@iwQ*xl$cU~ArsA*`Y8br3y z7HJ0FqKLC?I5!Cg)Uoy>Q%xx72Ana2k!}{4J=t6=)Dyq5+otTfDRUssM)P-Pa zLq**?gJpFaB4d)#8}@Q?o+0XMazVMwu$Kv~!)x;4DgepQBdt`v9zlx-CyfB$@C8-u z;HjvF8B&OXretJSdat;1^_)hFRFE3u!rGg~GG8l}M4_>os$Z$5h*${$(V37AXM)ju z4v5eb!)^VsvzE&9G^&EHXbto9n=n$mOAb{v?qNl75bc;6u%{!=cBu7HxOoz#(>o3p z34Ov{d~8M6H)#pl95Vjp{bL8RZ`!aPK^ls+tIUWZ81qh1^#N7vb}ZlahcKjZ*F#wo z`wqKCw|Y7MZpV9f}2!a+wY<$hr;dM6VXR z3rvV7C@jkKCe0q>v7=+MyOqDD_MkSc3ksiI-HS(^Z{md=98W9JA&RWN~GeUtHS(-`zS<@`cpAq!S4(_2pD4 zt_-j)vqD_@_9|4r?lj!K#aW4-G6O{VE{onur|_)>`dGi{s4=LrTrq4oNd99o6*OR7 zp=>-?+J{0IB~VKsx=g7RWHU?8=^hzTaaIv&AqS$gvpE{BtF<(EtxTcecEZtpP z(y!*McG*=&p&LdD`Y?n+dpM0M9K>|WH4tM+XnI1u{%y`zs+VhUW&a4p{5>cL+p zzWwu3G#$FY?+tDtLw~R2KkBNvj?aR7`@>(G9sYgBO`NZ$3yhj(XPz;u65B@LS-L|iB40_z#v?{A7sD9 zmy)T{`Zcf@p}enzmB3&Bx${3NSBQk7CGS2Gdd%548pWkS)93-PmX@{i#W?uK;O{Hn zf4|4Pb_opbtgY1xY^&E|v|DFCd=?=IlJ}Z0ihocaZiQEqx1<6W5i4X@xSx%z{0Z&sj~;(7uL{}sM-qm{Hx_^KRT5Aaj=uf%Q)h7eAO@iCwAL93 zqUtmnmWl2TjF*{RVImFs$p28^;nfviT?+dxRXke6@S01CI=h5!oB~qVebT?M@$#0W zUm!q)qQ^yp55#iTGhjAt)9|Q0UA-}?Saud$$JXT1 zRik;hN*3L>!5{+@3Af*PoC=?{s+)9A95W10D(8OE>ES@yoBimXN|I+l@uw6-0|cLX z=5(5HIJ7k+WFS?($6T*&+~rv~m1iIsPcpqBJFK+pJIYbj0L+NQR2?#1?Wzt9Z|#D2Vi zoMR7ztvyWU0d`*q1(-+eCuen7ewQd8)KJ09T$FY zmPI)%zHR@ooP*=)Bl_UzI4UVWk1*={OOEcpH`x4O0us}|pFI1zWA%(;l<6LXLWBT1 zh0O;0v6;QvZ=Ty<`b8HV95rKZ?m%bL}&cNi++(niQ^IYcx^a!$zUkt&TVK33?;&dPh$No8NOiH&pM|mdHYR8c zMy~M@lZ&YupYEmhmg@P}Y?GdM&jN{uzMIBsZjJiQN|zF09jS@F(!_!j|lZqsybxo(4Ba;K*R)0v{1?Y9*P zwZAYp_>DoqjAZYkcv{pF+j#l&l%wZep2gLc7c0o0O1<9oD(2;$cZ4GM;c~Hg=GdSA z#&o%9I_n@U?~GgEcuN4$yT~yk)wM>ik($hR_D%C50rA5v;x{Q8@KTJ}2t}5A-e=AB z{8!(^p6qo1IENR0x;S(_kOGLvWA!3jeFC_s2`SZi>zA z)j2^`d4;Y-mp_0mv@{!YhOo9@`$dr7&iIPAZv6S#{hyie@#k6f=b_+c%j)gR1xEJ5 zm~*k_eAlw~a_&cusxD_6^iSUH#c&i=sjY7R%oypqq?;XvP2y<|(?8mk%kW(Arw8b> z9=g9*55d#gn%#G(c)K@De}?a@)7hpEOkc`!;%St4R;E4wV*h{pVsQwO5 zVrOoX>nr))nUAZ^G{KF}$){>D`h-;x8J}_16UWziR{p`1gP>1UCr?cnGe1Ah=6F@PAHB z{6Ij8Uki79o)A!dbf;uWrelse5_W)J*k@g3r}>#J4X!n8m2r*=Q$ojgra57-kHVt9 zB6wOp8MfWz8Y#w}==a`w{a|cIMS3yB$+ci~T5~bXFJ>tF5cyY-xoe6IO<7xNo|- zDuWjD3cambZPt@+AuDPi-@y9V61Jmr7RJ~B)wT!I#KvUihW7Um`P+1`;%kLSv!i!3 zI4g}PloNW632!LIN*^HA=&er8AErL4I!b8>8=Tm=X?qFGdUBaGE?gq$o|SBqsL(8B zS>4Znb{ z-7Ch%`)~gt#Mi9r7Uu+%jEmS~f|AnbEEXld36Qk;n*`=wzlo6aZ!-UX;DB5|fv)WP zii_)3b`Gm7-T$k->x^nL+uG5K1rUYMJ468~0RcgRiVB1d3LznYfe}cMCeoyfA|N4v z^cKnlLP-KaIs_1f(2LTmAXSP5B`AW*mzlY<)?Ihz`#1Nl`PS!;H*eNndC%GFStsZ0 zbKYm~#~Aq^lL{qWW(oWy&YHLPJ0XnI`tPk{V;$d)ZT27?w z2om+7LphJN?1R%hwGVB_4}IkvYKO{#8RPG$+g)4s1h&{tMVh9%Qg|(Tfl}07`yiB> zrih_+R=MTk)xOF2=ndl857sMJl_wnfO!=s>$!SrOHX)*tt*+L*8YoDv7s}5}*uWxD zeHP{t^Y&n1{Xs5pVYepomkrCmYl8h^18{p~nn0aPaJP=Qnb1>dK3qwuvQaurk|wfI ztAP9>(s)x=*&5^_DmDvK*|?32!%7)t)(L#<+TI&^Zt{|nZ~HOq*dCyT7WwSxFroPM~><+2tg!lz)%JZ8lr|`e4EDKQvlj z>q0?JD4BI;we0dK{r=da$n}=w9p}k@c}lUQ@6v_l^J1?1fK_A*`)HWV=JTp7Eq?O% ztMhrzXQ|Ze$l-*Kj5mRleE`AXs}lTcUYpjy%^f?+mrGHh*+Vp%H@}%q?{LKr2Yw*% z1A!k1{6OFb0{_1eF!*IX#r&`9X#xr&@ymjm!#rq5$22rs)vbRQ_~c`Dda@jjt=ebC zm+NxiuWZ5QM&IBNnUY9bl)1%vHumFg=p$v)+?(yxV^7Qb3kh_mye#WxRI^cF_vDv` zRSMACLBZcAdKs=f>PL%P-YB$TIEUI!lbUeX@oo+r>I~mAUPrFn-|IaPY-|64@ zyD$G&J&b*IK;42hhn8{RG}nQMgTANG7s`_?ZyE|tOLJb?es(ocHM;vAFhW)<6X6Uv z8nG#ssd5jn9(xaveGibp?EnCjfnJB=I|ffBF5$+0VV=Q@68!n=k*_{6S>Q z@}w(jCd$Nwp(fE2cT(*zw}Wo@r<&>1YaQM;pXZxO5f0M5Q&kThhug%wwIwU@XpIS% zg(ix}KnTdvCl?PcHBfb@CL06uG+zS8;WMU1C&|iA2{iFrZusEZt`L%X#~Cb6o68XO zx}O2D<#;zUy2ZPKrLxg`W0TjAOS5Tqx)9#RDS2givzONtpzl}g^e?a)mb{sMaOl0O z)C}pV4aoUSM)s~oGYj(kGq~|OzReu9kWW%oRl(-1O6(eV!arE1Msfky+b36SK;|vZ zPo;dl3)054hJ@exIZWS2&Z%US)<63^+Jdt}(cK~E3e#h}ioP6|2t5)2@rbO2yNG8pjvqXb<8H?<%{+KXK)y=2Wi)gj)3a)S1Aqr*wf?8(!z$Bx!9N|a5WKayPn!b#|?_# zXQYi6DzRJj^sA6;9LJs}XfCmX22Ky-S%Mbx#%_awKpaWIm25|c@bZSx`!N;bQ_Aad z5t0f`SBZ|<_|kLH6LEt-scD;&OUT$@?jcpyWv1}_clJ_(e<}`|cph-@>0dtBerxa_ zS;5PX-fEcrHeLN@Tltxzu*>~~F7Z`;KvDT&9{sgBsgd$7ZRPI{sgy%1M0G$}s1&i+K{2x05o!O`0& zLy6~|{& z#aFDbw)#z^kk)w~EL3nIUPu-(T0j-65B%sgPL^{A@}euZ#N|qMC_pIL3@&*Y$5p1U zJWyGf)X{Y5Vm)$sV;?ZO(1?EJ!>@XqDPLo1FuXc+d&S-(@*zhwsXUWS=eYYNAS}_m zQT`k&-y4}^x2F}2Td+C<6Y$~Ox}HcG>i_PZ|@7n~94 z<*G`EJ_ex(R;bclftIa&4Dxq6HU02VnXOylAO{@gL4%in8w2eFzQ0lW=xU5zbQ9Uk zLAL8n?cy`jfz{R~)ekJP3z^C#*FI&xzU)9=&4zQRc%i~ zTFFgyJ1Ol0#F?tHa&a7s{*Q3@$r}$RKTtA1q?D6b2=ld?6?}A9#50B zr-6r?d8mOcOz_0R{7x))%k2v?a?_r7nhTZi0TwXU1%o7@k9$T$G+xp5g7UfUN+Ox&1CyTSR*!K31DeG)v0$>m0E6YitTjk z@PO|(o}bk1k3Ki4oc6SYZ_Da9^Em4XpU{)jB}f8@#ej2xOnVhl&JC?%~vp|dbrdLF$%i7yaX z;XBlpS~pa*>aB?5h+fuxz@Zd&Wnot$00zHU{zY~tW{ary9k^27NJ2l^qV8^?1e$j1 zGN(0szhIHY;~z$hQq^rlSZ~HVsB;TNV?8u(dYB#-Jsg*wRAV@0604^IluvyjKz@>{ zV@ym9u4H2hd90kTCPB z?fFSu2c|T4U9zyY8XodB_rEYG7>AP=$bES*fS`bo0kw+vRe=f)#1(cYdz2vYUx7&R5C*$tY$$rYb0qq4rs@0}IaJMZTbp zSNgp(R&4AquxcF|o+dNstpjWPX+viBDf;J~z$fp!2=vRf_Qy-fgPE|e&*5_hMk*p6;# zIY$=G6O$HctCvO;Uer$r1_JFD-q3d4UEGXi(c6kuN#{?Qs zajGowgz^3CF=tUxo>HUc>kGXb0X%|-EMFfMuP>+y;~c6G1BYrS${$DAm$<=WT|sh% z@9P`VC2zm2O>0z)dtJ8=SQ;<2GDCw})FjzJP$vPZ+x2X7o^t+B>u9{5B>z{%J!ujL z6~ilMz8N&3h}%UeMyH`x7ENBfOI zP&t_2Vq-N~Qs(^O(qwP%Ek$=kLC}P$U$XPS!;Cekj^8DbGDFzYoXt$9n$qZpWvij{ z#t5rVw2?YSc9!4r0>pz2q3W)>Yw!vQOXkU3W4)>JW7dv3RfI95q_M1i@>pf(&Q<;qVWazz z%Tfz!%w)^M!sVe5p=R8m70(FoxzEgZ0S%4}Tl>8LM$4PZ?==@@#Sx6rtnDbZYLj^{ z%pHx^48^c|>BoK9{*WiC5^c8_EhiCPp?Y>@(b8mKQuo1Q@J7je>D>IWH3!NU6x&{{ z?T!)DBj4?=P|Cu4w^@f!E|NytAj7)|w&MLA!z=(v^xt-y*9{++yV(Ti2<+^0ziz_-aJo-6MI;IiYyz zjW7N2t94ey5w!GaHKCAL>og_gIQ?Eb{MLqRRJ~k2$mdCM{!@V{b-{L^pMfVT!(8Zf zKDah3`&fVnvZ&N1NM-2dhEE-fUjE7nAA>7a&vLxAfXWJZGdL_=BjWg}YJK zT<;N$P@2swPAp<=_#t*Q&&srbleoSmd)^`=V||bWJefV>YR$!KVsBu&(S;W?v5`@< zp1pJVKNN=m0DrO{c~t`7W+i_6phmR7tf7Y28L_K%w$ zqLo-KpkpaY-IKaC>f0U%{&LCSe)T|evZ7BG{%uv$+9D$<)2U_k_M2kl`#EoGqhJw- zsai$K6M|)Ixlb~>^huoAQQtXRvn(GYTb1T=!{OGE)iA0Qg_%2h0LP@S^gLfbu8`N6 ztjbgG!>+KR($h(n!L7)B_i^H)ChW;vVrvB?-^czmORURcV}w-Gnp_nA4;TGx7S6!OrYj%6K*b= ze9EI&v&NWQzbK45L)H6%52Rf`I=be@tZx$E&vnYTC0Ycp10OYqF&Wokv*kp~`p zpIl0i;U&Axw_J;MOe5B!sZ1e?!8%lXMa0%S!ezqK!nU@LiFj6U?J5n;Ph&1n}$V-b}r}0GF`Rh8cHh2JB^Sb|)xD(LHZ^VV%q>W-mLbkP& z`H+`)v=XS(aT z8}Uqua+gq)L9STMZaIJZ?KP*emoH#3bdP4tQh)D2|I(sF*IP|Tl4(wAWtQ`yZwVBs3}fiRzebeguj0;m)|W0WQ$bXW)1rl8UkX-p*%xjbAlKM;jLC|b zIiR0WWIQDG+FD4-hKl8~Ar+PpHVS+b$<6WWn&O#a^ zyGgIc54?k1x0O5@4a*g5Qx7N2H83ap=gyyXJXCGY-h}8JKE+QHuH|BqH)e_mU3%7r z6EIUF~5-g?XR1MYQ|8Jo7fi6pmOX4HjYHNgWjBb5eXfYHkWthkQjc+&i`I zX}f8;LZdiWm8d_0lD|=3FGbTI`AOSdeLnESp_1uss%iUK8NKw(k=k=G<#Z(@AvGfc zcD^Gy1t%Ci_R?n5Hb9D9`LIH@|CQKw$LVHXu*2uLA?*U*c(={!@Rwk}n1%FqHD@b% zuXWFRUB_eVCR|@~mUDLp;#~$zjdg4N3pC}Hm)eBVz1u2f2u4;SuS`spW7btUWj}~? zcEF*k-p@6PH=!q+KaK6fgtm1D&#C~g?HYJDZZ9;`1r2#mmgHR3$Nc^B?_yMEF zm3l`4qqs{WUtpYBd_>|u6g2!v$iU?3jZLvwL%5Vv==1VnjC^kkb1qomR=KF5$m8gZ zCMn+q&U+?dPJMT-5|vy4Wf%wLqnYvD!DUsiUW2xkegT$n4=kKPM26+jV#;l^cEpzh+rv znbyLZw(hdb9DSXU6YI`J&y~Q&-9MK=Ec(ckxhlPTU`--731bnFcZwiVA&Y$$9L}w6 zWiA+PCCDjzl*L2fl#~GrBlgN8OTsCMCqzef-8bRa!nNhU#V8Q~)h2W?5?taSAVuPU z+~q&!+x}%(|LJMuA6jRbx%UU#f6uUz`^9n3jPt+O;lK0*yvNcCIPfoqKYTs0Klwk2 CoJ#rt literal 0 HcmV?d00001 diff --git a/site/src/assets/media/needs-light.jpg b/site/src/assets/media/needs-light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70c193ae3224588f989d69c57e934f0bcd872969 GIT binary patch literal 71178 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 literal 0 HcmV?d00001 diff --git a/site/src/components/Analytics.astro b/site/src/components/Analytics.astro new file mode 100644 index 00000000..198396c9 --- /dev/null +++ b/site/src/components/Analytics.astro @@ -0,0 +1,405 @@ +--- +/* Consent-gated Google Analytics 4. + * + * The component is absent unless PUBLIC_GA_MEASUREMENT_ID is configured for a + * production build, so local builds and forks stay silent. + * + * Nothing is loaded until the visitor is allowed to be measured. Earlier this + * file loaded gtag on every page and then held it in Consent Mode's denied + * state, which sent a cookieless ping for every view: no `_ga` cookie, no + * stable client id, so every pageview arrived as a new user and a new session. + * That is a report in which sessions, bounce rate and returning visitors are + * all meaningless, bought at the price of shipping Google's tag to everybody. + * The tag now does not exist until it may set the cookie that makes its numbers + * mean something. + * + * Whether consent must be asked for is a question about the reader's location, + * not about this site. The EEA, the UK and the Crown Dependencies require + * permission before the cookie is set; elsewhere measurement may run with a way + * to turn it off. Cloudflare already knows which one applies and says so at + * /cdn-cgi/trace, so most readers are measured properly and never see a banner, + * and the readers who are owed the question get it. A failed or unavailable + * lookup is treated as "ask" — the safe direction, and what local development + * gets, where the whole component is compiled out anyway. + * + * Global Privacy Control stands in for an answer that has not been given here. + * A reader who sends one and has not used the control below is treated as + * having declined, and is not asked either. It does not outrank an answer given + * on this site: Allow is the later and more specific statement of the same + * preference, so a reader who clicks it is measured with the signal still on. + * + * Do Not Track is not consulted. The W3C withdrew the specification in 2019, + * Safari removed the header, and Chrome and Firefox leave it off by default, so + * it carries neither a legal obligation nor a reliable statement of intent. + * + * The preference lives in localStorage rather than a cookie, so declining + * stores nothing that travels with a request, and is mirrored across tabs. The + * control that changes it later is on /privacy; consent that cannot be + * withdrawn as easily as it was given is not consent. + */ +const measurementId = import.meta.env.PUBLIC_GA_MEASUREMENT_ID?.trim().toUpperCase(); + +if (measurementId && !/^G-[A-Z0-9]{6,}$/.test(measurementId)) { + throw new Error( + `PUBLIC_GA_MEASUREMENT_ID is ${JSON.stringify(measurementId)}, which is not a GA4 measurement id.\n` + + `Expected the G-XXXXXXXXXX form shown in Admin → Data streams. ` + + `Leave the variable unset to build the site without analytics.`, + ); +} + +const enabled = Boolean(measurementId) && import.meta.env.PROD; +--- + +{ + enabled && ( + + ) +} diff --git a/site/src/components/AnalyticsConsent.astro b/site/src/components/AnalyticsConsent.astro new file mode 100644 index 00000000..32d8aaba --- /dev/null +++ b/site/src/components/AnalyticsConsent.astro @@ -0,0 +1,152 @@ +--- +/* The consent prompt, for readers whose location requires one. + * + * Markup only. Analytics.astro decides whether this is ever shown and handles + * the clicks: the question of whether to ask is answered in the head, before + * anything renders, and putting the logic in two places is how the banner ends + * up shown to someone who already declined. + * + * It renders on every page rather than only where the site footer does, because + * a reader who arrives from a search result lands on a documentation page, and + * a consent prompt that only appears on the landing page asks the question of + * the wrong half of the audience. + * + * `hidden` in the source, not `display: none` in a stylesheet: the prompt is + * absent for the reader whose location does not require it and for the reader + * who has already answered, and neither should see it flash while a stylesheet + * loads. A build without a measurement id never renders it at all. + */ +const enabled = + Boolean(import.meta.env.PUBLIC_GA_MEASUREMENT_ID?.trim()) && import.meta.env.PROD; +--- + +{ + enabled && ( +